<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.videolan.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=RedStapler</id>
	<title>VideoLAN Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.videolan.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=RedStapler"/>
	<link rel="alternate" type="text/html" href="https://wiki.videolan.org/Special:Contributions/RedStapler/"/>
	<updated>2026-11-04T18:21:03Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=ActiveX&amp;diff=11799</id>
		<title>ActiveX</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=ActiveX&amp;diff=11799"/>
		<updated>2008-06-05T05:43:52Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Windows]] build of VLC includes an (optionaly installed) &#039;&#039;&#039;ActiveX control&#039;&#039;&#039;.  The ActiveX control enables VLC to be embedded in web browsers and third-party applications.  &lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
NOTE TO EDITORS!&lt;br /&gt;
PLEASE LEAVE THE SYNTAX AS VB (6 or 98, not .net or 2005).  IF NEEDED, WE SHOULD CREATE A SEPERATE SECTION FOR EACH LANGUAGE/VARIANT AND LINK TO IT.  &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
The ActiveX control includes the following properties:&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;get or set&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;description&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Length&lt;br /&gt;
|Integer&lt;br /&gt;
|get&lt;br /&gt;
|Returns length of the current clip.&lt;br /&gt;
|-&lt;br /&gt;
|playlistCount&lt;br /&gt;
|&lt;br /&gt;
|get&lt;br /&gt;
|Returns the count of items in the playlist&lt;br /&gt;
|-&lt;br /&gt;
|playlistIndex&lt;br /&gt;
|&lt;br /&gt;
|get&lt;br /&gt;
|Returns the index of the current item in the playlist.  &lt;br /&gt;
|-&lt;br /&gt;
|AutoLoop&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|Determines if the player should automatically loop when it finishes the current playlist.  &lt;br /&gt;
|-&lt;br /&gt;
|AutoPlay&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|Determines if the player should start playing a new file/playlist immediately upon being loaded.  &lt;br /&gt;
|-&lt;br /&gt;
|Volume&lt;br /&gt;
|Integer&lt;br /&gt;
|get/set&lt;br /&gt;
|Current volume (scaled from 0 to 100)&lt;br /&gt;
|-&lt;br /&gt;
|MRL&lt;br /&gt;
|String&lt;br /&gt;
|get/set&lt;br /&gt;
|Presumably returns the MRL of the currently loaded file.&amp;lt;!-- readme says &amp;quot;initial MRL in playlist&amp;quot; --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Time&lt;br /&gt;
|Integer&lt;br /&gt;
|get/set&lt;br /&gt;
|Time elapsed in seconds playing current MRL, 0 for live feed&lt;br /&gt;
|-&lt;br /&gt;
|showdisplay&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|show/hide control viewport&amp;lt;!-- from readme --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Playing&lt;br /&gt;
|Boolean&lt;br /&gt;
|get&lt;br /&gt;
|Returns whether some MRL is playing&amp;lt;!-- from readme --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Position&lt;br /&gt;
|&#039;real&#039;&lt;br /&gt;
|get/set&lt;br /&gt;
|Playback position within current MRL, scaled from 0.0 to 1.0.  Live feed returns 0.0&lt;br /&gt;
|-&lt;br /&gt;
|VersionInfo&lt;br /&gt;
|String&lt;br /&gt;
|get&lt;br /&gt;
|Returns version and build information.&lt;br /&gt;
|}&lt;br /&gt;
Note:  In Visual Basic, type &amp;quot;Long&amp;quot; should be used for properties listed with type &amp;quot;Integer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Methods==&lt;br /&gt;
The ActiveX control includes the following methods (functions):&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;description&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;syntax ([[wikipedia:Visual Basic|VB]])&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|setVariable&lt;br /&gt;
|method&lt;br /&gt;
|Assigns a value to a variable that is defined in libvlc.c&lt;br /&gt;
|controlname.setVariable name as String, value&lt;br /&gt;
|-&lt;br /&gt;
|getVariable&lt;br /&gt;
|method&lt;br /&gt;
|Returns the contents of a variable that is defined in libvlc.c&lt;br /&gt;
|x = controlname.getVariable(name as String)&lt;br /&gt;
|-&lt;br /&gt;
|pause&lt;br /&gt;
|method&lt;br /&gt;
|Pauses the currently playing clip&lt;br /&gt;
|controlname.pause&lt;br /&gt;
|-&lt;br /&gt;
|play&lt;br /&gt;
|method&lt;br /&gt;
|Plays as in the normal player, if a clip is not loaded, does nothing.&lt;br /&gt;
|controlname.play&lt;br /&gt;
|-&lt;br /&gt;
|playFaster&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip play faster.&lt;br /&gt;
|controlname.playFaster&lt;br /&gt;
|-&lt;br /&gt;
|playSlower&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip play slower.&lt;br /&gt;
|controlname.playSlower&lt;br /&gt;
|-&lt;br /&gt;
|stop&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip stop.&lt;br /&gt;
|controlname.stop&lt;br /&gt;
|-&lt;br /&gt;
|shuttle&lt;br /&gt;
|method&lt;br /&gt;
|Moves the playback position a specified number of seconds in either direction.&lt;br /&gt;
|controlname.shuttle(seconds as Long)&lt;br /&gt;
|-&lt;br /&gt;
|playlistClear&lt;br /&gt;
|method&lt;br /&gt;
|Clears the playlist&lt;br /&gt;
|controlname.playlistClear&lt;br /&gt;
|-&lt;br /&gt;
|playlistNext&lt;br /&gt;
|method&lt;br /&gt;
|Goes to next item in the playlist&lt;br /&gt;
|controlname.playlistNext&lt;br /&gt;
|-&lt;br /&gt;
|playlistPrev&lt;br /&gt;
|method&lt;br /&gt;
|Goes to previous item in the playlist&lt;br /&gt;
|controlname.playlistPrev&lt;br /&gt;
|-&lt;br /&gt;
|addTarget&lt;br /&gt;
|method&lt;br /&gt;
|Adds a uri to the current playlist or replaces the current playlist with the uri.  &lt;br /&gt;
|controlname.addTarget(uri as String, options, mode as [[VLCPlaylistMode]], Position as Long)&lt;br /&gt;
|-&lt;br /&gt;
|toggleMute&lt;br /&gt;
|method&lt;br /&gt;
|Toggles between the muted/unmuted state of the embedded player.&lt;br /&gt;
|controlname.toggleMute&lt;br /&gt;
|-&lt;br /&gt;
|fullscreen&lt;br /&gt;
|method&lt;br /&gt;
|Toggles between fullscreen and non-fullscreen modes.&lt;br /&gt;
|controlname.fullscreen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Options==&lt;br /&gt;
The &amp;lt;code&amp;gt;addTarget&amp;lt;/code&amp;gt; method accepts most of the command line options; including, but not limited to, the following :&lt;br /&gt;
*&amp;lt;code&amp;gt;:audio-track=&#039;&#039;index&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;:vout-filter=&#039;&#039;output-filter&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;deinterlace&amp;lt;/code&amp;gt; for example)&lt;br /&gt;
*&amp;lt;code&amp;gt;:deinterlace-mode=&#039;&#039;mode&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;linear&amp;lt;/code&amp;gt; for example)&lt;br /&gt;
&lt;br /&gt;
==Samples==&lt;br /&gt;
*[[ActiveX/Delphi|Delphi Implementation]]&lt;br /&gt;
&lt;br /&gt;
* [[ActiveX/HTML|HTML Implementation]]&lt;br /&gt;
&lt;br /&gt;
==Installing==&lt;br /&gt;
===Introduction===&lt;br /&gt;
&lt;br /&gt;
VideoLAN is not a good source for the installation of VLC through an ActiveX control. At some point, Microsoft Internet Explorer stopped allowing the installation of ActiveX controls unless:&lt;br /&gt;
* they were signed to associate the software vendor&#039;s name with the file containing the ActiveX control, or&lt;br /&gt;
* they resided in an &amp;quot;trusted site&amp;quot; (from the user&#039;s perspective, running Internet Explorer)&lt;br /&gt;
The second option is only feasible where both server and client infrastructure are managed under the same umbrella, i.e. where the server providing the ActiveX control can be declared &amp;quot;trusted&amp;quot;. This is not feasible in the open web. In a web configuration, a [http://en.wikipedia.org/wiki/Certificate_authority Certificate Authority] needs to digitally sign the ActiveX control. This comes at a cost which the VideoLAN project is not able to bear. The solution is to create one&#039;s own ActiveX control distribution, which in turn can be digitally signed by a Certificate Authority of your choice, if necessary.&lt;br /&gt;
&lt;br /&gt;
===Creating an VLC ActiveX Distribution===&lt;br /&gt;
The following requisites are required:&lt;br /&gt;
* CABSDK by Microsoft to create a [http://en.wikipedia.org/wiki/Cabinet_%28file_format%29 Cabinet File] (.cab-file) containing the relevant ActiveX control and VLC files. MSDN has [http://msdn2.microsoft.com/en-us/library/aa751974.aspx a good description how to package an ActiveX Control], including a link to the CABSDK download page.&lt;br /&gt;
* The .cab-file is a special form of a .zip file, consisting of:&lt;br /&gt;
** axvlc.inf - The INF file, which would be called manifest in the modern age&lt;br /&gt;
** axvlc.dll - ActiveX DLL which bootstraps the VLC setup file&lt;br /&gt;
** vlc-0.8.6e-win32.exe - VLC setup file (refer to your version)&lt;br /&gt;
&lt;br /&gt;
I am using the following code in the INF file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
; Version number and signature of INF file.&lt;br /&gt;
;&lt;br /&gt;
[version]&lt;br /&gt;
signature=&amp;quot;$CHICAGO$&amp;quot;&lt;br /&gt;
AdvancedINF=2.0&lt;br /&gt;
&lt;br /&gt;
[Add.Code]&lt;br /&gt;
vlc-0.8.6e-win32.exe&lt;br /&gt;
axvlc.dll=axvlc.dll&lt;br /&gt;
&lt;br /&gt;
[axvlc.dll]&lt;br /&gt;
FileVersion=0,8,6,0&lt;br /&gt;
clsid={9BE31822-FDAD-461B-AD51-BE1D1C159921}&lt;br /&gt;
RegisterServer=no&lt;br /&gt;
hook=nsiinstaller&lt;br /&gt;
&lt;br /&gt;
[vlc-0.8.6e-win32.exe]&lt;br /&gt;
FileVersion=0,8,6,0&lt;br /&gt;
file-win32-x86=thiscab&lt;br /&gt;
&lt;br /&gt;
[nsiinstaller]&lt;br /&gt;
run=%EXTRACT_DIR%\vlc-0.8.6e-win32.exe&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Again, refer to your version of VLC.&lt;br /&gt;
&lt;br /&gt;
You can extract axvlc.dll from the binary distribution of VLC. This is a zip file on VideoLAN&#039;s download page, version 0.8.6.e [http://downloads.videolan.org/pub/videolan/vlc/0.8.6e/win32/vlc-0.8.6e-win32.zip here].&lt;br /&gt;
&lt;br /&gt;
The regular VLC setup file is the &amp;quot;featured&amp;quot; download on VideoLAN&#039;s main page; a copy resides in the same directory as axvlc.dll, the VLC setup file of version 0.8.6.e [http://downloads.videolan.org/pub/videolan/vlc/0.8.6e/win32/vlc-0.8.6e-win32.exe here].&lt;br /&gt;
&lt;br /&gt;
With CABSDK installed and the three components in place, you can create the .cab-file using the CABARC tool from Microsoft&#039;s CABSDK, using the following command from a command prompt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;CABARC.EXE N axvlc.cab axvlc.inf axvlc.dll vlc-0.8.6e-win32.exe&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This assumes the [http://en.wikipedia.org/wiki/Path_%28computing%29 PATH] has been set to CABARC.EXE&#039;s directory. If you need to sign the .cab-file, you need to use the -s switch to allocate space for your digital certificate.&lt;br /&gt;
&lt;br /&gt;
===.cab-file Integration===&lt;br /&gt;
The .cab file is integrated as described in the [http://wiki.videolan.org/ActiveX#Samples samples above], using the &amp;lt;OBJECT&amp;gt; element in the case of HTML, for example. When the ActiveX Control is called for the first time, i.e. prior to VLC installation through any means, the setup program should start up. Unfortunately, users have to click through a few dialogs, &amp;quot;allow blocked contents&amp;quot; or deal with other inconveniences, depending on your configuration and the user&#039;s security settings of Internet Explorer. The user must have proper rights to install VLC on the user&#039;s computer; identical to a regular installation of VLC as required by the VLC setup program.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[http://git.videolan.org/?p=vlc.git;a=blob;f=projects/activex/README.TXT Official ReadMe]&lt;br /&gt;
&lt;br /&gt;
[[Category:Embedded]]&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=ActiveX&amp;diff=10296</id>
		<title>ActiveX</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=ActiveX&amp;diff=10296"/>
		<updated>2007-12-04T00:08:40Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Windows]] build of VLC includes an (optionaly installed) &#039;&#039;&#039;ActiveX control&#039;&#039;&#039;.  The ActiveX control enables VLC to be embedded in web browsers and third-party applications.  &lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
NOTE TO EDITORS!&lt;br /&gt;
PLEASE LEAVE THE SYNTAX AS VB (6 or 98, not .net or 2005).  IF NEEDED, WE SHOULD CREATE A SEPERATE SECTION FOR EACH LANGUAGE/VARIANT AND LINK TO IT.  &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
The ActiveX control includes the following properties:&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;get or set&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;description&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Length&lt;br /&gt;
|Integer&lt;br /&gt;
|get&lt;br /&gt;
|Returns length of the current clip.&lt;br /&gt;
|-&lt;br /&gt;
|playlistCount&lt;br /&gt;
|&lt;br /&gt;
|get&lt;br /&gt;
|Returns the count of items in the playlist&lt;br /&gt;
|-&lt;br /&gt;
|playlistIndex&lt;br /&gt;
|&lt;br /&gt;
|get&lt;br /&gt;
|Returns the index of the current item in the playlist.  &lt;br /&gt;
|-&lt;br /&gt;
|AutoLoop&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|Determines if the player should automatically loop when it finishes the current playlist.  &lt;br /&gt;
|-&lt;br /&gt;
|AutoPlay&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|Determines if the player should start playing a new file/playlist immediately upon being loaded.  &lt;br /&gt;
|-&lt;br /&gt;
|Volume&lt;br /&gt;
|Integer&lt;br /&gt;
|get/set&lt;br /&gt;
|Current volume (scaled from 0 to 100)&lt;br /&gt;
|-&lt;br /&gt;
|MRL&lt;br /&gt;
|String&lt;br /&gt;
|get/set&lt;br /&gt;
|Presumably returns the MRL of the currently loaded file.&amp;lt;!-- readme says &amp;quot;initial MRL in playlist&amp;quot; --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Time&lt;br /&gt;
|Integer&lt;br /&gt;
|get/set&lt;br /&gt;
|Time elapsed in seconds playing current MRL, 0 for live feed&lt;br /&gt;
|-&lt;br /&gt;
|showdisplay&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|show/hide control viewport&amp;lt;!-- from readme --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Playing&lt;br /&gt;
|Boolean&lt;br /&gt;
|get&lt;br /&gt;
|Returns whether some MRL is playing&amp;lt;!-- from readme --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Position&lt;br /&gt;
|&#039;real&#039;&lt;br /&gt;
|get/set&lt;br /&gt;
|Playback position within current MRL, scaled from 0.0 to 1.0.  Live feed returns 0.0&lt;br /&gt;
|-&lt;br /&gt;
|VersionInfo&lt;br /&gt;
|String&lt;br /&gt;
|get&lt;br /&gt;
|Returns version and build information.&lt;br /&gt;
|}&lt;br /&gt;
Note:  In Visual Basic, type &amp;quot;Long&amp;quot; should be used for properties listed with type &amp;quot;Integer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Methods==&lt;br /&gt;
The ActiveX control includes the following methods (functions):&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;description&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;syntax ([[wikipedia:Visual Basic|VB]])&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|setVariable&lt;br /&gt;
|method&lt;br /&gt;
|Assigns a value to a variable that is defined in libvlc.c&lt;br /&gt;
|controlname.setVariable name as String, value&lt;br /&gt;
|-&lt;br /&gt;
|getVariable&lt;br /&gt;
|method&lt;br /&gt;
|Returns the contents of a variable that is defined in libvlc.c&lt;br /&gt;
|x = controlname.getVariable(name as String)&lt;br /&gt;
|-&lt;br /&gt;
|pause&lt;br /&gt;
|method&lt;br /&gt;
|Pauses the currently playing clip&lt;br /&gt;
|controlname.pause&lt;br /&gt;
|-&lt;br /&gt;
|play&lt;br /&gt;
|method&lt;br /&gt;
|Plays as in the normal player, if a clip is not loaded, does nothing.&lt;br /&gt;
|controlname.play&lt;br /&gt;
|-&lt;br /&gt;
|playFaster&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip play faster.&lt;br /&gt;
|controlname.playFaster&lt;br /&gt;
|-&lt;br /&gt;
|playSlower&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip play slower.&lt;br /&gt;
|controlname.playSlower&lt;br /&gt;
|-&lt;br /&gt;
|stop&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip stop.&lt;br /&gt;
|controlname.stop&lt;br /&gt;
|-&lt;br /&gt;
|shuttle&lt;br /&gt;
|method&lt;br /&gt;
|Moves the playback position a specified number of seconds in either direction.&lt;br /&gt;
|controlname.shuttle(seconds as Long)&lt;br /&gt;
|-&lt;br /&gt;
|playlistClear&lt;br /&gt;
|method&lt;br /&gt;
|Clears the playlist&lt;br /&gt;
|controlname.playlistClear&lt;br /&gt;
|-&lt;br /&gt;
|playlistNext&lt;br /&gt;
|method&lt;br /&gt;
|Goes to next item in the playlist&lt;br /&gt;
|controlname.playlistNext&lt;br /&gt;
|-&lt;br /&gt;
|playlistPrev&lt;br /&gt;
|method&lt;br /&gt;
|Goes to previous item in the playlist&lt;br /&gt;
|controlname.playlistPrev&lt;br /&gt;
|-&lt;br /&gt;
|addTarget&lt;br /&gt;
|method&lt;br /&gt;
|Adds a uri to the current playlist or replaces the current playlist with the uri.  &lt;br /&gt;
|controlname.addTarget(uri as String, options, mode as [[VLCPlaylistMode]], Position as Long)&lt;br /&gt;
|-&lt;br /&gt;
|toggleMute&lt;br /&gt;
|method&lt;br /&gt;
|Toggles between the muted/unmuted state of the embedded player.&lt;br /&gt;
|controlname.toggleMute&lt;br /&gt;
|-&lt;br /&gt;
|fullscreen&lt;br /&gt;
|method&lt;br /&gt;
|Toggles between fullscreen and non-fullscreen modes.&lt;br /&gt;
|controlname.fullscreen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Options==&lt;br /&gt;
The &amp;lt;code&amp;gt;addTarget&amp;lt;/code&amp;gt; method accepts most of the command line options; including, but not limited to, the following :&lt;br /&gt;
*&amp;lt;code&amp;gt;:audio-track=&#039;&#039;index&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;:vout-filter=&#039;&#039;output-filter&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;deinterlace&amp;lt;/code&amp;gt; for example)&lt;br /&gt;
*&amp;lt;code&amp;gt;:deinterlace-mode=&#039;&#039;mode&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;linear&amp;lt;/code&amp;gt; for example)&lt;br /&gt;
&lt;br /&gt;
==Samples==&lt;br /&gt;
*[[ActiveX/Delphi|Delphi Implementation]]&lt;br /&gt;
&lt;br /&gt;
* [[ActiveX/HTML|HTML Implementation]]&lt;br /&gt;
&lt;br /&gt;
==Installing==&lt;br /&gt;
===Introduction===&lt;br /&gt;
&lt;br /&gt;
VideoLAN is not a good source for the installation of VLC through an ActiveX control. At some point, Microsoft Internet Explorer stopped allowing the installation of ActiveX controls unless:&lt;br /&gt;
* they were signed to associate the software vendor&#039;s name with the file containing the ActiveX control, or&lt;br /&gt;
* they resided in an &amp;quot;trusted site&amp;quot; (from the user&#039;s perspective, running Internet Explorer)&lt;br /&gt;
The second option is only feasible where both server and client infrastructure are managed under the same umbrella, i.e. where the server providing the ActiveX control can be declared &amp;quot;trusted&amp;quot;. This is not feasible in the open web. In a web configuration, a [http://en.wikipedia.org/wiki/Certificate_authority Certificate Authority] needs to digitally sign the ActiveX control. This comes at a cost which the VideoLAN project is not able to bear. The solution is to create one&#039;s own ActiveX control distribution, which in turn can be digitally signed by a Certificate Authority of your choice, if necessary.&lt;br /&gt;
&lt;br /&gt;
===Creating an VLC ActiveX Distribution===&lt;br /&gt;
The following requisites are required:&lt;br /&gt;
* CABSDK by Microsoft to create a [http://en.wikipedia.org/wiki/Cabinet_%28file_format%29 Cabinet File] (.cab-file) containing the relevant ActiveX control and VLC files. MSDN has [http://msdn2.microsoft.com/en-us/library/aa751974.aspx a good description how to package an ActiveX Control], including a link to the CABSDK download page.&lt;br /&gt;
* The .cab-file is a special form of a .zip file, consisting of:&lt;br /&gt;
** axvlc.inf - The INF file, which would be called manifest in the modern age&lt;br /&gt;
** axvlc.dll - ActiveX DLL which bootstraps the VLC setup file&lt;br /&gt;
** vlc-0.8.6c-win32.exe - VLC setup file (refer to your version)&lt;br /&gt;
&lt;br /&gt;
I am using the following code in the INF file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
; Version number and signature of INF file.&lt;br /&gt;
;&lt;br /&gt;
[version]&lt;br /&gt;
signature=&amp;quot;$CHICAGO$&amp;quot;&lt;br /&gt;
AdvancedINF=2.0&lt;br /&gt;
&lt;br /&gt;
[Add.Code]&lt;br /&gt;
vlc-0.8.6c-win32.exe&lt;br /&gt;
axvlc.dll=axvlc.dll&lt;br /&gt;
&lt;br /&gt;
[axvlc.dll]&lt;br /&gt;
FileVersion=0,8,6,0&lt;br /&gt;
clsid={9BE31822-FDAD-461B-AD51-BE1D1C159921}&lt;br /&gt;
RegisterServer=no&lt;br /&gt;
hook=nsiinstaller&lt;br /&gt;
&lt;br /&gt;
[vlc-0.8.6c-win32.exe]&lt;br /&gt;
FileVersion=0,8,6,0&lt;br /&gt;
file-win32-x86=thiscab&lt;br /&gt;
&lt;br /&gt;
[nsiinstaller]&lt;br /&gt;
run=%EXTRACT_DIR%\vlc-0.8.6c-win32.exe&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Again, refer to your version of VLC.&lt;br /&gt;
&lt;br /&gt;
You can extract axvlc.dll from the binary distribution of VLC. This is a zip file on VideoLAN&#039;s download page, version 0.8.6.c [http://downloads.videolan.org/pub/videolan/vlc/0.8.6c/win32/vlc-0.8.6c-win32.zip here].&lt;br /&gt;
&lt;br /&gt;
The VLC setup file is the &amp;quot;featured&amp;quot; download on VideoLAN&#039;s main page; a copy resides in the same directory as axvlc.dll, the VLC setup file of version 0.8.6.c [http://downloads.videolan.org/pub/videolan/vlc/0.8.6c/win32/vlc-0.8.6c-win32.exe here].&lt;br /&gt;
&lt;br /&gt;
With CABSDK installed and the three components in place, you can create the .cab-file using the CABARC tool from Microsoft&#039;s CABSDK, using the following command from a command prompt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;CABARC.EXE N axvlc.cab axvlc.inf axvlc.dll vlc-0.8.6c-win32.exe&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This assumes the [http://en.wikipedia.org/wiki/Path_%28computing%29 PATH] has been set to CABARC.EXE&#039;s directory. If you need to sign the .cab-file, you need to use the -s switch to allocate space for your digital certificate.&lt;br /&gt;
&lt;br /&gt;
===.cab-file Integration===&lt;br /&gt;
The .cab file is integrated as described in the [http://wiki.videolan.org/ActiveX#Samples samples above], using the &amp;lt;OBJECT&amp;gt; element in the case of HTML, for example. When the ActiveX Control is called for the first time, i.e. prior to VLC installation through any means, the setup program should start up. Unfortunately, users have to click through a few dialogs, &amp;quot;allow blocked contents&amp;quot; or deal with other inconveniences, depending on your configuration and the user&#039;s security settings of Internet Explorer. The user must have proper rights to install VLC on the user&#039;s computer; identical to a regular installation of VLC as required by the VLC setup program.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[http://trac.videolan.org/vlc/file/trunk/activex/README.TXT Official ReadMe]&lt;br /&gt;
&lt;br /&gt;
[[Category:Embedded]]&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=ActiveX&amp;diff=10295</id>
		<title>ActiveX</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=ActiveX&amp;diff=10295"/>
		<updated>2007-12-04T00:08:06Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Windows]] build of VLC includes an (optionaly installed) &#039;&#039;&#039;ActiveX control&#039;&#039;&#039;.  The ActiveX control enables VLC to be embedded in web browsers and third-party applications.  &lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
NOTE TO EDITORS!&lt;br /&gt;
PLEASE LEAVE THE SYNTAX AS VB (6 or 98, not .net or 2005).  IF NEEDED, WE SHOULD CREATE A SEPERATE SECTION FOR EACH LANGUAGE/VARIANT AND LINK TO IT.  &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
The ActiveX control includes the following properties:&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;get or set&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;description&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Length&lt;br /&gt;
|Integer&lt;br /&gt;
|get&lt;br /&gt;
|Returns length of the current clip.&lt;br /&gt;
|-&lt;br /&gt;
|playlistCount&lt;br /&gt;
|&lt;br /&gt;
|get&lt;br /&gt;
|Returns the count of items in the playlist&lt;br /&gt;
|-&lt;br /&gt;
|playlistIndex&lt;br /&gt;
|&lt;br /&gt;
|get&lt;br /&gt;
|Returns the index of the current item in the playlist.  &lt;br /&gt;
|-&lt;br /&gt;
|AutoLoop&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|Determines if the player should automatically loop when it finishes the current playlist.  &lt;br /&gt;
|-&lt;br /&gt;
|AutoPlay&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|Determines if the player should start playing a new file/playlist immediately upon being loaded.  &lt;br /&gt;
|-&lt;br /&gt;
|Volume&lt;br /&gt;
|Integer&lt;br /&gt;
|get/set&lt;br /&gt;
|Current volume (scaled from 0 to 100)&lt;br /&gt;
|-&lt;br /&gt;
|MRL&lt;br /&gt;
|String&lt;br /&gt;
|get/set&lt;br /&gt;
|Presumably returns the MRL of the currently loaded file.&amp;lt;!-- readme says &amp;quot;initial MRL in playlist&amp;quot; --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Time&lt;br /&gt;
|Integer&lt;br /&gt;
|get/set&lt;br /&gt;
|Time elapsed in seconds playing current MRL, 0 for live feed&lt;br /&gt;
|-&lt;br /&gt;
|showdisplay&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|show/hide control viewport&amp;lt;!-- from readme --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Playing&lt;br /&gt;
|Boolean&lt;br /&gt;
|get&lt;br /&gt;
|Returns whether some MRL is playing&amp;lt;!-- from readme --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Position&lt;br /&gt;
|&#039;real&#039;&lt;br /&gt;
|get/set&lt;br /&gt;
|Playback position within current MRL, scaled from 0.0 to 1.0.  Live feed returns 0.0&lt;br /&gt;
|-&lt;br /&gt;
|VersionInfo&lt;br /&gt;
|String&lt;br /&gt;
|get&lt;br /&gt;
|Returns version and build information.&lt;br /&gt;
|}&lt;br /&gt;
Note:  In Visual Basic, type &amp;quot;Long&amp;quot; should be used for properties listed with type &amp;quot;Integer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Methods==&lt;br /&gt;
The ActiveX control includes the following methods (functions):&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;description&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;syntax ([[wikipedia:Visual Basic|VB]])&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|setVariable&lt;br /&gt;
|method&lt;br /&gt;
|Assigns a value to a variable that is defined in libvlc.c&lt;br /&gt;
|controlname.setVariable name as String, value&lt;br /&gt;
|-&lt;br /&gt;
|getVariable&lt;br /&gt;
|method&lt;br /&gt;
|Returns the contents of a variable that is defined in libvlc.c&lt;br /&gt;
|x = controlname.getVariable(name as String)&lt;br /&gt;
|-&lt;br /&gt;
|pause&lt;br /&gt;
|method&lt;br /&gt;
|Pauses the currently playing clip&lt;br /&gt;
|controlname.pause&lt;br /&gt;
|-&lt;br /&gt;
|play&lt;br /&gt;
|method&lt;br /&gt;
|Plays as in the normal player, if a clip is not loaded, does nothing.&lt;br /&gt;
|controlname.play&lt;br /&gt;
|-&lt;br /&gt;
|playFaster&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip play faster.&lt;br /&gt;
|controlname.playFaster&lt;br /&gt;
|-&lt;br /&gt;
|playSlower&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip play slower.&lt;br /&gt;
|controlname.playSlower&lt;br /&gt;
|-&lt;br /&gt;
|stop&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip stop.&lt;br /&gt;
|controlname.stop&lt;br /&gt;
|-&lt;br /&gt;
|shuttle&lt;br /&gt;
|method&lt;br /&gt;
|Moves the playback position a specified number of seconds in either direction.&lt;br /&gt;
|controlname.shuttle(seconds as Long)&lt;br /&gt;
|-&lt;br /&gt;
|playlistClear&lt;br /&gt;
|method&lt;br /&gt;
|Clears the playlist&lt;br /&gt;
|controlname.playlistClear&lt;br /&gt;
|-&lt;br /&gt;
|playlistNext&lt;br /&gt;
|method&lt;br /&gt;
|Goes to next item in the playlist&lt;br /&gt;
|controlname.playlistNext&lt;br /&gt;
|-&lt;br /&gt;
|playlistPrev&lt;br /&gt;
|method&lt;br /&gt;
|Goes to previous item in the playlist&lt;br /&gt;
|controlname.playlistPrev&lt;br /&gt;
|-&lt;br /&gt;
|addTarget&lt;br /&gt;
|method&lt;br /&gt;
|Adds a uri to the current playlist or replaces the current playlist with the uri.  &lt;br /&gt;
|controlname.addTarget(uri as String, options, mode as [[VLCPlaylistMode]], Position as Long)&lt;br /&gt;
|-&lt;br /&gt;
|toggleMute&lt;br /&gt;
|method&lt;br /&gt;
|Toggles between the muted/unmuted state of the embedded player.&lt;br /&gt;
|controlname.toggleMute&lt;br /&gt;
|-&lt;br /&gt;
|fullscreen&lt;br /&gt;
|method&lt;br /&gt;
|Toggles between fullscreen and non-fullscreen modes.&lt;br /&gt;
|controlname.fullscreen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Options==&lt;br /&gt;
The &amp;lt;code&amp;gt;addTarget&amp;lt;/code&amp;gt; method accepts most of the command line options; including, but not limited to, the following :&lt;br /&gt;
*&amp;lt;code&amp;gt;:audio-track=&#039;&#039;index&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;:vout-filter=&#039;&#039;output-filter&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;deinterlace&amp;lt;/code&amp;gt; for example)&lt;br /&gt;
*&amp;lt;code&amp;gt;:deinterlace-mode=&#039;&#039;mode&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;linear&amp;lt;/code&amp;gt; for example)&lt;br /&gt;
&lt;br /&gt;
==Samples==&lt;br /&gt;
*[[ActiveX/Delphi|Delphi Implementation]]&lt;br /&gt;
&lt;br /&gt;
* [[ActiveX/HTML|HTML Implementation]]&lt;br /&gt;
&lt;br /&gt;
==Installing==&lt;br /&gt;
===Introduction===&lt;br /&gt;
&lt;br /&gt;
VideoLAN is not a good source for the installation of VLC through an ActiveX control. At some point, Microsoft Internet Explorer stopped allowing the installation of ActiveX controls unless:&lt;br /&gt;
* they were signed to associate the software vendor&#039;s name with the file containing the ActiveX control, or&lt;br /&gt;
* they resided in an &amp;quot;trusted site&amp;quot; (from the user&#039;s perspective, running Internet Explorer)&lt;br /&gt;
The second option is only feasible where both server and client infrastructure are managed under the same umbrella, where the the server providing the ActiveX control can be declared &amp;quot;trusted&amp;quot;. This is not feasible in the open web. In a web configuration, a [http://en.wikipedia.org/wiki/Certificate_authority Certificate Authority] needs to digitally sign the ActiveX control. This comes at a cost which the VideoLAN project is not able to bear. The solution is to create one&#039;s own ActiveX control distribution, which in turn can be digitally signed by a Certificate Authority of your choice, if necessary.&lt;br /&gt;
&lt;br /&gt;
===Creating an VLC ActiveX Distribution===&lt;br /&gt;
The following requisites are required:&lt;br /&gt;
* CABSDK by Microsoft to create a [http://en.wikipedia.org/wiki/Cabinet_%28file_format%29 Cabinet File] (.cab-file) containing the relevant ActiveX control and VLC files. MSDN has [http://msdn2.microsoft.com/en-us/library/aa751974.aspx a good description how to package an ActiveX Control], including a link to the CABSDK download page.&lt;br /&gt;
* The .cab-file is a special form of a .zip file, consisting of:&lt;br /&gt;
** axvlc.inf - The INF file, which would be called manifest in the modern age&lt;br /&gt;
** axvlc.dll - ActiveX DLL which bootstraps the VLC setup file&lt;br /&gt;
** vlc-0.8.6c-win32.exe - VLC setup file (refer to your version)&lt;br /&gt;
&lt;br /&gt;
I am using the following code in the INF file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
; Version number and signature of INF file.&lt;br /&gt;
;&lt;br /&gt;
[version]&lt;br /&gt;
signature=&amp;quot;$CHICAGO$&amp;quot;&lt;br /&gt;
AdvancedINF=2.0&lt;br /&gt;
&lt;br /&gt;
[Add.Code]&lt;br /&gt;
vlc-0.8.6c-win32.exe&lt;br /&gt;
axvlc.dll=axvlc.dll&lt;br /&gt;
&lt;br /&gt;
[axvlc.dll]&lt;br /&gt;
FileVersion=0,8,6,0&lt;br /&gt;
clsid={9BE31822-FDAD-461B-AD51-BE1D1C159921}&lt;br /&gt;
RegisterServer=no&lt;br /&gt;
hook=nsiinstaller&lt;br /&gt;
&lt;br /&gt;
[vlc-0.8.6c-win32.exe]&lt;br /&gt;
FileVersion=0,8,6,0&lt;br /&gt;
file-win32-x86=thiscab&lt;br /&gt;
&lt;br /&gt;
[nsiinstaller]&lt;br /&gt;
run=%EXTRACT_DIR%\vlc-0.8.6c-win32.exe&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Again, refer to your version of VLC.&lt;br /&gt;
&lt;br /&gt;
You can extract axvlc.dll from the binary distribution of VLC. This is a zip file on VideoLAN&#039;s download page, version 0.8.6.c [http://downloads.videolan.org/pub/videolan/vlc/0.8.6c/win32/vlc-0.8.6c-win32.zip here].&lt;br /&gt;
&lt;br /&gt;
The VLC setup file is the &amp;quot;featured&amp;quot; download on VideoLAN&#039;s main page; a copy resides in the same directory as axvlc.dll, the VLC setup file of version 0.8.6.c [http://downloads.videolan.org/pub/videolan/vlc/0.8.6c/win32/vlc-0.8.6c-win32.exe here].&lt;br /&gt;
&lt;br /&gt;
With CABSDK installed and the three components in place, you can create the .cab-file using the CABARC tool from Microsoft&#039;s CABSDK, using the following command from a command prompt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;CABARC.EXE N axvlc.cab axvlc.inf axvlc.dll vlc-0.8.6c-win32.exe&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This assumes the [http://en.wikipedia.org/wiki/Path_%28computing%29 PATH] has been set to CABARC.EXE&#039;s directory. If you need to sign the .cab-file, you need to use the -s switch to allocate space for your digital certificate.&lt;br /&gt;
&lt;br /&gt;
===.cab-file Integration===&lt;br /&gt;
The .cab file is integrated as described in the [http://wiki.videolan.org/ActiveX#Samples samples above], using the &amp;lt;OBJECT&amp;gt; element in the case of HTML, for example. When the ActiveX Control is called for the first time, i.e. prior to VLC installation through any means, the setup program should start up. Unfortunately, users have to click through a few dialogs, &amp;quot;allow blocked contents&amp;quot; or deal with other inconveniences, depending on your configuration and the user&#039;s security settings of Internet Explorer. The user must have proper rights to install VLC on the user&#039;s computer; identical to a regular installation of VLC as required by the VLC setup program.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[http://trac.videolan.org/vlc/file/trunk/activex/README.TXT Official ReadMe]&lt;br /&gt;
&lt;br /&gt;
[[Category:Embedded]]&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=ActiveX&amp;diff=10294</id>
		<title>ActiveX</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=ActiveX&amp;diff=10294"/>
		<updated>2007-12-04T00:06:53Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Windows]] build of VLC includes an (optionaly installed) &#039;&#039;&#039;ActiveX control&#039;&#039;&#039;.  The ActiveX control enables VLC to be embedded in web browsers and third-party applications.  &lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
NOTE TO EDITORS!&lt;br /&gt;
PLEASE LEAVE THE SYNTAX AS VB (6 or 98, not .net or 2005).  IF NEEDED, WE SHOULD CREATE A SEPERATE SECTION FOR EACH LANGUAGE/VARIANT AND LINK TO IT.  &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
The ActiveX control includes the following properties:&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;get or set&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;description&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Length&lt;br /&gt;
|Integer&lt;br /&gt;
|get&lt;br /&gt;
|Returns length of the current clip.&lt;br /&gt;
|-&lt;br /&gt;
|playlistCount&lt;br /&gt;
|&lt;br /&gt;
|get&lt;br /&gt;
|Returns the count of items in the playlist&lt;br /&gt;
|-&lt;br /&gt;
|playlistIndex&lt;br /&gt;
|&lt;br /&gt;
|get&lt;br /&gt;
|Returns the index of the current item in the playlist.  &lt;br /&gt;
|-&lt;br /&gt;
|AutoLoop&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|Determines if the player should automatically loop when it finishes the current playlist.  &lt;br /&gt;
|-&lt;br /&gt;
|AutoPlay&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|Determines if the player should start playing a new file/playlist immediately upon being loaded.  &lt;br /&gt;
|-&lt;br /&gt;
|Volume&lt;br /&gt;
|Integer&lt;br /&gt;
|get/set&lt;br /&gt;
|Current volume (scaled from 0 to 100)&lt;br /&gt;
|-&lt;br /&gt;
|MRL&lt;br /&gt;
|String&lt;br /&gt;
|get/set&lt;br /&gt;
|Presumably returns the MRL of the currently loaded file.&amp;lt;!-- readme says &amp;quot;initial MRL in playlist&amp;quot; --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Time&lt;br /&gt;
|Integer&lt;br /&gt;
|get/set&lt;br /&gt;
|Time elapsed in seconds playing current MRL, 0 for live feed&lt;br /&gt;
|-&lt;br /&gt;
|showdisplay&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|show/hide control viewport&amp;lt;!-- from readme --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Playing&lt;br /&gt;
|Boolean&lt;br /&gt;
|get&lt;br /&gt;
|Returns whether some MRL is playing&amp;lt;!-- from readme --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Position&lt;br /&gt;
|&#039;real&#039;&lt;br /&gt;
|get/set&lt;br /&gt;
|Playback position within current MRL, scaled from 0.0 to 1.0.  Live feed returns 0.0&lt;br /&gt;
|-&lt;br /&gt;
|VersionInfo&lt;br /&gt;
|String&lt;br /&gt;
|get&lt;br /&gt;
|Returns version and build information.&lt;br /&gt;
|}&lt;br /&gt;
Note:  In Visual Basic, type &amp;quot;Long&amp;quot; should be used for properties listed with type &amp;quot;Integer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Methods==&lt;br /&gt;
The ActiveX control includes the following methods (functions):&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;description&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;syntax ([[wikipedia:Visual Basic|VB]])&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|setVariable&lt;br /&gt;
|method&lt;br /&gt;
|Assigns a value to a variable that is defined in libvlc.c&lt;br /&gt;
|controlname.setVariable name as String, value&lt;br /&gt;
|-&lt;br /&gt;
|getVariable&lt;br /&gt;
|method&lt;br /&gt;
|Returns the contents of a variable that is defined in libvlc.c&lt;br /&gt;
|x = controlname.getVariable(name as String)&lt;br /&gt;
|-&lt;br /&gt;
|pause&lt;br /&gt;
|method&lt;br /&gt;
|Pauses the currently playing clip&lt;br /&gt;
|controlname.pause&lt;br /&gt;
|-&lt;br /&gt;
|play&lt;br /&gt;
|method&lt;br /&gt;
|Plays as in the normal player, if a clip is not loaded, does nothing.&lt;br /&gt;
|controlname.play&lt;br /&gt;
|-&lt;br /&gt;
|playFaster&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip play faster.&lt;br /&gt;
|controlname.playFaster&lt;br /&gt;
|-&lt;br /&gt;
|playSlower&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip play slower.&lt;br /&gt;
|controlname.playSlower&lt;br /&gt;
|-&lt;br /&gt;
|stop&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip stop.&lt;br /&gt;
|controlname.stop&lt;br /&gt;
|-&lt;br /&gt;
|shuttle&lt;br /&gt;
|method&lt;br /&gt;
|Moves the playback position a specified number of seconds in either direction.&lt;br /&gt;
|controlname.shuttle(seconds as Long)&lt;br /&gt;
|-&lt;br /&gt;
|playlistClear&lt;br /&gt;
|method&lt;br /&gt;
|Clears the playlist&lt;br /&gt;
|controlname.playlistClear&lt;br /&gt;
|-&lt;br /&gt;
|playlistNext&lt;br /&gt;
|method&lt;br /&gt;
|Goes to next item in the playlist&lt;br /&gt;
|controlname.playlistNext&lt;br /&gt;
|-&lt;br /&gt;
|playlistPrev&lt;br /&gt;
|method&lt;br /&gt;
|Goes to previous item in the playlist&lt;br /&gt;
|controlname.playlistPrev&lt;br /&gt;
|-&lt;br /&gt;
|addTarget&lt;br /&gt;
|method&lt;br /&gt;
|Adds a uri to the current playlist or replaces the current playlist with the uri.  &lt;br /&gt;
|controlname.addTarget(uri as String, options, mode as [[VLCPlaylistMode]], Position as Long)&lt;br /&gt;
|-&lt;br /&gt;
|toggleMute&lt;br /&gt;
|method&lt;br /&gt;
|Toggles between the muted/unmuted state of the embedded player.&lt;br /&gt;
|controlname.toggleMute&lt;br /&gt;
|-&lt;br /&gt;
|fullscreen&lt;br /&gt;
|method&lt;br /&gt;
|Toggles between fullscreen and non-fullscreen modes.&lt;br /&gt;
|controlname.fullscreen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Options==&lt;br /&gt;
The &amp;lt;code&amp;gt;addTarget&amp;lt;/code&amp;gt; method accepts most of the command line options; including, but not limited to, the following :&lt;br /&gt;
*&amp;lt;code&amp;gt;:audio-track=&#039;&#039;index&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;:vout-filter=&#039;&#039;output-filter&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;deinterlace&amp;lt;/code&amp;gt; for example)&lt;br /&gt;
*&amp;lt;code&amp;gt;:deinterlace-mode=&#039;&#039;mode&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;linear&amp;lt;/code&amp;gt; for example)&lt;br /&gt;
&lt;br /&gt;
==Samples==&lt;br /&gt;
*[[ActiveX/Delphi|Delphi Implementation]]&lt;br /&gt;
&lt;br /&gt;
* [[ActiveX/HTML|HTML Implementation]]&lt;br /&gt;
&lt;br /&gt;
==Installing==&lt;br /&gt;
===Introduction===&lt;br /&gt;
&lt;br /&gt;
VideoLAN is not a good source for the installation of VLC through an ActiveX control. At some point, Microsoft Internet Explorer stopped allowing the installation of ActiveX controls unless:&lt;br /&gt;
* they were signed to associate the software vendor&#039;s name with the file containing the ActiveX control, or&lt;br /&gt;
* they resided in an &amp;quot;trusted site&amp;quot; (from the user&#039;s perspective, running Internet Explorer)&lt;br /&gt;
The second option is only feasible where both server and client infrastructure are managed under the same umbrella, because the system installation can declare the server providing the ActiveX control as &amp;quot;trusted&amp;quot; . This is not feasible in the open web. In a web configuration, a [http://en.wikipedia.org/wiki/Certificate_authority Certificate Authority] needs to digitally sign the ActiveX control. This comes at a cost which the VideoLAN project is not able to bear. The solution is to create one&#039;s own ActiveX control distribution, which in turn can be digitally signed by a Certificate Authority of your choice, if necessary.&lt;br /&gt;
&lt;br /&gt;
===Creating an VLC ActiveX Distribution===&lt;br /&gt;
The following requisites are required:&lt;br /&gt;
* CABSDK by Microsoft to create a [http://en.wikipedia.org/wiki/Cabinet_%28file_format%29 Cabinet File] (.cab-file) containing the relevant ActiveX control and VLC files. MSDN has [http://msdn2.microsoft.com/en-us/library/aa751974.aspx a good description how to package an ActiveX Control], including a link to the CABSDK download page.&lt;br /&gt;
* The .cab-file is a special form of a .zip file, consisting of:&lt;br /&gt;
** axvlc.inf - The INF file, which would be called manifest in the modern age&lt;br /&gt;
** axvlc.dll - ActiveX DLL which bootstraps the VLC setup file&lt;br /&gt;
** vlc-0.8.6c-win32.exe - VLC setup file (refer to your version)&lt;br /&gt;
&lt;br /&gt;
I am using the following code in the INF file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
; Version number and signature of INF file.&lt;br /&gt;
;&lt;br /&gt;
[version]&lt;br /&gt;
signature=&amp;quot;$CHICAGO$&amp;quot;&lt;br /&gt;
AdvancedINF=2.0&lt;br /&gt;
&lt;br /&gt;
[Add.Code]&lt;br /&gt;
vlc-0.8.6c-win32.exe&lt;br /&gt;
axvlc.dll=axvlc.dll&lt;br /&gt;
&lt;br /&gt;
[axvlc.dll]&lt;br /&gt;
FileVersion=0,8,6,0&lt;br /&gt;
clsid={9BE31822-FDAD-461B-AD51-BE1D1C159921}&lt;br /&gt;
RegisterServer=no&lt;br /&gt;
hook=nsiinstaller&lt;br /&gt;
&lt;br /&gt;
[vlc-0.8.6c-win32.exe]&lt;br /&gt;
FileVersion=0,8,6,0&lt;br /&gt;
file-win32-x86=thiscab&lt;br /&gt;
&lt;br /&gt;
[nsiinstaller]&lt;br /&gt;
run=%EXTRACT_DIR%\vlc-0.8.6c-win32.exe&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Again, refer to your version of VLC.&lt;br /&gt;
&lt;br /&gt;
You can extract axvlc.dll from the binary distribution of VLC. This is a zip file on VideoLAN&#039;s download page, version 0.8.6.c [http://downloads.videolan.org/pub/videolan/vlc/0.8.6c/win32/vlc-0.8.6c-win32.zip here].&lt;br /&gt;
&lt;br /&gt;
The VLC setup file is the &amp;quot;featured&amp;quot; download on VideoLAN&#039;s main page; a copy resides in the same directory as axvlc.dll, the VLC setup file of version 0.8.6.c [http://downloads.videolan.org/pub/videolan/vlc/0.8.6c/win32/vlc-0.8.6c-win32.exe here].&lt;br /&gt;
&lt;br /&gt;
With CABSDK installed and the three components in place, you can create the .cab-file using the CABARC tool from Microsoft&#039;s CABSDK, using the following command from a command prompt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;CABARC.EXE N axvlc.cab axvlc.inf axvlc.dll vlc-0.8.6c-win32.exe&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This assumes the [http://en.wikipedia.org/wiki/Path_%28computing%29 PATH] has been set to CABARC.EXE&#039;s directory. If you need to sign the .cab-file, you need to use the -s switch to allocate space for your digital certificate.&lt;br /&gt;
&lt;br /&gt;
===.cab-file Integration===&lt;br /&gt;
The .cab file is integrated as described in the [http://wiki.videolan.org/ActiveX#Samples samples above], using the &amp;lt;OBJECT&amp;gt; element in the case of HTML, for example. When the ActiveX Control is called for the first time, i.e. prior to VLC installation through any means, the setup program should start up. Unfortunately, users have to click through a few dialogs, &amp;quot;allow blocked contents&amp;quot; or deal with other inconveniences, depending on your configuration and the user&#039;s security settings of Internet Explorer. The user must have proper rights to install VLC on the user&#039;s computer; identical to a regular installation of VLC as required by the VLC setup program.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[http://trac.videolan.org/vlc/file/trunk/activex/README.TXT Official ReadMe]&lt;br /&gt;
&lt;br /&gt;
[[Category:Embedded]]&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=ActiveX&amp;diff=10293</id>
		<title>ActiveX</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=ActiveX&amp;diff=10293"/>
		<updated>2007-12-04T00:04:43Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Windows]] build of VLC includes an (optionaly installed) &#039;&#039;&#039;ActiveX control&#039;&#039;&#039;.  The ActiveX control enables VLC to be embedded in web browsers and third-party applications.  &lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
NOTE TO EDITORS!&lt;br /&gt;
PLEASE LEAVE THE SYNTAX AS VB (6 or 98, not .net or 2005).  IF NEEDED, WE SHOULD CREATE A SEPERATE SECTION FOR EACH LANGUAGE/VARIANT AND LINK TO IT.  &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
The ActiveX control includes the following properties:&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;get or set&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;description&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Length&lt;br /&gt;
|Integer&lt;br /&gt;
|get&lt;br /&gt;
|Returns length of the current clip.&lt;br /&gt;
|-&lt;br /&gt;
|playlistCount&lt;br /&gt;
|&lt;br /&gt;
|get&lt;br /&gt;
|Returns the count of items in the playlist&lt;br /&gt;
|-&lt;br /&gt;
|playlistIndex&lt;br /&gt;
|&lt;br /&gt;
|get&lt;br /&gt;
|Returns the index of the current item in the playlist.  &lt;br /&gt;
|-&lt;br /&gt;
|AutoLoop&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|Determines if the player should automatically loop when it finishes the current playlist.  &lt;br /&gt;
|-&lt;br /&gt;
|AutoPlay&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|Determines if the player should start playing a new file/playlist immediately upon being loaded.  &lt;br /&gt;
|-&lt;br /&gt;
|Volume&lt;br /&gt;
|Integer&lt;br /&gt;
|get/set&lt;br /&gt;
|Current volume (scaled from 0 to 100)&lt;br /&gt;
|-&lt;br /&gt;
|MRL&lt;br /&gt;
|String&lt;br /&gt;
|get/set&lt;br /&gt;
|Presumably returns the MRL of the currently loaded file.&amp;lt;!-- readme says &amp;quot;initial MRL in playlist&amp;quot; --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Time&lt;br /&gt;
|Integer&lt;br /&gt;
|get/set&lt;br /&gt;
|Time elapsed in seconds playing current MRL, 0 for live feed&lt;br /&gt;
|-&lt;br /&gt;
|showdisplay&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|show/hide control viewport&amp;lt;!-- from readme --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Playing&lt;br /&gt;
|Boolean&lt;br /&gt;
|get&lt;br /&gt;
|Returns whether some MRL is playing&amp;lt;!-- from readme --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Position&lt;br /&gt;
|&#039;real&#039;&lt;br /&gt;
|get/set&lt;br /&gt;
|Playback position within current MRL, scaled from 0.0 to 1.0.  Live feed returns 0.0&lt;br /&gt;
|-&lt;br /&gt;
|VersionInfo&lt;br /&gt;
|String&lt;br /&gt;
|get&lt;br /&gt;
|Returns version and build information.&lt;br /&gt;
|}&lt;br /&gt;
Note:  In Visual Basic, type &amp;quot;Long&amp;quot; should be used for properties listed with type &amp;quot;Integer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Methods==&lt;br /&gt;
The ActiveX control includes the following methods (functions):&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;description&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;syntax ([[wikipedia:Visual Basic|VB]])&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|setVariable&lt;br /&gt;
|method&lt;br /&gt;
|Assigns a value to a variable that is defined in libvlc.c&lt;br /&gt;
|controlname.setVariable name as String, value&lt;br /&gt;
|-&lt;br /&gt;
|getVariable&lt;br /&gt;
|method&lt;br /&gt;
|Returns the contents of a variable that is defined in libvlc.c&lt;br /&gt;
|x = controlname.getVariable(name as String)&lt;br /&gt;
|-&lt;br /&gt;
|pause&lt;br /&gt;
|method&lt;br /&gt;
|Pauses the currently playing clip&lt;br /&gt;
|controlname.pause&lt;br /&gt;
|-&lt;br /&gt;
|play&lt;br /&gt;
|method&lt;br /&gt;
|Plays as in the normal player, if a clip is not loaded, does nothing.&lt;br /&gt;
|controlname.play&lt;br /&gt;
|-&lt;br /&gt;
|playFaster&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip play faster.&lt;br /&gt;
|controlname.playFaster&lt;br /&gt;
|-&lt;br /&gt;
|playSlower&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip play slower.&lt;br /&gt;
|controlname.playSlower&lt;br /&gt;
|-&lt;br /&gt;
|stop&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip stop.&lt;br /&gt;
|controlname.stop&lt;br /&gt;
|-&lt;br /&gt;
|shuttle&lt;br /&gt;
|method&lt;br /&gt;
|Moves the playback position a specified number of seconds in either direction.&lt;br /&gt;
|controlname.shuttle(seconds as Long)&lt;br /&gt;
|-&lt;br /&gt;
|playlistClear&lt;br /&gt;
|method&lt;br /&gt;
|Clears the playlist&lt;br /&gt;
|controlname.playlistClear&lt;br /&gt;
|-&lt;br /&gt;
|playlistNext&lt;br /&gt;
|method&lt;br /&gt;
|Goes to next item in the playlist&lt;br /&gt;
|controlname.playlistNext&lt;br /&gt;
|-&lt;br /&gt;
|playlistPrev&lt;br /&gt;
|method&lt;br /&gt;
|Goes to previous item in the playlist&lt;br /&gt;
|controlname.playlistPrev&lt;br /&gt;
|-&lt;br /&gt;
|addTarget&lt;br /&gt;
|method&lt;br /&gt;
|Adds a uri to the current playlist or replaces the current playlist with the uri.  &lt;br /&gt;
|controlname.addTarget(uri as String, options, mode as [[VLCPlaylistMode]], Position as Long)&lt;br /&gt;
|-&lt;br /&gt;
|toggleMute&lt;br /&gt;
|method&lt;br /&gt;
|Toggles between the muted/unmuted state of the embedded player.&lt;br /&gt;
|controlname.toggleMute&lt;br /&gt;
|-&lt;br /&gt;
|fullscreen&lt;br /&gt;
|method&lt;br /&gt;
|Toggles between fullscreen and non-fullscreen modes.&lt;br /&gt;
|controlname.fullscreen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Options==&lt;br /&gt;
The &amp;lt;code&amp;gt;addTarget&amp;lt;/code&amp;gt; method accepts most of the command line options; including, but not limited to, the following :&lt;br /&gt;
*&amp;lt;code&amp;gt;:audio-track=&#039;&#039;index&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;:vout-filter=&#039;&#039;output-filter&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;deinterlace&amp;lt;/code&amp;gt; for example)&lt;br /&gt;
*&amp;lt;code&amp;gt;:deinterlace-mode=&#039;&#039;mode&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;linear&amp;lt;/code&amp;gt; for example)&lt;br /&gt;
&lt;br /&gt;
==Samples==&lt;br /&gt;
*[[ActiveX/Delphi|Delphi Implementation]]&lt;br /&gt;
&lt;br /&gt;
* [[ActiveX/HTML|HTML Implementation]]&lt;br /&gt;
&lt;br /&gt;
==Installing==&lt;br /&gt;
===Introduction===&lt;br /&gt;
&lt;br /&gt;
VideoLAN is not a good source for the installation of VLC through an ActiveX control. At some point, Microsoft Internet Explorer stopped allowing the installation of ActiveX controls unless:&lt;br /&gt;
* they were signed to associate the software vendor&#039;s name with the file containing the ActiveX control, or&lt;br /&gt;
* they resided in an &amp;quot;trusted site&amp;quot; (from the user&#039;s perspective, running Internet Explorer)&lt;br /&gt;
The second option is only feasible where both server and client infrastructure are managed under the same umbrella. The first option requires a [http://en.wikipedia.org/wiki/Certificate_authority Certificate Authority] to digitally sign the control. This comes at a cost which the VideoLAN project is not able to bear. The solution is to create one&#039;s own ActiveX control distribution, which in turn can be digitally signed by a Certificate Authority of your choice, if necessary.&lt;br /&gt;
&lt;br /&gt;
===Creating an VLC ActiveX Distribution===&lt;br /&gt;
The following requisites are required:&lt;br /&gt;
* CABSDK by Microsoft to create a [http://en.wikipedia.org/wiki/Cabinet_%28file_format%29 Cabinet File] (.cab-file) containing the relevant ActiveX control and VLC files. MSDN has [http://msdn2.microsoft.com/en-us/library/aa751974.aspx a good description how to package an ActiveX Control], including a link to the CABSDK download page.&lt;br /&gt;
* The .cab-file is a special form of a .zip file, consisting of:&lt;br /&gt;
** axvlc.inf - The INF file, which would be called manifest in the modern age&lt;br /&gt;
** axvlc.dll - ActiveX DLL which bootstraps the VLC setup file&lt;br /&gt;
** vlc-0.8.6c-win32.exe - VLC setup file (refer to your version)&lt;br /&gt;
&lt;br /&gt;
I am using the following code in the INF file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
; Version number and signature of INF file.&lt;br /&gt;
;&lt;br /&gt;
[version]&lt;br /&gt;
signature=&amp;quot;$CHICAGO$&amp;quot;&lt;br /&gt;
AdvancedINF=2.0&lt;br /&gt;
&lt;br /&gt;
[Add.Code]&lt;br /&gt;
vlc-0.8.6c-win32.exe&lt;br /&gt;
axvlc.dll=axvlc.dll&lt;br /&gt;
&lt;br /&gt;
[axvlc.dll]&lt;br /&gt;
FileVersion=0,8,6,0&lt;br /&gt;
clsid={9BE31822-FDAD-461B-AD51-BE1D1C159921}&lt;br /&gt;
RegisterServer=no&lt;br /&gt;
hook=nsiinstaller&lt;br /&gt;
&lt;br /&gt;
[vlc-0.8.6c-win32.exe]&lt;br /&gt;
FileVersion=0,8,6,0&lt;br /&gt;
file-win32-x86=thiscab&lt;br /&gt;
&lt;br /&gt;
[nsiinstaller]&lt;br /&gt;
run=%EXTRACT_DIR%\vlc-0.8.6c-win32.exe&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Again, refer to your version of VLC.&lt;br /&gt;
&lt;br /&gt;
You can extract axvlc.dll from the binary distribution of VLC. This is a zip file on VideoLAN&#039;s download page, version 0.8.6.c [http://downloads.videolan.org/pub/videolan/vlc/0.8.6c/win32/vlc-0.8.6c-win32.zip here].&lt;br /&gt;
&lt;br /&gt;
The VLC setup file is the &amp;quot;featured&amp;quot; download on VideoLAN&#039;s main page; a copy resides in the same directory as axvlc.dll, the VLC setup file of version 0.8.6.c [http://downloads.videolan.org/pub/videolan/vlc/0.8.6c/win32/vlc-0.8.6c-win32.exe here].&lt;br /&gt;
&lt;br /&gt;
With CABSDK installed and the three components in place, you can create the .cab-file using the CABARC tool from Microsoft&#039;s CABSDK, using the following command from a command prompt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;CABARC.EXE N axvlc.cab axvlc.inf axvlc.dll vlc-0.8.6c-win32.exe&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This assumes the [http://en.wikipedia.org/wiki/Path_%28computing%29 PATH] has been set to CABARC.EXE&#039;s directory. If you need to sign the .cab-file, you need to use the -s switch to allocate space for your digital certificate.&lt;br /&gt;
&lt;br /&gt;
===.cab-file Integration===&lt;br /&gt;
The .cab file is integrated as described in the [http://wiki.videolan.org/ActiveX#Samples samples above], using the &amp;lt;OBJECT&amp;gt; element in the case of HTML, for example. When the ActiveX Control is called for the first time, i.e. prior to VLC installation through any means, the setup program should start up. Unfortunately, users have to click through a few dialogs, &amp;quot;allow blocked contents&amp;quot; or deal with other inconveniences, depending on your configuration and the user&#039;s security settings of Internet Explorer. The user must have proper rights to install VLC on the user&#039;s computer; identical to a regular installation of VLC as required by the VLC setup program.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[http://trac.videolan.org/vlc/file/trunk/activex/README.TXT Official ReadMe]&lt;br /&gt;
&lt;br /&gt;
[[Category:Embedded]]&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=ActiveX&amp;diff=10292</id>
		<title>ActiveX</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=ActiveX&amp;diff=10292"/>
		<updated>2007-12-04T00:03:56Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: /* .cab-file Integration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Windows]] build of VLC includes an (optionaly installed) &#039;&#039;&#039;ActiveX control&#039;&#039;&#039;.  The ActiveX control enables VLC to be embedded in web browsers and third-party applications.  &lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
NOTE TO EDITORS!&lt;br /&gt;
PLEASE LEAVE THE SYNTAX AS VB (6 or 98, not .net or 2005).  IF NEEDED, WE SHOULD CREATE A SEPERATE SECTION FOR EACH LANGUAGE/VARIANT AND LINK TO IT.  &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
The ActiveX control includes the following properties:&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;get or set&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;description&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Length&lt;br /&gt;
|Integer&lt;br /&gt;
|get&lt;br /&gt;
|Returns length of the current clip.&lt;br /&gt;
|-&lt;br /&gt;
|playlistCount&lt;br /&gt;
|&lt;br /&gt;
|get&lt;br /&gt;
|Returns the count of items in the playlist&lt;br /&gt;
|-&lt;br /&gt;
|playlistIndex&lt;br /&gt;
|&lt;br /&gt;
|get&lt;br /&gt;
|Returns the index of the current item in the playlist.  &lt;br /&gt;
|-&lt;br /&gt;
|AutoLoop&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|Determines if the player should automatically loop when it finishes the current playlist.  &lt;br /&gt;
|-&lt;br /&gt;
|AutoPlay&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|Determines if the player should start playing a new file/playlist immediately upon being loaded.  &lt;br /&gt;
|-&lt;br /&gt;
|Volume&lt;br /&gt;
|Integer&lt;br /&gt;
|get/set&lt;br /&gt;
|Current volume (scaled from 0 to 100)&lt;br /&gt;
|-&lt;br /&gt;
|MRL&lt;br /&gt;
|String&lt;br /&gt;
|get/set&lt;br /&gt;
|Presumably returns the MRL of the currently loaded file.&amp;lt;!-- readme says &amp;quot;initial MRL in playlist&amp;quot; --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Time&lt;br /&gt;
|Integer&lt;br /&gt;
|get/set&lt;br /&gt;
|Time elapsed in seconds playing current MRL, 0 for live feed&lt;br /&gt;
|-&lt;br /&gt;
|showdisplay&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|show/hide control viewport&amp;lt;!-- from readme --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Playing&lt;br /&gt;
|Boolean&lt;br /&gt;
|get&lt;br /&gt;
|Returns whether some MRL is playing&amp;lt;!-- from readme --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Position&lt;br /&gt;
|&#039;real&#039;&lt;br /&gt;
|get/set&lt;br /&gt;
|Playback position within current MRL, scaled from 0.0 to 1.0.  Live feed returns 0.0&lt;br /&gt;
|-&lt;br /&gt;
|VersionInfo&lt;br /&gt;
|String&lt;br /&gt;
|get&lt;br /&gt;
|Returns version and build information.&lt;br /&gt;
|}&lt;br /&gt;
Note:  In Visual Basic, type &amp;quot;Long&amp;quot; should be used for properties listed with type &amp;quot;Integer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Methods==&lt;br /&gt;
The ActiveX control includes the following methods (functions):&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;description&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;syntax ([[wikipedia:Visual Basic|VB]])&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|setVariable&lt;br /&gt;
|method&lt;br /&gt;
|Assigns a value to a variable that is defined in libvlc.c&lt;br /&gt;
|controlname.setVariable name as String, value&lt;br /&gt;
|-&lt;br /&gt;
|getVariable&lt;br /&gt;
|method&lt;br /&gt;
|Returns the contents of a variable that is defined in libvlc.c&lt;br /&gt;
|x = controlname.getVariable(name as String)&lt;br /&gt;
|-&lt;br /&gt;
|pause&lt;br /&gt;
|method&lt;br /&gt;
|Pauses the currently playing clip&lt;br /&gt;
|controlname.pause&lt;br /&gt;
|-&lt;br /&gt;
|play&lt;br /&gt;
|method&lt;br /&gt;
|Plays as in the normal player, if a clip is not loaded, does nothing.&lt;br /&gt;
|controlname.play&lt;br /&gt;
|-&lt;br /&gt;
|playFaster&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip play faster.&lt;br /&gt;
|controlname.playFaster&lt;br /&gt;
|-&lt;br /&gt;
|playSlower&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip play slower.&lt;br /&gt;
|controlname.playSlower&lt;br /&gt;
|-&lt;br /&gt;
|stop&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip stop.&lt;br /&gt;
|controlname.stop&lt;br /&gt;
|-&lt;br /&gt;
|shuttle&lt;br /&gt;
|method&lt;br /&gt;
|Moves the playback position a specified number of seconds in either direction.&lt;br /&gt;
|controlname.shuttle(seconds as Long)&lt;br /&gt;
|-&lt;br /&gt;
|playlistClear&lt;br /&gt;
|method&lt;br /&gt;
|Clears the playlist&lt;br /&gt;
|controlname.playlistClear&lt;br /&gt;
|-&lt;br /&gt;
|playlistNext&lt;br /&gt;
|method&lt;br /&gt;
|Goes to next item in the playlist&lt;br /&gt;
|controlname.playlistNext&lt;br /&gt;
|-&lt;br /&gt;
|playlistPrev&lt;br /&gt;
|method&lt;br /&gt;
|Goes to previous item in the playlist&lt;br /&gt;
|controlname.playlistPrev&lt;br /&gt;
|-&lt;br /&gt;
|addTarget&lt;br /&gt;
|method&lt;br /&gt;
|Adds a uri to the current playlist or replaces the current playlist with the uri.  &lt;br /&gt;
|controlname.addTarget(uri as String, options, mode as [[VLCPlaylistMode]], Position as Long)&lt;br /&gt;
|-&lt;br /&gt;
|toggleMute&lt;br /&gt;
|method&lt;br /&gt;
|Toggles between the muted/unmuted state of the embedded player.&lt;br /&gt;
|controlname.toggleMute&lt;br /&gt;
|-&lt;br /&gt;
|fullscreen&lt;br /&gt;
|method&lt;br /&gt;
|Toggles between fullscreen and non-fullscreen modes.&lt;br /&gt;
|controlname.fullscreen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Options==&lt;br /&gt;
The &amp;lt;code&amp;gt;addTarget&amp;lt;/code&amp;gt; method accepts most of the command line options; including, but not limited to, the following :&lt;br /&gt;
*&amp;lt;code&amp;gt;:audio-track=&#039;&#039;index&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;:vout-filter=&#039;&#039;output-filter&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;deinterlace&amp;lt;/code&amp;gt; for example)&lt;br /&gt;
*&amp;lt;code&amp;gt;:deinterlace-mode=&#039;&#039;mode&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;linear&amp;lt;/code&amp;gt; for example)&lt;br /&gt;
&lt;br /&gt;
==Samples==&lt;br /&gt;
*[[ActiveX/Delphi|Delphi Implementation]]&lt;br /&gt;
&lt;br /&gt;
* [[ActiveX/HTML|HTML Implementation]]&lt;br /&gt;
&lt;br /&gt;
==Installing==&lt;br /&gt;
===Introduction===&lt;br /&gt;
&lt;br /&gt;
VideoLAN is not a good source for the installation of VLC through an ActiveX control. At some point, Microsoft Internet Explorer stopped allowing the installation of ActiveX controls unless:&lt;br /&gt;
* they were signed to associate the software vendor&#039;s name with the file containing the ActiveX control, or&lt;br /&gt;
* they resided in an &amp;quot;trusted site&amp;quot;&lt;br /&gt;
The second option is only feasible where both server and client infrastructure are managed under the same umbrella. The first option requires a [http://en.wikipedia.org/wiki/Certificate_authority Certificate Authority] to digitally sign the control. This comes at a cost which the VideoLAN project is not able to bear. The solution is to create one&#039;s own ActiveX control distribution, which in turn can be digitally signed by a Certificate Authority of your choice, if necessary.&lt;br /&gt;
&lt;br /&gt;
===Creating an VLC ActiveX Distribution===&lt;br /&gt;
The following requisites are required:&lt;br /&gt;
* CABSDK by Microsoft to create a [http://en.wikipedia.org/wiki/Cabinet_%28file_format%29 Cabinet File] (.cab-file) containing the relevant ActiveX control and VLC files. MSDN has [http://msdn2.microsoft.com/en-us/library/aa751974.aspx a good description how to package an ActiveX Control], including a link to the CABSDK download page.&lt;br /&gt;
* The .cab-file is a special form of a .zip file, consisting of:&lt;br /&gt;
** axvlc.inf - The INF file, which would be called manifest in the modern age&lt;br /&gt;
** axvlc.dll - ActiveX DLL which bootstraps the VLC setup file&lt;br /&gt;
** vlc-0.8.6c-win32.exe - VLC setup file (refer to your version)&lt;br /&gt;
&lt;br /&gt;
I am using the following code in the INF file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
; Version number and signature of INF file.&lt;br /&gt;
;&lt;br /&gt;
[version]&lt;br /&gt;
signature=&amp;quot;$CHICAGO$&amp;quot;&lt;br /&gt;
AdvancedINF=2.0&lt;br /&gt;
&lt;br /&gt;
[Add.Code]&lt;br /&gt;
vlc-0.8.6c-win32.exe&lt;br /&gt;
axvlc.dll=axvlc.dll&lt;br /&gt;
&lt;br /&gt;
[axvlc.dll]&lt;br /&gt;
FileVersion=0,8,6,0&lt;br /&gt;
clsid={9BE31822-FDAD-461B-AD51-BE1D1C159921}&lt;br /&gt;
RegisterServer=no&lt;br /&gt;
hook=nsiinstaller&lt;br /&gt;
&lt;br /&gt;
[vlc-0.8.6c-win32.exe]&lt;br /&gt;
FileVersion=0,8,6,0&lt;br /&gt;
file-win32-x86=thiscab&lt;br /&gt;
&lt;br /&gt;
[nsiinstaller]&lt;br /&gt;
run=%EXTRACT_DIR%\vlc-0.8.6c-win32.exe&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Again, refer to your version of VLC.&lt;br /&gt;
&lt;br /&gt;
You can extract axvlc.dll from the binary distribution of VLC. This is a zip file on VideoLAN&#039;s download page, version 0.8.6.c [http://downloads.videolan.org/pub/videolan/vlc/0.8.6c/win32/vlc-0.8.6c-win32.zip here].&lt;br /&gt;
&lt;br /&gt;
The VLC setup file is the &amp;quot;featured&amp;quot; download on VideoLAN&#039;s main page; a copy resides in the same directory as axvlc.dll, the VLC setup file of version 0.8.6.c [http://downloads.videolan.org/pub/videolan/vlc/0.8.6c/win32/vlc-0.8.6c-win32.exe here].&lt;br /&gt;
&lt;br /&gt;
With CABSDK installed and the three components in place, you can create the .cab-file using the CABARC tool from Microsoft&#039;s CABSDK, using the following command from a command prompt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;CABARC.EXE N axvlc.cab axvlc.inf axvlc.dll vlc-0.8.6c-win32.exe&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This assumes the [http://en.wikipedia.org/wiki/Path_%28computing%29 PATH] has been set to CABARC.EXE&#039;s directory. If you need to sign the .cab-file, you need to use the -s switch to allocate space for your digital certificate.&lt;br /&gt;
&lt;br /&gt;
===.cab-file Integration===&lt;br /&gt;
The .cab file is integrated as described in the [http://wiki.videolan.org/ActiveX#Samples samples above], using the &amp;lt;OBJECT&amp;gt; element in the case of HTML, for example. When the ActiveX Control is called for the first time, i.e. prior to VLC installation through any means, the setup program should start up. Unfortunately, users have to click through a few dialogs, &amp;quot;allow blocked contents&amp;quot; or deal with other inconveniences, depending on your configuration and the user&#039;s security settings of Internet Explorer. The user must have proper rights to install VLC on the user&#039;s computer; identical to a regular installation of VLC as required by the VLC setup program.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[http://trac.videolan.org/vlc/file/trunk/activex/README.TXT Official ReadMe]&lt;br /&gt;
&lt;br /&gt;
[[Category:Embedded]]&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=ActiveX&amp;diff=10291</id>
		<title>ActiveX</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=ActiveX&amp;diff=10291"/>
		<updated>2007-12-03T23:46:28Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: /* .cab-file Integration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Windows]] build of VLC includes an (optionaly installed) &#039;&#039;&#039;ActiveX control&#039;&#039;&#039;.  The ActiveX control enables VLC to be embedded in web browsers and third-party applications.  &lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
NOTE TO EDITORS!&lt;br /&gt;
PLEASE LEAVE THE SYNTAX AS VB (6 or 98, not .net or 2005).  IF NEEDED, WE SHOULD CREATE A SEPERATE SECTION FOR EACH LANGUAGE/VARIANT AND LINK TO IT.  &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
The ActiveX control includes the following properties:&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;get or set&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;description&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Length&lt;br /&gt;
|Integer&lt;br /&gt;
|get&lt;br /&gt;
|Returns length of the current clip.&lt;br /&gt;
|-&lt;br /&gt;
|playlistCount&lt;br /&gt;
|&lt;br /&gt;
|get&lt;br /&gt;
|Returns the count of items in the playlist&lt;br /&gt;
|-&lt;br /&gt;
|playlistIndex&lt;br /&gt;
|&lt;br /&gt;
|get&lt;br /&gt;
|Returns the index of the current item in the playlist.  &lt;br /&gt;
|-&lt;br /&gt;
|AutoLoop&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|Determines if the player should automatically loop when it finishes the current playlist.  &lt;br /&gt;
|-&lt;br /&gt;
|AutoPlay&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|Determines if the player should start playing a new file/playlist immediately upon being loaded.  &lt;br /&gt;
|-&lt;br /&gt;
|Volume&lt;br /&gt;
|Integer&lt;br /&gt;
|get/set&lt;br /&gt;
|Current volume (scaled from 0 to 100)&lt;br /&gt;
|-&lt;br /&gt;
|MRL&lt;br /&gt;
|String&lt;br /&gt;
|get/set&lt;br /&gt;
|Presumably returns the MRL of the currently loaded file.&amp;lt;!-- readme says &amp;quot;initial MRL in playlist&amp;quot; --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Time&lt;br /&gt;
|Integer&lt;br /&gt;
|get/set&lt;br /&gt;
|Time elapsed in seconds playing current MRL, 0 for live feed&lt;br /&gt;
|-&lt;br /&gt;
|showdisplay&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|show/hide control viewport&amp;lt;!-- from readme --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Playing&lt;br /&gt;
|Boolean&lt;br /&gt;
|get&lt;br /&gt;
|Returns whether some MRL is playing&amp;lt;!-- from readme --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Position&lt;br /&gt;
|&#039;real&#039;&lt;br /&gt;
|get/set&lt;br /&gt;
|Playback position within current MRL, scaled from 0.0 to 1.0.  Live feed returns 0.0&lt;br /&gt;
|-&lt;br /&gt;
|VersionInfo&lt;br /&gt;
|String&lt;br /&gt;
|get&lt;br /&gt;
|Returns version and build information.&lt;br /&gt;
|}&lt;br /&gt;
Note:  In Visual Basic, type &amp;quot;Long&amp;quot; should be used for properties listed with type &amp;quot;Integer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Methods==&lt;br /&gt;
The ActiveX control includes the following methods (functions):&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;description&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;syntax ([[wikipedia:Visual Basic|VB]])&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|setVariable&lt;br /&gt;
|method&lt;br /&gt;
|Assigns a value to a variable that is defined in libvlc.c&lt;br /&gt;
|controlname.setVariable name as String, value&lt;br /&gt;
|-&lt;br /&gt;
|getVariable&lt;br /&gt;
|method&lt;br /&gt;
|Returns the contents of a variable that is defined in libvlc.c&lt;br /&gt;
|x = controlname.getVariable(name as String)&lt;br /&gt;
|-&lt;br /&gt;
|pause&lt;br /&gt;
|method&lt;br /&gt;
|Pauses the currently playing clip&lt;br /&gt;
|controlname.pause&lt;br /&gt;
|-&lt;br /&gt;
|play&lt;br /&gt;
|method&lt;br /&gt;
|Plays as in the normal player, if a clip is not loaded, does nothing.&lt;br /&gt;
|controlname.play&lt;br /&gt;
|-&lt;br /&gt;
|playFaster&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip play faster.&lt;br /&gt;
|controlname.playFaster&lt;br /&gt;
|-&lt;br /&gt;
|playSlower&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip play slower.&lt;br /&gt;
|controlname.playSlower&lt;br /&gt;
|-&lt;br /&gt;
|stop&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip stop.&lt;br /&gt;
|controlname.stop&lt;br /&gt;
|-&lt;br /&gt;
|shuttle&lt;br /&gt;
|method&lt;br /&gt;
|Moves the playback position a specified number of seconds in either direction.&lt;br /&gt;
|controlname.shuttle(seconds as Long)&lt;br /&gt;
|-&lt;br /&gt;
|playlistClear&lt;br /&gt;
|method&lt;br /&gt;
|Clears the playlist&lt;br /&gt;
|controlname.playlistClear&lt;br /&gt;
|-&lt;br /&gt;
|playlistNext&lt;br /&gt;
|method&lt;br /&gt;
|Goes to next item in the playlist&lt;br /&gt;
|controlname.playlistNext&lt;br /&gt;
|-&lt;br /&gt;
|playlistPrev&lt;br /&gt;
|method&lt;br /&gt;
|Goes to previous item in the playlist&lt;br /&gt;
|controlname.playlistPrev&lt;br /&gt;
|-&lt;br /&gt;
|addTarget&lt;br /&gt;
|method&lt;br /&gt;
|Adds a uri to the current playlist or replaces the current playlist with the uri.  &lt;br /&gt;
|controlname.addTarget(uri as String, options, mode as [[VLCPlaylistMode]], Position as Long)&lt;br /&gt;
|-&lt;br /&gt;
|toggleMute&lt;br /&gt;
|method&lt;br /&gt;
|Toggles between the muted/unmuted state of the embedded player.&lt;br /&gt;
|controlname.toggleMute&lt;br /&gt;
|-&lt;br /&gt;
|fullscreen&lt;br /&gt;
|method&lt;br /&gt;
|Toggles between fullscreen and non-fullscreen modes.&lt;br /&gt;
|controlname.fullscreen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Options==&lt;br /&gt;
The &amp;lt;code&amp;gt;addTarget&amp;lt;/code&amp;gt; method accepts most of the command line options; including, but not limited to, the following :&lt;br /&gt;
*&amp;lt;code&amp;gt;:audio-track=&#039;&#039;index&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;:vout-filter=&#039;&#039;output-filter&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;deinterlace&amp;lt;/code&amp;gt; for example)&lt;br /&gt;
*&amp;lt;code&amp;gt;:deinterlace-mode=&#039;&#039;mode&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;linear&amp;lt;/code&amp;gt; for example)&lt;br /&gt;
&lt;br /&gt;
==Samples==&lt;br /&gt;
*[[ActiveX/Delphi|Delphi Implementation]]&lt;br /&gt;
&lt;br /&gt;
* [[ActiveX/HTML|HTML Implementation]]&lt;br /&gt;
&lt;br /&gt;
==Installing==&lt;br /&gt;
===Introduction===&lt;br /&gt;
&lt;br /&gt;
VideoLAN is not a good source for the installation of VLC through an ActiveX control. At some point, Microsoft Internet Explorer stopped allowing the installation of ActiveX controls unless:&lt;br /&gt;
* they were signed to associate the software vendor&#039;s name with the file containing the ActiveX control, or&lt;br /&gt;
* they resided in an &amp;quot;trusted site&amp;quot;&lt;br /&gt;
The second option is only feasible where both server and client infrastructure are managed under the same umbrella. The first option requires a [http://en.wikipedia.org/wiki/Certificate_authority Certificate Authority] to digitally sign the control. This comes at a cost which the VideoLAN project is not able to bear. The solution is to create one&#039;s own ActiveX control distribution, which in turn can be digitally signed by a Certificate Authority of your choice, if necessary.&lt;br /&gt;
&lt;br /&gt;
===Creating an VLC ActiveX Distribution===&lt;br /&gt;
The following requisites are required:&lt;br /&gt;
* CABSDK by Microsoft to create a [http://en.wikipedia.org/wiki/Cabinet_%28file_format%29 Cabinet File] (.cab-file) containing the relevant ActiveX control and VLC files. MSDN has [http://msdn2.microsoft.com/en-us/library/aa751974.aspx a good description how to package an ActiveX Control], including a link to the CABSDK download page.&lt;br /&gt;
* The .cab-file is a special form of a .zip file, consisting of:&lt;br /&gt;
** axvlc.inf - The INF file, which would be called manifest in the modern age&lt;br /&gt;
** axvlc.dll - ActiveX DLL which bootstraps the VLC setup file&lt;br /&gt;
** vlc-0.8.6c-win32.exe - VLC setup file (refer to your version)&lt;br /&gt;
&lt;br /&gt;
I am using the following code in the INF file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
; Version number and signature of INF file.&lt;br /&gt;
;&lt;br /&gt;
[version]&lt;br /&gt;
signature=&amp;quot;$CHICAGO$&amp;quot;&lt;br /&gt;
AdvancedINF=2.0&lt;br /&gt;
&lt;br /&gt;
[Add.Code]&lt;br /&gt;
vlc-0.8.6c-win32.exe&lt;br /&gt;
axvlc.dll=axvlc.dll&lt;br /&gt;
&lt;br /&gt;
[axvlc.dll]&lt;br /&gt;
FileVersion=0,8,6,0&lt;br /&gt;
clsid={9BE31822-FDAD-461B-AD51-BE1D1C159921}&lt;br /&gt;
RegisterServer=no&lt;br /&gt;
hook=nsiinstaller&lt;br /&gt;
&lt;br /&gt;
[vlc-0.8.6c-win32.exe]&lt;br /&gt;
FileVersion=0,8,6,0&lt;br /&gt;
file-win32-x86=thiscab&lt;br /&gt;
&lt;br /&gt;
[nsiinstaller]&lt;br /&gt;
run=%EXTRACT_DIR%\vlc-0.8.6c-win32.exe&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Again, refer to your version of VLC.&lt;br /&gt;
&lt;br /&gt;
You can extract axvlc.dll from the binary distribution of VLC. This is a zip file on VideoLAN&#039;s download page, version 0.8.6.c [http://downloads.videolan.org/pub/videolan/vlc/0.8.6c/win32/vlc-0.8.6c-win32.zip here].&lt;br /&gt;
&lt;br /&gt;
The VLC setup file is the &amp;quot;featured&amp;quot; download on VideoLAN&#039;s main page; a copy resides in the same directory as axvlc.dll, the VLC setup file of version 0.8.6.c [http://downloads.videolan.org/pub/videolan/vlc/0.8.6c/win32/vlc-0.8.6c-win32.exe here].&lt;br /&gt;
&lt;br /&gt;
With CABSDK installed and the three components in place, you can create the .cab-file using the CABARC tool from Microsoft&#039;s CABSDK, using the following command from a command prompt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;CABARC.EXE N axvlc.cab axvlc.inf axvlc.dll vlc-0.8.6c-win32.exe&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This assumes the [http://en.wikipedia.org/wiki/Path_%28computing%29 PATH] has been set to CABARC.EXE&#039;s directory. If you need to sign the .cab-file, you need to use the -s switch to allocate space for your digital certificate.&lt;br /&gt;
&lt;br /&gt;
===.cab-file Integration===&lt;br /&gt;
The .cab file is integrated as described in the [http://wiki.videolan.org/ActiveX#Samples samples above], using the &amp;lt;OBJECT&amp;gt; element in the case of HTML, for example. When the ActiveX Control is called for the first time, i.e. prior to VLC installation through any means, the setup program should start up. Unfortunately, users have to click through a few dialogs, &amp;quot;allow blocked contents&amp;quot; or deal with other inconveniences, depending on your configuration and the user&#039;s security settings of Internet Explorer. The user must have proper rights to install VLC on the user&#039;s computer; identical to a regular installation of VLC requires through the VLC setup program.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[http://trac.videolan.org/vlc/file/trunk/activex/README.TXT Official ReadMe]&lt;br /&gt;
&lt;br /&gt;
[[Category:Embedded]]&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=ActiveX&amp;diff=10290</id>
		<title>ActiveX</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=ActiveX&amp;diff=10290"/>
		<updated>2007-12-03T23:41:03Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: /* Installing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Windows]] build of VLC includes an (optionaly installed) &#039;&#039;&#039;ActiveX control&#039;&#039;&#039;.  The ActiveX control enables VLC to be embedded in web browsers and third-party applications.  &lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
NOTE TO EDITORS!&lt;br /&gt;
PLEASE LEAVE THE SYNTAX AS VB (6 or 98, not .net or 2005).  IF NEEDED, WE SHOULD CREATE A SEPERATE SECTION FOR EACH LANGUAGE/VARIANT AND LINK TO IT.  &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
The ActiveX control includes the following properties:&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;get or set&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;description&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Length&lt;br /&gt;
|Integer&lt;br /&gt;
|get&lt;br /&gt;
|Returns length of the current clip.&lt;br /&gt;
|-&lt;br /&gt;
|playlistCount&lt;br /&gt;
|&lt;br /&gt;
|get&lt;br /&gt;
|Returns the count of items in the playlist&lt;br /&gt;
|-&lt;br /&gt;
|playlistIndex&lt;br /&gt;
|&lt;br /&gt;
|get&lt;br /&gt;
|Returns the index of the current item in the playlist.  &lt;br /&gt;
|-&lt;br /&gt;
|AutoLoop&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|Determines if the player should automatically loop when it finishes the current playlist.  &lt;br /&gt;
|-&lt;br /&gt;
|AutoPlay&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|Determines if the player should start playing a new file/playlist immediately upon being loaded.  &lt;br /&gt;
|-&lt;br /&gt;
|Volume&lt;br /&gt;
|Integer&lt;br /&gt;
|get/set&lt;br /&gt;
|Current volume (scaled from 0 to 100)&lt;br /&gt;
|-&lt;br /&gt;
|MRL&lt;br /&gt;
|String&lt;br /&gt;
|get/set&lt;br /&gt;
|Presumably returns the MRL of the currently loaded file.&amp;lt;!-- readme says &amp;quot;initial MRL in playlist&amp;quot; --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Time&lt;br /&gt;
|Integer&lt;br /&gt;
|get/set&lt;br /&gt;
|Time elapsed in seconds playing current MRL, 0 for live feed&lt;br /&gt;
|-&lt;br /&gt;
|showdisplay&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|show/hide control viewport&amp;lt;!-- from readme --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Playing&lt;br /&gt;
|Boolean&lt;br /&gt;
|get&lt;br /&gt;
|Returns whether some MRL is playing&amp;lt;!-- from readme --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Position&lt;br /&gt;
|&#039;real&#039;&lt;br /&gt;
|get/set&lt;br /&gt;
|Playback position within current MRL, scaled from 0.0 to 1.0.  Live feed returns 0.0&lt;br /&gt;
|-&lt;br /&gt;
|VersionInfo&lt;br /&gt;
|String&lt;br /&gt;
|get&lt;br /&gt;
|Returns version and build information.&lt;br /&gt;
|}&lt;br /&gt;
Note:  In Visual Basic, type &amp;quot;Long&amp;quot; should be used for properties listed with type &amp;quot;Integer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Methods==&lt;br /&gt;
The ActiveX control includes the following methods (functions):&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;description&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;syntax ([[wikipedia:Visual Basic|VB]])&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|setVariable&lt;br /&gt;
|method&lt;br /&gt;
|Assigns a value to a variable that is defined in libvlc.c&lt;br /&gt;
|controlname.setVariable name as String, value&lt;br /&gt;
|-&lt;br /&gt;
|getVariable&lt;br /&gt;
|method&lt;br /&gt;
|Returns the contents of a variable that is defined in libvlc.c&lt;br /&gt;
|x = controlname.getVariable(name as String)&lt;br /&gt;
|-&lt;br /&gt;
|pause&lt;br /&gt;
|method&lt;br /&gt;
|Pauses the currently playing clip&lt;br /&gt;
|controlname.pause&lt;br /&gt;
|-&lt;br /&gt;
|play&lt;br /&gt;
|method&lt;br /&gt;
|Plays as in the normal player, if a clip is not loaded, does nothing.&lt;br /&gt;
|controlname.play&lt;br /&gt;
|-&lt;br /&gt;
|playFaster&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip play faster.&lt;br /&gt;
|controlname.playFaster&lt;br /&gt;
|-&lt;br /&gt;
|playSlower&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip play slower.&lt;br /&gt;
|controlname.playSlower&lt;br /&gt;
|-&lt;br /&gt;
|stop&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip stop.&lt;br /&gt;
|controlname.stop&lt;br /&gt;
|-&lt;br /&gt;
|shuttle&lt;br /&gt;
|method&lt;br /&gt;
|Moves the playback position a specified number of seconds in either direction.&lt;br /&gt;
|controlname.shuttle(seconds as Long)&lt;br /&gt;
|-&lt;br /&gt;
|playlistClear&lt;br /&gt;
|method&lt;br /&gt;
|Clears the playlist&lt;br /&gt;
|controlname.playlistClear&lt;br /&gt;
|-&lt;br /&gt;
|playlistNext&lt;br /&gt;
|method&lt;br /&gt;
|Goes to next item in the playlist&lt;br /&gt;
|controlname.playlistNext&lt;br /&gt;
|-&lt;br /&gt;
|playlistPrev&lt;br /&gt;
|method&lt;br /&gt;
|Goes to previous item in the playlist&lt;br /&gt;
|controlname.playlistPrev&lt;br /&gt;
|-&lt;br /&gt;
|addTarget&lt;br /&gt;
|method&lt;br /&gt;
|Adds a uri to the current playlist or replaces the current playlist with the uri.  &lt;br /&gt;
|controlname.addTarget(uri as String, options, mode as [[VLCPlaylistMode]], Position as Long)&lt;br /&gt;
|-&lt;br /&gt;
|toggleMute&lt;br /&gt;
|method&lt;br /&gt;
|Toggles between the muted/unmuted state of the embedded player.&lt;br /&gt;
|controlname.toggleMute&lt;br /&gt;
|-&lt;br /&gt;
|fullscreen&lt;br /&gt;
|method&lt;br /&gt;
|Toggles between fullscreen and non-fullscreen modes.&lt;br /&gt;
|controlname.fullscreen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Options==&lt;br /&gt;
The &amp;lt;code&amp;gt;addTarget&amp;lt;/code&amp;gt; method accepts most of the command line options; including, but not limited to, the following :&lt;br /&gt;
*&amp;lt;code&amp;gt;:audio-track=&#039;&#039;index&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;:vout-filter=&#039;&#039;output-filter&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;deinterlace&amp;lt;/code&amp;gt; for example)&lt;br /&gt;
*&amp;lt;code&amp;gt;:deinterlace-mode=&#039;&#039;mode&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;linear&amp;lt;/code&amp;gt; for example)&lt;br /&gt;
&lt;br /&gt;
==Samples==&lt;br /&gt;
*[[ActiveX/Delphi|Delphi Implementation]]&lt;br /&gt;
&lt;br /&gt;
* [[ActiveX/HTML|HTML Implementation]]&lt;br /&gt;
&lt;br /&gt;
==Installing==&lt;br /&gt;
===Introduction===&lt;br /&gt;
&lt;br /&gt;
VideoLAN is not a good source for the installation of VLC through an ActiveX control. At some point, Microsoft Internet Explorer stopped allowing the installation of ActiveX controls unless:&lt;br /&gt;
* they were signed to associate the software vendor&#039;s name with the file containing the ActiveX control, or&lt;br /&gt;
* they resided in an &amp;quot;trusted site&amp;quot;&lt;br /&gt;
The second option is only feasible where both server and client infrastructure are managed under the same umbrella. The first option requires a [http://en.wikipedia.org/wiki/Certificate_authority Certificate Authority] to digitally sign the control. This comes at a cost which the VideoLAN project is not able to bear. The solution is to create one&#039;s own ActiveX control distribution, which in turn can be digitally signed by a Certificate Authority of your choice, if necessary.&lt;br /&gt;
&lt;br /&gt;
===Creating an VLC ActiveX Distribution===&lt;br /&gt;
The following requisites are required:&lt;br /&gt;
* CABSDK by Microsoft to create a [http://en.wikipedia.org/wiki/Cabinet_%28file_format%29 Cabinet File] (.cab-file) containing the relevant ActiveX control and VLC files. MSDN has [http://msdn2.microsoft.com/en-us/library/aa751974.aspx a good description how to package an ActiveX Control], including a link to the CABSDK download page.&lt;br /&gt;
* The .cab-file is a special form of a .zip file, consisting of:&lt;br /&gt;
** axvlc.inf - The INF file, which would be called manifest in the modern age&lt;br /&gt;
** axvlc.dll - ActiveX DLL which bootstraps the VLC setup file&lt;br /&gt;
** vlc-0.8.6c-win32.exe - VLC setup file (refer to your version)&lt;br /&gt;
&lt;br /&gt;
I am using the following code in the INF file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
; Version number and signature of INF file.&lt;br /&gt;
;&lt;br /&gt;
[version]&lt;br /&gt;
signature=&amp;quot;$CHICAGO$&amp;quot;&lt;br /&gt;
AdvancedINF=2.0&lt;br /&gt;
&lt;br /&gt;
[Add.Code]&lt;br /&gt;
vlc-0.8.6c-win32.exe&lt;br /&gt;
axvlc.dll=axvlc.dll&lt;br /&gt;
&lt;br /&gt;
[axvlc.dll]&lt;br /&gt;
FileVersion=0,8,6,0&lt;br /&gt;
clsid={9BE31822-FDAD-461B-AD51-BE1D1C159921}&lt;br /&gt;
RegisterServer=no&lt;br /&gt;
hook=nsiinstaller&lt;br /&gt;
&lt;br /&gt;
[vlc-0.8.6c-win32.exe]&lt;br /&gt;
FileVersion=0,8,6,0&lt;br /&gt;
file-win32-x86=thiscab&lt;br /&gt;
&lt;br /&gt;
[nsiinstaller]&lt;br /&gt;
run=%EXTRACT_DIR%\vlc-0.8.6c-win32.exe&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Again, refer to your version of VLC.&lt;br /&gt;
&lt;br /&gt;
You can extract axvlc.dll from the binary distribution of VLC. This is a zip file on VideoLAN&#039;s download page, version 0.8.6.c [http://downloads.videolan.org/pub/videolan/vlc/0.8.6c/win32/vlc-0.8.6c-win32.zip here].&lt;br /&gt;
&lt;br /&gt;
The VLC setup file is the &amp;quot;featured&amp;quot; download on VideoLAN&#039;s main page; a copy resides in the same directory as axvlc.dll, the VLC setup file of version 0.8.6.c [http://downloads.videolan.org/pub/videolan/vlc/0.8.6c/win32/vlc-0.8.6c-win32.exe here].&lt;br /&gt;
&lt;br /&gt;
With CABSDK installed and the three components in place, you can create the .cab-file using the CABARC tool from Microsoft&#039;s CABSDK, using the following command from a command prompt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;CABARC.EXE N axvlc.cab axvlc.inf axvlc.dll vlc-0.8.6c-win32.exe&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This assumes the [http://en.wikipedia.org/wiki/Path_%28computing%29 PATH] has been set to CABARC.EXE&#039;s directory. If you need to sign the .cab-file, you need to use the -s switch to allocate space for your digital certificate.&lt;br /&gt;
&lt;br /&gt;
===.cab-file Integration===&lt;br /&gt;
The .cab file is integrated as described in the [http://wiki.videolan.org/ActiveX#Samples samples above], using the &amp;lt;OBJECT&amp;gt; element in the case of HTML, for example.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[http://trac.videolan.org/vlc/file/trunk/activex/README.TXT Official ReadMe]&lt;br /&gt;
&lt;br /&gt;
[[Category:Embedded]]&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=ActiveX&amp;diff=10287</id>
		<title>ActiveX</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=ActiveX&amp;diff=10287"/>
		<updated>2007-12-03T23:34:28Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: /* Creating an VLC ActiveX Distribution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Windows]] build of VLC includes an (optionaly installed) &#039;&#039;&#039;ActiveX control&#039;&#039;&#039;.  The ActiveX control enables VLC to be embedded in web browsers and third-party applications.  &lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
NOTE TO EDITORS!&lt;br /&gt;
PLEASE LEAVE THE SYNTAX AS VB (6 or 98, not .net or 2005).  IF NEEDED, WE SHOULD CREATE A SEPERATE SECTION FOR EACH LANGUAGE/VARIANT AND LINK TO IT.  &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
The ActiveX control includes the following properties:&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;get or set&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;description&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Length&lt;br /&gt;
|Integer&lt;br /&gt;
|get&lt;br /&gt;
|Returns length of the current clip.&lt;br /&gt;
|-&lt;br /&gt;
|playlistCount&lt;br /&gt;
|&lt;br /&gt;
|get&lt;br /&gt;
|Returns the count of items in the playlist&lt;br /&gt;
|-&lt;br /&gt;
|playlistIndex&lt;br /&gt;
|&lt;br /&gt;
|get&lt;br /&gt;
|Returns the index of the current item in the playlist.  &lt;br /&gt;
|-&lt;br /&gt;
|AutoLoop&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|Determines if the player should automatically loop when it finishes the current playlist.  &lt;br /&gt;
|-&lt;br /&gt;
|AutoPlay&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|Determines if the player should start playing a new file/playlist immediately upon being loaded.  &lt;br /&gt;
|-&lt;br /&gt;
|Volume&lt;br /&gt;
|Integer&lt;br /&gt;
|get/set&lt;br /&gt;
|Current volume (scaled from 0 to 100)&lt;br /&gt;
|-&lt;br /&gt;
|MRL&lt;br /&gt;
|String&lt;br /&gt;
|get/set&lt;br /&gt;
|Presumably returns the MRL of the currently loaded file.&amp;lt;!-- readme says &amp;quot;initial MRL in playlist&amp;quot; --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Time&lt;br /&gt;
|Integer&lt;br /&gt;
|get/set&lt;br /&gt;
|Time elapsed in seconds playing current MRL, 0 for live feed&lt;br /&gt;
|-&lt;br /&gt;
|showdisplay&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|show/hide control viewport&amp;lt;!-- from readme --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Playing&lt;br /&gt;
|Boolean&lt;br /&gt;
|get&lt;br /&gt;
|Returns whether some MRL is playing&amp;lt;!-- from readme --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Position&lt;br /&gt;
|&#039;real&#039;&lt;br /&gt;
|get/set&lt;br /&gt;
|Playback position within current MRL, scaled from 0.0 to 1.0.  Live feed returns 0.0&lt;br /&gt;
|-&lt;br /&gt;
|VersionInfo&lt;br /&gt;
|String&lt;br /&gt;
|get&lt;br /&gt;
|Returns version and build information.&lt;br /&gt;
|}&lt;br /&gt;
Note:  In Visual Basic, type &amp;quot;Long&amp;quot; should be used for properties listed with type &amp;quot;Integer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Methods==&lt;br /&gt;
The ActiveX control includes the following methods (functions):&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;description&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;syntax ([[wikipedia:Visual Basic|VB]])&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|setVariable&lt;br /&gt;
|method&lt;br /&gt;
|Assigns a value to a variable that is defined in libvlc.c&lt;br /&gt;
|controlname.setVariable name as String, value&lt;br /&gt;
|-&lt;br /&gt;
|getVariable&lt;br /&gt;
|method&lt;br /&gt;
|Returns the contents of a variable that is defined in libvlc.c&lt;br /&gt;
|x = controlname.getVariable(name as String)&lt;br /&gt;
|-&lt;br /&gt;
|pause&lt;br /&gt;
|method&lt;br /&gt;
|Pauses the currently playing clip&lt;br /&gt;
|controlname.pause&lt;br /&gt;
|-&lt;br /&gt;
|play&lt;br /&gt;
|method&lt;br /&gt;
|Plays as in the normal player, if a clip is not loaded, does nothing.&lt;br /&gt;
|controlname.play&lt;br /&gt;
|-&lt;br /&gt;
|playFaster&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip play faster.&lt;br /&gt;
|controlname.playFaster&lt;br /&gt;
|-&lt;br /&gt;
|playSlower&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip play slower.&lt;br /&gt;
|controlname.playSlower&lt;br /&gt;
|-&lt;br /&gt;
|stop&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip stop.&lt;br /&gt;
|controlname.stop&lt;br /&gt;
|-&lt;br /&gt;
|shuttle&lt;br /&gt;
|method&lt;br /&gt;
|Moves the playback position a specified number of seconds in either direction.&lt;br /&gt;
|controlname.shuttle(seconds as Long)&lt;br /&gt;
|-&lt;br /&gt;
|playlistClear&lt;br /&gt;
|method&lt;br /&gt;
|Clears the playlist&lt;br /&gt;
|controlname.playlistClear&lt;br /&gt;
|-&lt;br /&gt;
|playlistNext&lt;br /&gt;
|method&lt;br /&gt;
|Goes to next item in the playlist&lt;br /&gt;
|controlname.playlistNext&lt;br /&gt;
|-&lt;br /&gt;
|playlistPrev&lt;br /&gt;
|method&lt;br /&gt;
|Goes to previous item in the playlist&lt;br /&gt;
|controlname.playlistPrev&lt;br /&gt;
|-&lt;br /&gt;
|addTarget&lt;br /&gt;
|method&lt;br /&gt;
|Adds a uri to the current playlist or replaces the current playlist with the uri.  &lt;br /&gt;
|controlname.addTarget(uri as String, options, mode as [[VLCPlaylistMode]], Position as Long)&lt;br /&gt;
|-&lt;br /&gt;
|toggleMute&lt;br /&gt;
|method&lt;br /&gt;
|Toggles between the muted/unmuted state of the embedded player.&lt;br /&gt;
|controlname.toggleMute&lt;br /&gt;
|-&lt;br /&gt;
|fullscreen&lt;br /&gt;
|method&lt;br /&gt;
|Toggles between fullscreen and non-fullscreen modes.&lt;br /&gt;
|controlname.fullscreen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Options==&lt;br /&gt;
The &amp;lt;code&amp;gt;addTarget&amp;lt;/code&amp;gt; method accepts most of the command line options; including, but not limited to, the following :&lt;br /&gt;
*&amp;lt;code&amp;gt;:audio-track=&#039;&#039;index&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;:vout-filter=&#039;&#039;output-filter&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;deinterlace&amp;lt;/code&amp;gt; for example)&lt;br /&gt;
*&amp;lt;code&amp;gt;:deinterlace-mode=&#039;&#039;mode&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;linear&amp;lt;/code&amp;gt; for example)&lt;br /&gt;
&lt;br /&gt;
==Samples==&lt;br /&gt;
*[[ActiveX/Delphi|Delphi Implementation]]&lt;br /&gt;
&lt;br /&gt;
* [[ActiveX/HTML|HTML Implementation]]&lt;br /&gt;
&lt;br /&gt;
==Installing==&lt;br /&gt;
===Introduction===&lt;br /&gt;
&lt;br /&gt;
VideoLAN is not a good source for the installation of VLC through an ActiveX control. At some point, Microsoft Internet Explorer stopped allowing the installation of ActiveX controls unless:&lt;br /&gt;
* they were signed to associate the software vendor&#039;s name with the file containing the ActiveX control, or&lt;br /&gt;
* they resided in an &amp;quot;trusted site&amp;quot;&lt;br /&gt;
The second option is only feasible where both server and client infrastructure are managed under the same umbrella. The first option requires a [http://en.wikipedia.org/wiki/Certificate_authority Certificate Authority] to digitally sign the control. This comes at a cost which the VideoLAN project is not able to bear. The solution is to create one&#039;s own ActiveX control distribution, which in turn can be digitally signed by a Certificate Authority of your choice, if necessary.&lt;br /&gt;
&lt;br /&gt;
===Creating an VLC ActiveX Distribution===&lt;br /&gt;
The following requisites are required:&lt;br /&gt;
* CABSDK by Microsoft to create a [http://en.wikipedia.org/wiki/Cabinet_%28file_format%29 Cabinet File] (.cab-file) containing the relevant ActiveX control and VLC files. MSDN has [http://msdn2.microsoft.com/en-us/library/aa751974.aspx a good description how to package an ActiveX Control], including a link to the CABSDK download page.&lt;br /&gt;
* The .cab-file is a special form of a .zip file, consisting of:&lt;br /&gt;
** axvlc.inf - The INF file, which would be called manifest in the modern age&lt;br /&gt;
** axvlc.dll - ActiveX DLL which bootstraps the VLC setup file&lt;br /&gt;
** vlc-0.8.6c-win32.exe - VLC setup file (refer to your version)&lt;br /&gt;
&lt;br /&gt;
I am using the following code in the INF file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
; Version number and signature of INF file.&lt;br /&gt;
;&lt;br /&gt;
[version]&lt;br /&gt;
signature=&amp;quot;$CHICAGO$&amp;quot;&lt;br /&gt;
AdvancedINF=2.0&lt;br /&gt;
&lt;br /&gt;
[Add.Code]&lt;br /&gt;
vlc-0.8.6c-win32.exe&lt;br /&gt;
axvlc.dll=axvlc.dll&lt;br /&gt;
&lt;br /&gt;
[axvlc.dll]&lt;br /&gt;
FileVersion=0,8,6,0&lt;br /&gt;
clsid={9BE31822-FDAD-461B-AD51-BE1D1C159921}&lt;br /&gt;
RegisterServer=no&lt;br /&gt;
hook=nsiinstaller&lt;br /&gt;
&lt;br /&gt;
[vlc-0.8.6c-win32.exe]&lt;br /&gt;
FileVersion=0,8,6,0&lt;br /&gt;
file-win32-x86=thiscab&lt;br /&gt;
&lt;br /&gt;
[nsiinstaller]&lt;br /&gt;
run=%EXTRACT_DIR%\vlc-0.8.6c-win32.exe&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Again, refer to your version of VLC.&lt;br /&gt;
&lt;br /&gt;
You can extract axvlc.dll from the binary distribution of VLC. This is a zip file on VideoLAN&#039;s download page, version 0.8.6.c [http://downloads.videolan.org/pub/videolan/vlc/0.8.6c/win32/vlc-0.8.6c-win32.zip here].&lt;br /&gt;
&lt;br /&gt;
The VLC setup file is the &amp;quot;featured&amp;quot; download on VideoLAN&#039;s main page; a copy resides in the same directory as axvlc.dll, the VLC setup file of version 0.8.6.c [http://downloads.videolan.org/pub/videolan/vlc/0.8.6c/win32/vlc-0.8.6c-win32.exe here].&lt;br /&gt;
&lt;br /&gt;
With CABSDK installed and the three components in place, you can create the .cab-file using the CABARC tool from Microsoft&#039;s CABSDK, using the following command from a command prompt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;CABARC.EXE N axvlc.cab axvlc.inf axvlc.dll vlc-0.8.6c-win32.exe&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This assumes the [http://en.wikipedia.org/wiki/Path_%28computing%29 PATH] has been set to CABARC.EXE&#039;s directory. If you need to sign the .cab-file, you need to use the -s switch to allocate space for your digital certificate.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[http://trac.videolan.org/vlc/file/trunk/activex/README.TXT Official ReadMe]&lt;br /&gt;
&lt;br /&gt;
[[Category:Embedded]]&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=ActiveX&amp;diff=10286</id>
		<title>ActiveX</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=ActiveX&amp;diff=10286"/>
		<updated>2007-12-03T23:30:07Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: /* Creating an VLC ActiveX Distribution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Windows]] build of VLC includes an (optionaly installed) &#039;&#039;&#039;ActiveX control&#039;&#039;&#039;.  The ActiveX control enables VLC to be embedded in web browsers and third-party applications.  &lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
NOTE TO EDITORS!&lt;br /&gt;
PLEASE LEAVE THE SYNTAX AS VB (6 or 98, not .net or 2005).  IF NEEDED, WE SHOULD CREATE A SEPERATE SECTION FOR EACH LANGUAGE/VARIANT AND LINK TO IT.  &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
The ActiveX control includes the following properties:&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;get or set&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;description&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Length&lt;br /&gt;
|Integer&lt;br /&gt;
|get&lt;br /&gt;
|Returns length of the current clip.&lt;br /&gt;
|-&lt;br /&gt;
|playlistCount&lt;br /&gt;
|&lt;br /&gt;
|get&lt;br /&gt;
|Returns the count of items in the playlist&lt;br /&gt;
|-&lt;br /&gt;
|playlistIndex&lt;br /&gt;
|&lt;br /&gt;
|get&lt;br /&gt;
|Returns the index of the current item in the playlist.  &lt;br /&gt;
|-&lt;br /&gt;
|AutoLoop&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|Determines if the player should automatically loop when it finishes the current playlist.  &lt;br /&gt;
|-&lt;br /&gt;
|AutoPlay&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|Determines if the player should start playing a new file/playlist immediately upon being loaded.  &lt;br /&gt;
|-&lt;br /&gt;
|Volume&lt;br /&gt;
|Integer&lt;br /&gt;
|get/set&lt;br /&gt;
|Current volume (scaled from 0 to 100)&lt;br /&gt;
|-&lt;br /&gt;
|MRL&lt;br /&gt;
|String&lt;br /&gt;
|get/set&lt;br /&gt;
|Presumably returns the MRL of the currently loaded file.&amp;lt;!-- readme says &amp;quot;initial MRL in playlist&amp;quot; --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Time&lt;br /&gt;
|Integer&lt;br /&gt;
|get/set&lt;br /&gt;
|Time elapsed in seconds playing current MRL, 0 for live feed&lt;br /&gt;
|-&lt;br /&gt;
|showdisplay&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|show/hide control viewport&amp;lt;!-- from readme --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Playing&lt;br /&gt;
|Boolean&lt;br /&gt;
|get&lt;br /&gt;
|Returns whether some MRL is playing&amp;lt;!-- from readme --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Position&lt;br /&gt;
|&#039;real&#039;&lt;br /&gt;
|get/set&lt;br /&gt;
|Playback position within current MRL, scaled from 0.0 to 1.0.  Live feed returns 0.0&lt;br /&gt;
|-&lt;br /&gt;
|VersionInfo&lt;br /&gt;
|String&lt;br /&gt;
|get&lt;br /&gt;
|Returns version and build information.&lt;br /&gt;
|}&lt;br /&gt;
Note:  In Visual Basic, type &amp;quot;Long&amp;quot; should be used for properties listed with type &amp;quot;Integer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Methods==&lt;br /&gt;
The ActiveX control includes the following methods (functions):&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;description&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;syntax ([[wikipedia:Visual Basic|VB]])&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|setVariable&lt;br /&gt;
|method&lt;br /&gt;
|Assigns a value to a variable that is defined in libvlc.c&lt;br /&gt;
|controlname.setVariable name as String, value&lt;br /&gt;
|-&lt;br /&gt;
|getVariable&lt;br /&gt;
|method&lt;br /&gt;
|Returns the contents of a variable that is defined in libvlc.c&lt;br /&gt;
|x = controlname.getVariable(name as String)&lt;br /&gt;
|-&lt;br /&gt;
|pause&lt;br /&gt;
|method&lt;br /&gt;
|Pauses the currently playing clip&lt;br /&gt;
|controlname.pause&lt;br /&gt;
|-&lt;br /&gt;
|play&lt;br /&gt;
|method&lt;br /&gt;
|Plays as in the normal player, if a clip is not loaded, does nothing.&lt;br /&gt;
|controlname.play&lt;br /&gt;
|-&lt;br /&gt;
|playFaster&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip play faster.&lt;br /&gt;
|controlname.playFaster&lt;br /&gt;
|-&lt;br /&gt;
|playSlower&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip play slower.&lt;br /&gt;
|controlname.playSlower&lt;br /&gt;
|-&lt;br /&gt;
|stop&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip stop.&lt;br /&gt;
|controlname.stop&lt;br /&gt;
|-&lt;br /&gt;
|shuttle&lt;br /&gt;
|method&lt;br /&gt;
|Moves the playback position a specified number of seconds in either direction.&lt;br /&gt;
|controlname.shuttle(seconds as Long)&lt;br /&gt;
|-&lt;br /&gt;
|playlistClear&lt;br /&gt;
|method&lt;br /&gt;
|Clears the playlist&lt;br /&gt;
|controlname.playlistClear&lt;br /&gt;
|-&lt;br /&gt;
|playlistNext&lt;br /&gt;
|method&lt;br /&gt;
|Goes to next item in the playlist&lt;br /&gt;
|controlname.playlistNext&lt;br /&gt;
|-&lt;br /&gt;
|playlistPrev&lt;br /&gt;
|method&lt;br /&gt;
|Goes to previous item in the playlist&lt;br /&gt;
|controlname.playlistPrev&lt;br /&gt;
|-&lt;br /&gt;
|addTarget&lt;br /&gt;
|method&lt;br /&gt;
|Adds a uri to the current playlist or replaces the current playlist with the uri.  &lt;br /&gt;
|controlname.addTarget(uri as String, options, mode as [[VLCPlaylistMode]], Position as Long)&lt;br /&gt;
|-&lt;br /&gt;
|toggleMute&lt;br /&gt;
|method&lt;br /&gt;
|Toggles between the muted/unmuted state of the embedded player.&lt;br /&gt;
|controlname.toggleMute&lt;br /&gt;
|-&lt;br /&gt;
|fullscreen&lt;br /&gt;
|method&lt;br /&gt;
|Toggles between fullscreen and non-fullscreen modes.&lt;br /&gt;
|controlname.fullscreen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Options==&lt;br /&gt;
The &amp;lt;code&amp;gt;addTarget&amp;lt;/code&amp;gt; method accepts most of the command line options; including, but not limited to, the following :&lt;br /&gt;
*&amp;lt;code&amp;gt;:audio-track=&#039;&#039;index&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;:vout-filter=&#039;&#039;output-filter&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;deinterlace&amp;lt;/code&amp;gt; for example)&lt;br /&gt;
*&amp;lt;code&amp;gt;:deinterlace-mode=&#039;&#039;mode&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;linear&amp;lt;/code&amp;gt; for example)&lt;br /&gt;
&lt;br /&gt;
==Samples==&lt;br /&gt;
*[[ActiveX/Delphi|Delphi Implementation]]&lt;br /&gt;
&lt;br /&gt;
* [[ActiveX/HTML|HTML Implementation]]&lt;br /&gt;
&lt;br /&gt;
==Installing==&lt;br /&gt;
===Introduction===&lt;br /&gt;
&lt;br /&gt;
VideoLAN is not a good source for the installation of VLC through an ActiveX control. At some point, Microsoft Internet Explorer stopped allowing the installation of ActiveX controls unless:&lt;br /&gt;
* they were signed to associate the software vendor&#039;s name with the file containing the ActiveX control, or&lt;br /&gt;
* they resided in an &amp;quot;trusted site&amp;quot;&lt;br /&gt;
The second option is only feasible where both server and client infrastructure are managed under the same umbrella. The first option requires a [http://en.wikipedia.org/wiki/Certificate_authority Certificate Authority] to digitally sign the control. This comes at a cost which the VideoLAN project is not able to bear. The solution is to create one&#039;s own ActiveX control distribution, which in turn can be digitally signed by a Certificate Authority of your choice, if necessary.&lt;br /&gt;
&lt;br /&gt;
===Creating an VLC ActiveX Distribution===&lt;br /&gt;
The following requisites are required:&lt;br /&gt;
* CABSDK by Microsoft to create a [http://en.wikipedia.org/wiki/Cabinet_%28file_format%29 Cabinet File] (.cab-file) containing the relevant ActiveX control and VLC files. MSDN has [http://msdn2.microsoft.com/en-us/library/aa751974.aspx a good description how to package an ActiveX Control], including a link to the CABSDK download page.&lt;br /&gt;
* The .cab-file contents, consisting of:&lt;br /&gt;
** axvlc.inf - The INF file, which would be called manifest in the modern age&lt;br /&gt;
** axvlc.dll - ActiveX DLL which bootstraps the VLC setup file&lt;br /&gt;
** vlc-0.8.6c-win32.exe - VLC setup file (refer to your version)&lt;br /&gt;
&lt;br /&gt;
I am using the following code in the INF file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
; Version number and signature of INF file.&lt;br /&gt;
;&lt;br /&gt;
[version]&lt;br /&gt;
signature=&amp;quot;$CHICAGO$&amp;quot;&lt;br /&gt;
AdvancedINF=2.0&lt;br /&gt;
&lt;br /&gt;
[Add.Code]&lt;br /&gt;
vlc-0.8.6c-win32.exe&lt;br /&gt;
axvlc.dll=axvlc.dll&lt;br /&gt;
&lt;br /&gt;
[axvlc.dll]&lt;br /&gt;
FileVersion=0,8,6,0&lt;br /&gt;
clsid={9BE31822-FDAD-461B-AD51-BE1D1C159921}&lt;br /&gt;
RegisterServer=no&lt;br /&gt;
hook=nsiinstaller&lt;br /&gt;
&lt;br /&gt;
[vlc-0.8.6c-win32.exe]&lt;br /&gt;
FileVersion=0,8,6,0&lt;br /&gt;
file-win32-x86=thiscab&lt;br /&gt;
&lt;br /&gt;
[nsiinstaller]&lt;br /&gt;
run=%EXTRACT_DIR%\vlc-0.8.6c-win32.exe&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Again, refer to your version of VLC.&lt;br /&gt;
&lt;br /&gt;
You can extract axvlc.dll from the binary distribution of VLC. This is a zip file on VideoLAN&#039;s download page, version 0.8.6.c [http://downloads.videolan.org/pub/videolan/vlc/0.8.6c/win32/vlc-0.8.6c-win32.zip here].&lt;br /&gt;
&lt;br /&gt;
The setup file is the &amp;quot;featured&amp;quot; download on VideoLAN&#039;s main pagel; a copy resides in the same directory as axvlc.dll, version 0.8.6.c http://downloads.videolan.org/pub/videolan/vlc/0.8.6c/win32/vlc-0.8.6c-win32.exe here].&lt;br /&gt;
&lt;br /&gt;
With these three components in place, you can create the .cab-file using the CABARC tool from Microsoft&#039;s CABSDK, using the following command from a command prompt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;CABARC.EXE N axvlc.cab axvlc.inf axvlc.dll vlc-0.8.6c-win32.exe&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This assumes the [http://en.wikipedia.org/wiki/Path_%28computing%29 PATH] has been set to CABARC.EXE&#039;s directory. If you need to sign the .cab-file, you need to use the -s switch to allocate space for your digital certificate.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[http://trac.videolan.org/vlc/file/trunk/activex/README.TXT Official ReadMe]&lt;br /&gt;
&lt;br /&gt;
[[Category:Embedded]]&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=ActiveX&amp;diff=10285</id>
		<title>ActiveX</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=ActiveX&amp;diff=10285"/>
		<updated>2007-12-03T23:29:34Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: /* Creating an VLC ActiveX Distribution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Windows]] build of VLC includes an (optionaly installed) &#039;&#039;&#039;ActiveX control&#039;&#039;&#039;.  The ActiveX control enables VLC to be embedded in web browsers and third-party applications.  &lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
NOTE TO EDITORS!&lt;br /&gt;
PLEASE LEAVE THE SYNTAX AS VB (6 or 98, not .net or 2005).  IF NEEDED, WE SHOULD CREATE A SEPERATE SECTION FOR EACH LANGUAGE/VARIANT AND LINK TO IT.  &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
The ActiveX control includes the following properties:&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;get or set&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;description&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Length&lt;br /&gt;
|Integer&lt;br /&gt;
|get&lt;br /&gt;
|Returns length of the current clip.&lt;br /&gt;
|-&lt;br /&gt;
|playlistCount&lt;br /&gt;
|&lt;br /&gt;
|get&lt;br /&gt;
|Returns the count of items in the playlist&lt;br /&gt;
|-&lt;br /&gt;
|playlistIndex&lt;br /&gt;
|&lt;br /&gt;
|get&lt;br /&gt;
|Returns the index of the current item in the playlist.  &lt;br /&gt;
|-&lt;br /&gt;
|AutoLoop&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|Determines if the player should automatically loop when it finishes the current playlist.  &lt;br /&gt;
|-&lt;br /&gt;
|AutoPlay&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|Determines if the player should start playing a new file/playlist immediately upon being loaded.  &lt;br /&gt;
|-&lt;br /&gt;
|Volume&lt;br /&gt;
|Integer&lt;br /&gt;
|get/set&lt;br /&gt;
|Current volume (scaled from 0 to 100)&lt;br /&gt;
|-&lt;br /&gt;
|MRL&lt;br /&gt;
|String&lt;br /&gt;
|get/set&lt;br /&gt;
|Presumably returns the MRL of the currently loaded file.&amp;lt;!-- readme says &amp;quot;initial MRL in playlist&amp;quot; --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Time&lt;br /&gt;
|Integer&lt;br /&gt;
|get/set&lt;br /&gt;
|Time elapsed in seconds playing current MRL, 0 for live feed&lt;br /&gt;
|-&lt;br /&gt;
|showdisplay&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|show/hide control viewport&amp;lt;!-- from readme --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Playing&lt;br /&gt;
|Boolean&lt;br /&gt;
|get&lt;br /&gt;
|Returns whether some MRL is playing&amp;lt;!-- from readme --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Position&lt;br /&gt;
|&#039;real&#039;&lt;br /&gt;
|get/set&lt;br /&gt;
|Playback position within current MRL, scaled from 0.0 to 1.0.  Live feed returns 0.0&lt;br /&gt;
|-&lt;br /&gt;
|VersionInfo&lt;br /&gt;
|String&lt;br /&gt;
|get&lt;br /&gt;
|Returns version and build information.&lt;br /&gt;
|}&lt;br /&gt;
Note:  In Visual Basic, type &amp;quot;Long&amp;quot; should be used for properties listed with type &amp;quot;Integer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Methods==&lt;br /&gt;
The ActiveX control includes the following methods (functions):&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;description&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;syntax ([[wikipedia:Visual Basic|VB]])&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|setVariable&lt;br /&gt;
|method&lt;br /&gt;
|Assigns a value to a variable that is defined in libvlc.c&lt;br /&gt;
|controlname.setVariable name as String, value&lt;br /&gt;
|-&lt;br /&gt;
|getVariable&lt;br /&gt;
|method&lt;br /&gt;
|Returns the contents of a variable that is defined in libvlc.c&lt;br /&gt;
|x = controlname.getVariable(name as String)&lt;br /&gt;
|-&lt;br /&gt;
|pause&lt;br /&gt;
|method&lt;br /&gt;
|Pauses the currently playing clip&lt;br /&gt;
|controlname.pause&lt;br /&gt;
|-&lt;br /&gt;
|play&lt;br /&gt;
|method&lt;br /&gt;
|Plays as in the normal player, if a clip is not loaded, does nothing.&lt;br /&gt;
|controlname.play&lt;br /&gt;
|-&lt;br /&gt;
|playFaster&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip play faster.&lt;br /&gt;
|controlname.playFaster&lt;br /&gt;
|-&lt;br /&gt;
|playSlower&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip play slower.&lt;br /&gt;
|controlname.playSlower&lt;br /&gt;
|-&lt;br /&gt;
|stop&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip stop.&lt;br /&gt;
|controlname.stop&lt;br /&gt;
|-&lt;br /&gt;
|shuttle&lt;br /&gt;
|method&lt;br /&gt;
|Moves the playback position a specified number of seconds in either direction.&lt;br /&gt;
|controlname.shuttle(seconds as Long)&lt;br /&gt;
|-&lt;br /&gt;
|playlistClear&lt;br /&gt;
|method&lt;br /&gt;
|Clears the playlist&lt;br /&gt;
|controlname.playlistClear&lt;br /&gt;
|-&lt;br /&gt;
|playlistNext&lt;br /&gt;
|method&lt;br /&gt;
|Goes to next item in the playlist&lt;br /&gt;
|controlname.playlistNext&lt;br /&gt;
|-&lt;br /&gt;
|playlistPrev&lt;br /&gt;
|method&lt;br /&gt;
|Goes to previous item in the playlist&lt;br /&gt;
|controlname.playlistPrev&lt;br /&gt;
|-&lt;br /&gt;
|addTarget&lt;br /&gt;
|method&lt;br /&gt;
|Adds a uri to the current playlist or replaces the current playlist with the uri.  &lt;br /&gt;
|controlname.addTarget(uri as String, options, mode as [[VLCPlaylistMode]], Position as Long)&lt;br /&gt;
|-&lt;br /&gt;
|toggleMute&lt;br /&gt;
|method&lt;br /&gt;
|Toggles between the muted/unmuted state of the embedded player.&lt;br /&gt;
|controlname.toggleMute&lt;br /&gt;
|-&lt;br /&gt;
|fullscreen&lt;br /&gt;
|method&lt;br /&gt;
|Toggles between fullscreen and non-fullscreen modes.&lt;br /&gt;
|controlname.fullscreen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Options==&lt;br /&gt;
The &amp;lt;code&amp;gt;addTarget&amp;lt;/code&amp;gt; method accepts most of the command line options; including, but not limited to, the following :&lt;br /&gt;
*&amp;lt;code&amp;gt;:audio-track=&#039;&#039;index&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;:vout-filter=&#039;&#039;output-filter&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;deinterlace&amp;lt;/code&amp;gt; for example)&lt;br /&gt;
*&amp;lt;code&amp;gt;:deinterlace-mode=&#039;&#039;mode&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;linear&amp;lt;/code&amp;gt; for example)&lt;br /&gt;
&lt;br /&gt;
==Samples==&lt;br /&gt;
*[[ActiveX/Delphi|Delphi Implementation]]&lt;br /&gt;
&lt;br /&gt;
* [[ActiveX/HTML|HTML Implementation]]&lt;br /&gt;
&lt;br /&gt;
==Installing==&lt;br /&gt;
===Introduction===&lt;br /&gt;
&lt;br /&gt;
VideoLAN is not a good source for the installation of VLC through an ActiveX control. At some point, Microsoft Internet Explorer stopped allowing the installation of ActiveX controls unless:&lt;br /&gt;
* they were signed to associate the software vendor&#039;s name with the file containing the ActiveX control, or&lt;br /&gt;
* they resided in an &amp;quot;trusted site&amp;quot;&lt;br /&gt;
The second option is only feasible where both server and client infrastructure are managed under the same umbrella. The first option requires a [http://en.wikipedia.org/wiki/Certificate_authority Certificate Authority] to digitally sign the control. This comes at a cost which the VideoLAN project is not able to bear. The solution is to create one&#039;s own ActiveX control distribution, which in turn can be digitally signed by a Certificate Authority of your choice, if necessary.&lt;br /&gt;
&lt;br /&gt;
===Creating an VLC ActiveX Distribution===&lt;br /&gt;
The following requisites are required:&lt;br /&gt;
* CABSDK by Microsoft to create a [http://en.wikipedia.org/wiki/Cabinet_%28file_format%29 Cabinet File] (.cab-file) containing the relevant VLC files. MSDN has [http://msdn2.microsoft.com/en-us/library/aa751974.aspx a good description how to package an ActiveX Control], including a link to the CABSDK download page.&lt;br /&gt;
* The .cab-file contents, consisting of:&lt;br /&gt;
** axvlc.inf - The INF file, which would be called manifest in the modern age&lt;br /&gt;
** axvlc.dll - ActiveX DLL which bootstraps the VLC setup file&lt;br /&gt;
** vlc-0.8.6c-win32.exe - VLC setup file (refer to your version)&lt;br /&gt;
&lt;br /&gt;
I am using the following code in the INF file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
; Version number and signature of INF file.&lt;br /&gt;
;&lt;br /&gt;
[version]&lt;br /&gt;
signature=&amp;quot;$CHICAGO$&amp;quot;&lt;br /&gt;
AdvancedINF=2.0&lt;br /&gt;
&lt;br /&gt;
[Add.Code]&lt;br /&gt;
vlc-0.8.6c-win32.exe&lt;br /&gt;
axvlc.dll=axvlc.dll&lt;br /&gt;
&lt;br /&gt;
[axvlc.dll]&lt;br /&gt;
FileVersion=0,8,6,0&lt;br /&gt;
clsid={9BE31822-FDAD-461B-AD51-BE1D1C159921}&lt;br /&gt;
RegisterServer=no&lt;br /&gt;
hook=nsiinstaller&lt;br /&gt;
&lt;br /&gt;
[vlc-0.8.6c-win32.exe]&lt;br /&gt;
FileVersion=0,8,6,0&lt;br /&gt;
file-win32-x86=thiscab&lt;br /&gt;
&lt;br /&gt;
[nsiinstaller]&lt;br /&gt;
run=%EXTRACT_DIR%\vlc-0.8.6c-win32.exe&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Again, refer to your version of VLC.&lt;br /&gt;
&lt;br /&gt;
You can extract axvlc.dll from the binary distribution of VLC. This is a zip file on VideoLAN&#039;s download page, version 0.8.6.c [http://downloads.videolan.org/pub/videolan/vlc/0.8.6c/win32/vlc-0.8.6c-win32.zip here].&lt;br /&gt;
&lt;br /&gt;
The setup file is the &amp;quot;featured&amp;quot; download on VideoLAN&#039;s main pagel; a copy resides in the same directory as axvlc.dll, version 0.8.6.c http://downloads.videolan.org/pub/videolan/vlc/0.8.6c/win32/vlc-0.8.6c-win32.exe here].&lt;br /&gt;
&lt;br /&gt;
With these three components in place, you can create the .cab-file using the CABARC tool from Microsoft&#039;s CABSDK, using the following command from a command prompt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;CABARC.EXE N axvlc.cab axvlc.inf axvlc.dll vlc-0.8.6c-win32.exe&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This assumes the [http://en.wikipedia.org/wiki/Path_%28computing%29 PATH] has been set to CABARC.EXE&#039;s directory. If you need to sign the .cab-file, you need to use the -s switch to allocate space for your digital certificate.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[http://trac.videolan.org/vlc/file/trunk/activex/README.TXT Official ReadMe]&lt;br /&gt;
&lt;br /&gt;
[[Category:Embedded]]&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=ActiveX&amp;diff=10284</id>
		<title>ActiveX</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=ActiveX&amp;diff=10284"/>
		<updated>2007-12-03T23:28:28Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Windows]] build of VLC includes an (optionaly installed) &#039;&#039;&#039;ActiveX control&#039;&#039;&#039;.  The ActiveX control enables VLC to be embedded in web browsers and third-party applications.  &lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
NOTE TO EDITORS!&lt;br /&gt;
PLEASE LEAVE THE SYNTAX AS VB (6 or 98, not .net or 2005).  IF NEEDED, WE SHOULD CREATE A SEPERATE SECTION FOR EACH LANGUAGE/VARIANT AND LINK TO IT.  &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
The ActiveX control includes the following properties:&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;get or set&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;description&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Length&lt;br /&gt;
|Integer&lt;br /&gt;
|get&lt;br /&gt;
|Returns length of the current clip.&lt;br /&gt;
|-&lt;br /&gt;
|playlistCount&lt;br /&gt;
|&lt;br /&gt;
|get&lt;br /&gt;
|Returns the count of items in the playlist&lt;br /&gt;
|-&lt;br /&gt;
|playlistIndex&lt;br /&gt;
|&lt;br /&gt;
|get&lt;br /&gt;
|Returns the index of the current item in the playlist.  &lt;br /&gt;
|-&lt;br /&gt;
|AutoLoop&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|Determines if the player should automatically loop when it finishes the current playlist.  &lt;br /&gt;
|-&lt;br /&gt;
|AutoPlay&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|Determines if the player should start playing a new file/playlist immediately upon being loaded.  &lt;br /&gt;
|-&lt;br /&gt;
|Volume&lt;br /&gt;
|Integer&lt;br /&gt;
|get/set&lt;br /&gt;
|Current volume (scaled from 0 to 100)&lt;br /&gt;
|-&lt;br /&gt;
|MRL&lt;br /&gt;
|String&lt;br /&gt;
|get/set&lt;br /&gt;
|Presumably returns the MRL of the currently loaded file.&amp;lt;!-- readme says &amp;quot;initial MRL in playlist&amp;quot; --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Time&lt;br /&gt;
|Integer&lt;br /&gt;
|get/set&lt;br /&gt;
|Time elapsed in seconds playing current MRL, 0 for live feed&lt;br /&gt;
|-&lt;br /&gt;
|showdisplay&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|show/hide control viewport&amp;lt;!-- from readme --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Playing&lt;br /&gt;
|Boolean&lt;br /&gt;
|get&lt;br /&gt;
|Returns whether some MRL is playing&amp;lt;!-- from readme --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Position&lt;br /&gt;
|&#039;real&#039;&lt;br /&gt;
|get/set&lt;br /&gt;
|Playback position within current MRL, scaled from 0.0 to 1.0.  Live feed returns 0.0&lt;br /&gt;
|-&lt;br /&gt;
|VersionInfo&lt;br /&gt;
|String&lt;br /&gt;
|get&lt;br /&gt;
|Returns version and build information.&lt;br /&gt;
|}&lt;br /&gt;
Note:  In Visual Basic, type &amp;quot;Long&amp;quot; should be used for properties listed with type &amp;quot;Integer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Methods==&lt;br /&gt;
The ActiveX control includes the following methods (functions):&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;description&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;syntax ([[wikipedia:Visual Basic|VB]])&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|setVariable&lt;br /&gt;
|method&lt;br /&gt;
|Assigns a value to a variable that is defined in libvlc.c&lt;br /&gt;
|controlname.setVariable name as String, value&lt;br /&gt;
|-&lt;br /&gt;
|getVariable&lt;br /&gt;
|method&lt;br /&gt;
|Returns the contents of a variable that is defined in libvlc.c&lt;br /&gt;
|x = controlname.getVariable(name as String)&lt;br /&gt;
|-&lt;br /&gt;
|pause&lt;br /&gt;
|method&lt;br /&gt;
|Pauses the currently playing clip&lt;br /&gt;
|controlname.pause&lt;br /&gt;
|-&lt;br /&gt;
|play&lt;br /&gt;
|method&lt;br /&gt;
|Plays as in the normal player, if a clip is not loaded, does nothing.&lt;br /&gt;
|controlname.play&lt;br /&gt;
|-&lt;br /&gt;
|playFaster&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip play faster.&lt;br /&gt;
|controlname.playFaster&lt;br /&gt;
|-&lt;br /&gt;
|playSlower&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip play slower.&lt;br /&gt;
|controlname.playSlower&lt;br /&gt;
|-&lt;br /&gt;
|stop&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip stop.&lt;br /&gt;
|controlname.stop&lt;br /&gt;
|-&lt;br /&gt;
|shuttle&lt;br /&gt;
|method&lt;br /&gt;
|Moves the playback position a specified number of seconds in either direction.&lt;br /&gt;
|controlname.shuttle(seconds as Long)&lt;br /&gt;
|-&lt;br /&gt;
|playlistClear&lt;br /&gt;
|method&lt;br /&gt;
|Clears the playlist&lt;br /&gt;
|controlname.playlistClear&lt;br /&gt;
|-&lt;br /&gt;
|playlistNext&lt;br /&gt;
|method&lt;br /&gt;
|Goes to next item in the playlist&lt;br /&gt;
|controlname.playlistNext&lt;br /&gt;
|-&lt;br /&gt;
|playlistPrev&lt;br /&gt;
|method&lt;br /&gt;
|Goes to previous item in the playlist&lt;br /&gt;
|controlname.playlistPrev&lt;br /&gt;
|-&lt;br /&gt;
|addTarget&lt;br /&gt;
|method&lt;br /&gt;
|Adds a uri to the current playlist or replaces the current playlist with the uri.  &lt;br /&gt;
|controlname.addTarget(uri as String, options, mode as [[VLCPlaylistMode]], Position as Long)&lt;br /&gt;
|-&lt;br /&gt;
|toggleMute&lt;br /&gt;
|method&lt;br /&gt;
|Toggles between the muted/unmuted state of the embedded player.&lt;br /&gt;
|controlname.toggleMute&lt;br /&gt;
|-&lt;br /&gt;
|fullscreen&lt;br /&gt;
|method&lt;br /&gt;
|Toggles between fullscreen and non-fullscreen modes.&lt;br /&gt;
|controlname.fullscreen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Options==&lt;br /&gt;
The &amp;lt;code&amp;gt;addTarget&amp;lt;/code&amp;gt; method accepts most of the command line options; including, but not limited to, the following :&lt;br /&gt;
*&amp;lt;code&amp;gt;:audio-track=&#039;&#039;index&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;:vout-filter=&#039;&#039;output-filter&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;deinterlace&amp;lt;/code&amp;gt; for example)&lt;br /&gt;
*&amp;lt;code&amp;gt;:deinterlace-mode=&#039;&#039;mode&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;linear&amp;lt;/code&amp;gt; for example)&lt;br /&gt;
&lt;br /&gt;
==Samples==&lt;br /&gt;
*[[ActiveX/Delphi|Delphi Implementation]]&lt;br /&gt;
&lt;br /&gt;
* [[ActiveX/HTML|HTML Implementation]]&lt;br /&gt;
&lt;br /&gt;
==Installing==&lt;br /&gt;
===Introduction===&lt;br /&gt;
&lt;br /&gt;
VideoLAN is not a good source for the installation of VLC through an ActiveX control. At some point, Microsoft Internet Explorer stopped allowing the installation of ActiveX controls unless:&lt;br /&gt;
* they were signed to associate the software vendor&#039;s name with the file containing the ActiveX control, or&lt;br /&gt;
* they resided in an &amp;quot;trusted site&amp;quot;&lt;br /&gt;
The second option is only feasible where both server and client infrastructure are managed under the same umbrella. The first option requires a [http://en.wikipedia.org/wiki/Certificate_authority Certificate Authority] to digitally sign the control. This comes at a cost which the VideoLAN project is not able to bear. The solution is to create one&#039;s own ActiveX control distribution, which in turn can be digitally signed by a Certificate Authority of your choice, if necessary.&lt;br /&gt;
&lt;br /&gt;
===Creating an VLC ActiveX Distribution===&lt;br /&gt;
The following requisites are required:&lt;br /&gt;
* CABSDK by Microsoft to create a [http://en.wikipedia.org/wiki/Cabinet_%28file_format%29 Cabinet File] (.cab-file) containing the relevant VLC files. MSDN has a good description how to package an ActiveX Control including a link to the CABSDK download page [http://msdn2.microsoft.com/en-us/library/aa751974.aspx here]&lt;br /&gt;
* The .cab-file contents, consisting of:&lt;br /&gt;
** axvlc.inf - The INF file, which would be called manifest in the modern age&lt;br /&gt;
** axvlc.dll - ActiveX DLL which bootstraps the VLC setup file&lt;br /&gt;
** vlc-0.8.6c-win32.exe - VLC setup file (refer to your version)&lt;br /&gt;
&lt;br /&gt;
I am using the following code in the INF file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
; Version number and signature of INF file.&lt;br /&gt;
;&lt;br /&gt;
[version]&lt;br /&gt;
signature=&amp;quot;$CHICAGO$&amp;quot;&lt;br /&gt;
AdvancedINF=2.0&lt;br /&gt;
&lt;br /&gt;
[Add.Code]&lt;br /&gt;
vlc-0.8.6c-win32.exe&lt;br /&gt;
axvlc.dll=axvlc.dll&lt;br /&gt;
&lt;br /&gt;
[axvlc.dll]&lt;br /&gt;
FileVersion=0,8,6,0&lt;br /&gt;
clsid={9BE31822-FDAD-461B-AD51-BE1D1C159921}&lt;br /&gt;
RegisterServer=no&lt;br /&gt;
hook=nsiinstaller&lt;br /&gt;
&lt;br /&gt;
[vlc-0.8.6c-win32.exe]&lt;br /&gt;
FileVersion=0,8,6,0&lt;br /&gt;
file-win32-x86=thiscab&lt;br /&gt;
&lt;br /&gt;
[nsiinstaller]&lt;br /&gt;
run=%EXTRACT_DIR%\vlc-0.8.6c-win32.exe&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Again, refer to your version of VLC.&lt;br /&gt;
&lt;br /&gt;
You can extract axvlc.dll from the binary distribution of VLC. This is a zip file on VideoLAN&#039;s download page, version 0.8.6.c [http://downloads.videolan.org/pub/videolan/vlc/0.8.6c/win32/vlc-0.8.6c-win32.zip here].&lt;br /&gt;
&lt;br /&gt;
The setup file is the &amp;quot;featured&amp;quot; download on VideoLAN&#039;s main pagel; a copy resides in the same directory as axvlc.dll, version 0.8.6.c http://downloads.videolan.org/pub/videolan/vlc/0.8.6c/win32/vlc-0.8.6c-win32.exe here].&lt;br /&gt;
&lt;br /&gt;
With these three components in place, you can create the .cab-file using the CABARC tool from Microsoft&#039;s CABSDK, using the following command from a command prompt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;CABARC.EXE N axvlc.cab axvlc.inf axvlc.dll vlc-0.8.6c-win32.exe&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This assumes the [http://en.wikipedia.org/wiki/Path_%28computing%29 PATH] has been set to CABARC.EXE&#039;s directory. If you need to sign the .cab-file, you need to use the -s switch to allocate space for your digital certificate.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[http://trac.videolan.org/vlc/file/trunk/activex/README.TXT Official ReadMe]&lt;br /&gt;
&lt;br /&gt;
[[Category:Embedded]]&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=ActiveX&amp;diff=10283</id>
		<title>ActiveX</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=ActiveX&amp;diff=10283"/>
		<updated>2007-12-03T23:27:41Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Windows]] build of VLC includes an (optionaly installed) &#039;&#039;&#039;ActiveX control&#039;&#039;&#039;.  The ActiveX control enables VLC to be embedded in web browsers and third-party applications.  &lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
NOTE TO EDITORS!&lt;br /&gt;
PLEASE LEAVE THE SYNTAX AS VB (6 or 98, not .net or 2005).  IF NEEDED, WE SHOULD CREATE A SEPERATE SECTION FOR EACH LANGUAGE/VARIANT AND LINK TO IT.  &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
The ActiveX control includes the following properties:&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;get or set&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;description&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Length&lt;br /&gt;
|Integer&lt;br /&gt;
|get&lt;br /&gt;
|Returns length of the current clip.&lt;br /&gt;
|-&lt;br /&gt;
|playlistCount&lt;br /&gt;
|&lt;br /&gt;
|get&lt;br /&gt;
|Returns the count of items in the playlist&lt;br /&gt;
|-&lt;br /&gt;
|playlistIndex&lt;br /&gt;
|&lt;br /&gt;
|get&lt;br /&gt;
|Returns the index of the current item in the playlist.  &lt;br /&gt;
|-&lt;br /&gt;
|AutoLoop&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|Determines if the player should automatically loop when it finishes the current playlist.  &lt;br /&gt;
|-&lt;br /&gt;
|AutoPlay&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|Determines if the player should start playing a new file/playlist immediately upon being loaded.  &lt;br /&gt;
|-&lt;br /&gt;
|Volume&lt;br /&gt;
|Integer&lt;br /&gt;
|get/set&lt;br /&gt;
|Current volume (scaled from 0 to 100)&lt;br /&gt;
|-&lt;br /&gt;
|MRL&lt;br /&gt;
|String&lt;br /&gt;
|get/set&lt;br /&gt;
|Presumably returns the MRL of the currently loaded file.&amp;lt;!-- readme says &amp;quot;initial MRL in playlist&amp;quot; --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Time&lt;br /&gt;
|Integer&lt;br /&gt;
|get/set&lt;br /&gt;
|Time elapsed in seconds playing current MRL, 0 for live feed&lt;br /&gt;
|-&lt;br /&gt;
|showdisplay&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|show/hide control viewport&amp;lt;!-- from readme --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Playing&lt;br /&gt;
|Boolean&lt;br /&gt;
|get&lt;br /&gt;
|Returns whether some MRL is playing&amp;lt;!-- from readme --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Position&lt;br /&gt;
|&#039;real&#039;&lt;br /&gt;
|get/set&lt;br /&gt;
|Playback position within current MRL, scaled from 0.0 to 1.0.  Live feed returns 0.0&lt;br /&gt;
|-&lt;br /&gt;
|VersionInfo&lt;br /&gt;
|String&lt;br /&gt;
|get&lt;br /&gt;
|Returns version and build information.&lt;br /&gt;
|}&lt;br /&gt;
Note:  In Visual Basic, type &amp;quot;Long&amp;quot; should be used for properties listed with type &amp;quot;Integer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Methods==&lt;br /&gt;
The ActiveX control includes the following methods (functions):&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;description&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;syntax ([[wikipedia:Visual Basic|VB]])&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|setVariable&lt;br /&gt;
|method&lt;br /&gt;
|Assigns a value to a variable that is defined in libvlc.c&lt;br /&gt;
|controlname.setVariable name as String, value&lt;br /&gt;
|-&lt;br /&gt;
|getVariable&lt;br /&gt;
|method&lt;br /&gt;
|Returns the contents of a variable that is defined in libvlc.c&lt;br /&gt;
|x = controlname.getVariable(name as String)&lt;br /&gt;
|-&lt;br /&gt;
|pause&lt;br /&gt;
|method&lt;br /&gt;
|Pauses the currently playing clip&lt;br /&gt;
|controlname.pause&lt;br /&gt;
|-&lt;br /&gt;
|play&lt;br /&gt;
|method&lt;br /&gt;
|Plays as in the normal player, if a clip is not loaded, does nothing.&lt;br /&gt;
|controlname.play&lt;br /&gt;
|-&lt;br /&gt;
|playFaster&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip play faster.&lt;br /&gt;
|controlname.playFaster&lt;br /&gt;
|-&lt;br /&gt;
|playSlower&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip play slower.&lt;br /&gt;
|controlname.playSlower&lt;br /&gt;
|-&lt;br /&gt;
|stop&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip stop.&lt;br /&gt;
|controlname.stop&lt;br /&gt;
|-&lt;br /&gt;
|shuttle&lt;br /&gt;
|method&lt;br /&gt;
|Moves the playback position a specified number of seconds in either direction.&lt;br /&gt;
|controlname.shuttle(seconds as Long)&lt;br /&gt;
|-&lt;br /&gt;
|playlistClear&lt;br /&gt;
|method&lt;br /&gt;
|Clears the playlist&lt;br /&gt;
|controlname.playlistClear&lt;br /&gt;
|-&lt;br /&gt;
|playlistNext&lt;br /&gt;
|method&lt;br /&gt;
|Goes to next item in the playlist&lt;br /&gt;
|controlname.playlistNext&lt;br /&gt;
|-&lt;br /&gt;
|playlistPrev&lt;br /&gt;
|method&lt;br /&gt;
|Goes to previous item in the playlist&lt;br /&gt;
|controlname.playlistPrev&lt;br /&gt;
|-&lt;br /&gt;
|addTarget&lt;br /&gt;
|method&lt;br /&gt;
|Adds a uri to the current playlist or replaces the current playlist with the uri.  &lt;br /&gt;
|controlname.addTarget(uri as String, options, mode as [[VLCPlaylistMode]], Position as Long)&lt;br /&gt;
|-&lt;br /&gt;
|toggleMute&lt;br /&gt;
|method&lt;br /&gt;
|Toggles between the muted/unmuted state of the embedded player.&lt;br /&gt;
|controlname.toggleMute&lt;br /&gt;
|-&lt;br /&gt;
|fullscreen&lt;br /&gt;
|method&lt;br /&gt;
|Toggles between fullscreen and non-fullscreen modes.&lt;br /&gt;
|controlname.fullscreen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Options==&lt;br /&gt;
The &amp;lt;code&amp;gt;addTarget&amp;lt;/code&amp;gt; method accepts most of the command line options; including, but not limited to, the following :&lt;br /&gt;
*&amp;lt;code&amp;gt;:audio-track=&#039;&#039;index&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;:vout-filter=&#039;&#039;output-filter&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;deinterlace&amp;lt;/code&amp;gt; for example)&lt;br /&gt;
*&amp;lt;code&amp;gt;:deinterlace-mode=&#039;&#039;mode&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;linear&amp;lt;/code&amp;gt; for example)&lt;br /&gt;
&lt;br /&gt;
==Samples==&lt;br /&gt;
*[[ActiveX/Delphi|Delphi Implementation]]&lt;br /&gt;
&lt;br /&gt;
* [[ActiveX/HTML|HTML Implementation]]&lt;br /&gt;
&lt;br /&gt;
==Installing==&lt;br /&gt;
===Introduction===&lt;br /&gt;
&lt;br /&gt;
VideoLAN is not a good source for the installation of VLC through an ActiveX control. At some point, Microsoft Internet Explorer stopped allowing the installation of ActiveX controls unless:&lt;br /&gt;
* they were signed to associate the software vendor&#039;s name with the file containing the ActiveX control, or&lt;br /&gt;
* they resided in an &amp;quot;trusted site&amp;quot;&lt;br /&gt;
The second option is only feasible where both server and client infrastructure are managed under the same umbrella. The first option requires a [http://en.wikipedia.org/wiki/Certificate_authority Certificate Authority] to sign the control. This comes at a cost which the VideoLAN project is not able to bear. The solution is to create one&#039;s own ActiveX control distribution, which in turn can be digitally signed by a Certificate Authority of your choice, if necessary.&lt;br /&gt;
&lt;br /&gt;
===Creating an VLC ActiveX Distribution===&lt;br /&gt;
The following requisites are required:&lt;br /&gt;
* CABSDK by Microsoft to create a [http://en.wikipedia.org/wiki/Cabinet_%28file_format%29 Cabinet File] (.cab-file) containing the relevant VLC files. MSDN has a good description how to package an ActiveX Control including a link to the CABSDK download page [http://msdn2.microsoft.com/en-us/library/aa751974.aspx here]&lt;br /&gt;
* The .cab-file contents, consisting of:&lt;br /&gt;
** axvlc.inf - The INF file, which would be called manifest in the modern age&lt;br /&gt;
** axvlc.dll - ActiveX DLL which bootstraps the VLC setup file&lt;br /&gt;
** vlc-0.8.6c-win32.exe - VLC setup file (refer to your version)&lt;br /&gt;
&lt;br /&gt;
I am using the following code in the INF file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
; Version number and signature of INF file.&lt;br /&gt;
;&lt;br /&gt;
[version]&lt;br /&gt;
signature=&amp;quot;$CHICAGO$&amp;quot;&lt;br /&gt;
AdvancedINF=2.0&lt;br /&gt;
&lt;br /&gt;
[Add.Code]&lt;br /&gt;
vlc-0.8.6c-win32.exe&lt;br /&gt;
axvlc.dll=axvlc.dll&lt;br /&gt;
&lt;br /&gt;
[axvlc.dll]&lt;br /&gt;
FileVersion=0,8,6,0&lt;br /&gt;
clsid={9BE31822-FDAD-461B-AD51-BE1D1C159921}&lt;br /&gt;
RegisterServer=no&lt;br /&gt;
hook=nsiinstaller&lt;br /&gt;
&lt;br /&gt;
[vlc-0.8.6c-win32.exe]&lt;br /&gt;
FileVersion=0,8,6,0&lt;br /&gt;
file-win32-x86=thiscab&lt;br /&gt;
&lt;br /&gt;
[nsiinstaller]&lt;br /&gt;
run=%EXTRACT_DIR%\vlc-0.8.6c-win32.exe&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Again, refer to your version of VLC.&lt;br /&gt;
&lt;br /&gt;
You can extract axvlc.dll from the binary distribution of VLC. This is a zip file on VideoLAN&#039;s download page, version 0.8.6.c [http://downloads.videolan.org/pub/videolan/vlc/0.8.6c/win32/vlc-0.8.6c-win32.zip here].&lt;br /&gt;
&lt;br /&gt;
The setup file is the &amp;quot;featured&amp;quot; download on VideoLAN&#039;s main pagel; a copy resides in the same directory as axvlc.dll, version 0.8.6.c http://downloads.videolan.org/pub/videolan/vlc/0.8.6c/win32/vlc-0.8.6c-win32.exe here].&lt;br /&gt;
&lt;br /&gt;
With these three components in place, you can create the .cab-file using the CABARC tool from Microsoft&#039;s CABSDK, using the following command from a command prompt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;CABARC.EXE N axvlc.cab axvlc.inf axvlc.dll vlc-0.8.6c-win32.exe&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This assumes the [http://en.wikipedia.org/wiki/Path_%28computing%29 PATH] has been set to CABARC.EXE&#039;s directory. If you need to sign the .cab-file, you need to use the -s switch to allocate space for your digital certificate.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[http://trac.videolan.org/vlc/file/trunk/activex/README.TXT Official ReadMe]&lt;br /&gt;
&lt;br /&gt;
[[Category:Embedded]]&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=ActiveX&amp;diff=10282</id>
		<title>ActiveX</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=ActiveX&amp;diff=10282"/>
		<updated>2007-12-03T23:27:18Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Windows]] build of VLC includes an (optionaly installed) &#039;&#039;&#039;ActiveX control&#039;&#039;&#039;.  The ActiveX control enables VLC to be embedded in web browsers and third-party applications.  &lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
NOTE TO EDITORS!&lt;br /&gt;
PLEASE LEAVE THE SYNTAX AS VB (6 or 98, not .net or 2005).  IF NEEDED, WE SHOULD CREATE A SEPERATE SECTION FOR EACH LANGUAGE/VARIANT AND LINK TO IT.  &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
The ActiveX control includes the following properties:&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;get or set&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;description&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Length&lt;br /&gt;
|Integer&lt;br /&gt;
|get&lt;br /&gt;
|Returns length of the current clip.&lt;br /&gt;
|-&lt;br /&gt;
|playlistCount&lt;br /&gt;
|&lt;br /&gt;
|get&lt;br /&gt;
|Returns the count of items in the playlist&lt;br /&gt;
|-&lt;br /&gt;
|playlistIndex&lt;br /&gt;
|&lt;br /&gt;
|get&lt;br /&gt;
|Returns the index of the current item in the playlist.  &lt;br /&gt;
|-&lt;br /&gt;
|AutoLoop&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|Determines if the player should automatically loop when it finishes the current playlist.  &lt;br /&gt;
|-&lt;br /&gt;
|AutoPlay&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|Determines if the player should start playing a new file/playlist immediately upon being loaded.  &lt;br /&gt;
|-&lt;br /&gt;
|Volume&lt;br /&gt;
|Integer&lt;br /&gt;
|get/set&lt;br /&gt;
|Current volume (scaled from 0 to 100)&lt;br /&gt;
|-&lt;br /&gt;
|MRL&lt;br /&gt;
|String&lt;br /&gt;
|get/set&lt;br /&gt;
|Presumably returns the MRL of the currently loaded file.&amp;lt;!-- readme says &amp;quot;initial MRL in playlist&amp;quot; --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Time&lt;br /&gt;
|Integer&lt;br /&gt;
|get/set&lt;br /&gt;
|Time elapsed in seconds playing current MRL, 0 for live feed&lt;br /&gt;
|-&lt;br /&gt;
|showdisplay&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|show/hide control viewport&amp;lt;!-- from readme --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Playing&lt;br /&gt;
|Boolean&lt;br /&gt;
|get&lt;br /&gt;
|Returns whether some MRL is playing&amp;lt;!-- from readme --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Position&lt;br /&gt;
|&#039;real&#039;&lt;br /&gt;
|get/set&lt;br /&gt;
|Playback position within current MRL, scaled from 0.0 to 1.0.  Live feed returns 0.0&lt;br /&gt;
|-&lt;br /&gt;
|VersionInfo&lt;br /&gt;
|String&lt;br /&gt;
|get&lt;br /&gt;
|Returns version and build information.&lt;br /&gt;
|}&lt;br /&gt;
Note:  In Visual Basic, type &amp;quot;Long&amp;quot; should be used for properties listed with type &amp;quot;Integer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Methods==&lt;br /&gt;
The ActiveX control includes the following methods (functions):&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;description&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;syntax ([[wikipedia:Visual Basic|VB]])&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|setVariable&lt;br /&gt;
|method&lt;br /&gt;
|Assigns a value to a variable that is defined in libvlc.c&lt;br /&gt;
|controlname.setVariable name as String, value&lt;br /&gt;
|-&lt;br /&gt;
|getVariable&lt;br /&gt;
|method&lt;br /&gt;
|Returns the contents of a variable that is defined in libvlc.c&lt;br /&gt;
|x = controlname.getVariable(name as String)&lt;br /&gt;
|-&lt;br /&gt;
|pause&lt;br /&gt;
|method&lt;br /&gt;
|Pauses the currently playing clip&lt;br /&gt;
|controlname.pause&lt;br /&gt;
|-&lt;br /&gt;
|play&lt;br /&gt;
|method&lt;br /&gt;
|Plays as in the normal player, if a clip is not loaded, does nothing.&lt;br /&gt;
|controlname.play&lt;br /&gt;
|-&lt;br /&gt;
|playFaster&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip play faster.&lt;br /&gt;
|controlname.playFaster&lt;br /&gt;
|-&lt;br /&gt;
|playSlower&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip play slower.&lt;br /&gt;
|controlname.playSlower&lt;br /&gt;
|-&lt;br /&gt;
|stop&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip stop.&lt;br /&gt;
|controlname.stop&lt;br /&gt;
|-&lt;br /&gt;
|shuttle&lt;br /&gt;
|method&lt;br /&gt;
|Moves the playback position a specified number of seconds in either direction.&lt;br /&gt;
|controlname.shuttle(seconds as Long)&lt;br /&gt;
|-&lt;br /&gt;
|playlistClear&lt;br /&gt;
|method&lt;br /&gt;
|Clears the playlist&lt;br /&gt;
|controlname.playlistClear&lt;br /&gt;
|-&lt;br /&gt;
|playlistNext&lt;br /&gt;
|method&lt;br /&gt;
|Goes to next item in the playlist&lt;br /&gt;
|controlname.playlistNext&lt;br /&gt;
|-&lt;br /&gt;
|playlistPrev&lt;br /&gt;
|method&lt;br /&gt;
|Goes to previous item in the playlist&lt;br /&gt;
|controlname.playlistPrev&lt;br /&gt;
|-&lt;br /&gt;
|addTarget&lt;br /&gt;
|method&lt;br /&gt;
|Adds a uri to the current playlist or replaces the current playlist with the uri.  &lt;br /&gt;
|controlname.addTarget(uri as String, options, mode as [[VLCPlaylistMode]], Position as Long)&lt;br /&gt;
|-&lt;br /&gt;
|toggleMute&lt;br /&gt;
|method&lt;br /&gt;
|Toggles between the muted/unmuted state of the embedded player.&lt;br /&gt;
|controlname.toggleMute&lt;br /&gt;
|-&lt;br /&gt;
|fullscreen&lt;br /&gt;
|method&lt;br /&gt;
|Toggles between fullscreen and non-fullscreen modes.&lt;br /&gt;
|controlname.fullscreen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Options==&lt;br /&gt;
The &amp;lt;code&amp;gt;addTarget&amp;lt;/code&amp;gt; method accepts most of the command line options; including, but not limited to, the following :&lt;br /&gt;
*&amp;lt;code&amp;gt;:audio-track=&#039;&#039;index&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;:vout-filter=&#039;&#039;output-filter&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;deinterlace&amp;lt;/code&amp;gt; for example)&lt;br /&gt;
*&amp;lt;code&amp;gt;:deinterlace-mode=&#039;&#039;mode&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;linear&amp;lt;/code&amp;gt; for example)&lt;br /&gt;
&lt;br /&gt;
==Samples==&lt;br /&gt;
*[[ActiveX/Delphi|Delphi Implementation]]&lt;br /&gt;
&lt;br /&gt;
* [[ActiveX/HTML|HTML Implementation]]&lt;br /&gt;
&lt;br /&gt;
==Installing==&lt;br /&gt;
===Introduction===&lt;br /&gt;
&lt;br /&gt;
VideoLAN is not a good source for the installation of VLC through an ActiveX control. At some point, Microsoft Internet Explorer stopped allowing the installation of unsigned ActiveX controls unless:&lt;br /&gt;
* they were signed to associate the software vendor&#039;s name with the file containing the ActiveX control, or&lt;br /&gt;
* they resided in an &amp;quot;trusted site&amp;quot;&lt;br /&gt;
The second option is only feasible where both server and client infrastructure are managed under the same umbrella. The first option requires a [http://en.wikipedia.org/wiki/Certificate_authority Certificate Authority] to sign the control. This comes at a cost which the VideoLAN project is not able to bear. The solution is to create one&#039;s own ActiveX control distribution, which in turn can be digitally signed by a Certificate Authority of your choice, if necessary.&lt;br /&gt;
&lt;br /&gt;
===Creating an VLC ActiveX Distribution===&lt;br /&gt;
The following requisites are required:&lt;br /&gt;
* CABSDK by Microsoft to create a [http://en.wikipedia.org/wiki/Cabinet_%28file_format%29 Cabinet File] (.cab-file) containing the relevant VLC files. MSDN has a good description how to package an ActiveX Control including a link to the CABSDK download page [http://msdn2.microsoft.com/en-us/library/aa751974.aspx here]&lt;br /&gt;
* The .cab-file contents, consisting of:&lt;br /&gt;
** axvlc.inf - The INF file, which would be called manifest in the modern age&lt;br /&gt;
** axvlc.dll - ActiveX DLL which bootstraps the VLC setup file&lt;br /&gt;
** vlc-0.8.6c-win32.exe - VLC setup file (refer to your version)&lt;br /&gt;
&lt;br /&gt;
I am using the following code in the INF file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
; Version number and signature of INF file.&lt;br /&gt;
;&lt;br /&gt;
[version]&lt;br /&gt;
signature=&amp;quot;$CHICAGO$&amp;quot;&lt;br /&gt;
AdvancedINF=2.0&lt;br /&gt;
&lt;br /&gt;
[Add.Code]&lt;br /&gt;
vlc-0.8.6c-win32.exe&lt;br /&gt;
axvlc.dll=axvlc.dll&lt;br /&gt;
&lt;br /&gt;
[axvlc.dll]&lt;br /&gt;
FileVersion=0,8,6,0&lt;br /&gt;
clsid={9BE31822-FDAD-461B-AD51-BE1D1C159921}&lt;br /&gt;
RegisterServer=no&lt;br /&gt;
hook=nsiinstaller&lt;br /&gt;
&lt;br /&gt;
[vlc-0.8.6c-win32.exe]&lt;br /&gt;
FileVersion=0,8,6,0&lt;br /&gt;
file-win32-x86=thiscab&lt;br /&gt;
&lt;br /&gt;
[nsiinstaller]&lt;br /&gt;
run=%EXTRACT_DIR%\vlc-0.8.6c-win32.exe&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Again, refer to your version of VLC.&lt;br /&gt;
&lt;br /&gt;
You can extract axvlc.dll from the binary distribution of VLC. This is a zip file on VideoLAN&#039;s download page, version 0.8.6.c [http://downloads.videolan.org/pub/videolan/vlc/0.8.6c/win32/vlc-0.8.6c-win32.zip here].&lt;br /&gt;
&lt;br /&gt;
The setup file is the &amp;quot;featured&amp;quot; download on VideoLAN&#039;s main pagel; a copy resides in the same directory as axvlc.dll, version 0.8.6.c http://downloads.videolan.org/pub/videolan/vlc/0.8.6c/win32/vlc-0.8.6c-win32.exe here].&lt;br /&gt;
&lt;br /&gt;
With these three components in place, you can create the .cab-file using the CABARC tool from Microsoft&#039;s CABSDK, using the following command from a command prompt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;CABARC.EXE N axvlc.cab axvlc.inf axvlc.dll vlc-0.8.6c-win32.exe&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This assumes the [http://en.wikipedia.org/wiki/Path_%28computing%29 PATH] has been set to CABARC.EXE&#039;s directory. If you need to sign the .cab-file, you need to use the -s switch to allocate space for your digital certificate.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[http://trac.videolan.org/vlc/file/trunk/activex/README.TXT Official ReadMe]&lt;br /&gt;
&lt;br /&gt;
[[Category:Embedded]]&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=ActiveX&amp;diff=10281</id>
		<title>ActiveX</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=ActiveX&amp;diff=10281"/>
		<updated>2007-12-03T23:26:45Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Windows]] build of VLC includes an (optionaly installed) &#039;&#039;&#039;ActiveX control&#039;&#039;&#039;.  The ActiveX control enables VLC to be embedded in web browsers and third-party applications.  &lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
NOTE TO EDITORS!&lt;br /&gt;
PLEASE LEAVE THE SYNTAX AS VB (6 or 98, not .net or 2005).  IF NEEDED, WE SHOULD CREATE A SEPERATE SECTION FOR EACH LANGUAGE/VARIANT AND LINK TO IT.  &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
The ActiveX control includes the following properties:&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;get or set&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;description&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Length&lt;br /&gt;
|Integer&lt;br /&gt;
|get&lt;br /&gt;
|Returns length of the current clip.&lt;br /&gt;
|-&lt;br /&gt;
|playlistCount&lt;br /&gt;
|&lt;br /&gt;
|get&lt;br /&gt;
|Returns the count of items in the playlist&lt;br /&gt;
|-&lt;br /&gt;
|playlistIndex&lt;br /&gt;
|&lt;br /&gt;
|get&lt;br /&gt;
|Returns the index of the current item in the playlist.  &lt;br /&gt;
|-&lt;br /&gt;
|AutoLoop&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|Determines if the player should automatically loop when it finishes the current playlist.  &lt;br /&gt;
|-&lt;br /&gt;
|AutoPlay&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|Determines if the player should start playing a new file/playlist immediately upon being loaded.  &lt;br /&gt;
|-&lt;br /&gt;
|Volume&lt;br /&gt;
|Integer&lt;br /&gt;
|get/set&lt;br /&gt;
|Current volume (scaled from 0 to 100)&lt;br /&gt;
|-&lt;br /&gt;
|MRL&lt;br /&gt;
|String&lt;br /&gt;
|get/set&lt;br /&gt;
|Presumably returns the MRL of the currently loaded file.&amp;lt;!-- readme says &amp;quot;initial MRL in playlist&amp;quot; --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Time&lt;br /&gt;
|Integer&lt;br /&gt;
|get/set&lt;br /&gt;
|Time elapsed in seconds playing current MRL, 0 for live feed&lt;br /&gt;
|-&lt;br /&gt;
|showdisplay&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|show/hide control viewport&amp;lt;!-- from readme --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Playing&lt;br /&gt;
|Boolean&lt;br /&gt;
|get&lt;br /&gt;
|Returns whether some MRL is playing&amp;lt;!-- from readme --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Position&lt;br /&gt;
|&#039;real&#039;&lt;br /&gt;
|get/set&lt;br /&gt;
|Playback position within current MRL, scaled from 0.0 to 1.0.  Live feed returns 0.0&lt;br /&gt;
|-&lt;br /&gt;
|VersionInfo&lt;br /&gt;
|String&lt;br /&gt;
|get&lt;br /&gt;
|Returns version and build information.&lt;br /&gt;
|}&lt;br /&gt;
Note:  In Visual Basic, type &amp;quot;Long&amp;quot; should be used for properties listed with type &amp;quot;Integer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Methods==&lt;br /&gt;
The ActiveX control includes the following methods (functions):&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;description&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;syntax ([[wikipedia:Visual Basic|VB]])&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|setVariable&lt;br /&gt;
|method&lt;br /&gt;
|Assigns a value to a variable that is defined in libvlc.c&lt;br /&gt;
|controlname.setVariable name as String, value&lt;br /&gt;
|-&lt;br /&gt;
|getVariable&lt;br /&gt;
|method&lt;br /&gt;
|Returns the contents of a variable that is defined in libvlc.c&lt;br /&gt;
|x = controlname.getVariable(name as String)&lt;br /&gt;
|-&lt;br /&gt;
|pause&lt;br /&gt;
|method&lt;br /&gt;
|Pauses the currently playing clip&lt;br /&gt;
|controlname.pause&lt;br /&gt;
|-&lt;br /&gt;
|play&lt;br /&gt;
|method&lt;br /&gt;
|Plays as in the normal player, if a clip is not loaded, does nothing.&lt;br /&gt;
|controlname.play&lt;br /&gt;
|-&lt;br /&gt;
|playFaster&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip play faster.&lt;br /&gt;
|controlname.playFaster&lt;br /&gt;
|-&lt;br /&gt;
|playSlower&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip play slower.&lt;br /&gt;
|controlname.playSlower&lt;br /&gt;
|-&lt;br /&gt;
|stop&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip stop.&lt;br /&gt;
|controlname.stop&lt;br /&gt;
|-&lt;br /&gt;
|shuttle&lt;br /&gt;
|method&lt;br /&gt;
|Moves the playback position a specified number of seconds in either direction.&lt;br /&gt;
|controlname.shuttle(seconds as Long)&lt;br /&gt;
|-&lt;br /&gt;
|playlistClear&lt;br /&gt;
|method&lt;br /&gt;
|Clears the playlist&lt;br /&gt;
|controlname.playlistClear&lt;br /&gt;
|-&lt;br /&gt;
|playlistNext&lt;br /&gt;
|method&lt;br /&gt;
|Goes to next item in the playlist&lt;br /&gt;
|controlname.playlistNext&lt;br /&gt;
|-&lt;br /&gt;
|playlistPrev&lt;br /&gt;
|method&lt;br /&gt;
|Goes to previous item in the playlist&lt;br /&gt;
|controlname.playlistPrev&lt;br /&gt;
|-&lt;br /&gt;
|addTarget&lt;br /&gt;
|method&lt;br /&gt;
|Adds a uri to the current playlist or replaces the current playlist with the uri.  &lt;br /&gt;
|controlname.addTarget(uri as String, options, mode as [[VLCPlaylistMode]], Position as Long)&lt;br /&gt;
|-&lt;br /&gt;
|toggleMute&lt;br /&gt;
|method&lt;br /&gt;
|Toggles between the muted/unmuted state of the embedded player.&lt;br /&gt;
|controlname.toggleMute&lt;br /&gt;
|-&lt;br /&gt;
|fullscreen&lt;br /&gt;
|method&lt;br /&gt;
|Toggles between fullscreen and non-fullscreen modes.&lt;br /&gt;
|controlname.fullscreen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Options==&lt;br /&gt;
The &amp;lt;code&amp;gt;addTarget&amp;lt;/code&amp;gt; method accepts most of the command line options; including, but not limited to, the following :&lt;br /&gt;
*&amp;lt;code&amp;gt;:audio-track=&#039;&#039;index&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;:vout-filter=&#039;&#039;output-filter&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;deinterlace&amp;lt;/code&amp;gt; for example)&lt;br /&gt;
*&amp;lt;code&amp;gt;:deinterlace-mode=&#039;&#039;mode&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;linear&amp;lt;/code&amp;gt; for example)&lt;br /&gt;
&lt;br /&gt;
==Samples==&lt;br /&gt;
*[[ActiveX/Delphi|Delphi Implementation]]&lt;br /&gt;
&lt;br /&gt;
* [[ActiveX/HTML|HTML Implementation]]&lt;br /&gt;
&lt;br /&gt;
==Installing==&lt;br /&gt;
===Introduction===&lt;br /&gt;
&lt;br /&gt;
VideoLAN is not a good source for the installation of an VLC ActiveX control. At some point, Microsoft Internet Explorer stopped allowing the installation of unsigned ActiveX controls unless:&lt;br /&gt;
* they were signed to associate the software vendor&#039;s name with the file containing the ActiveX control, or&lt;br /&gt;
* they resided in an &amp;quot;trusted site&amp;quot;&lt;br /&gt;
The second option is only feasible where both server and client infrastructure are managed under the same umbrella. The first option requires a [http://en.wikipedia.org/wiki/Certificate_authority Certificate Authority] to sign the control. This comes at a cost which the VideoLAN project is not able to bear. The solution is to create one&#039;s own ActiveX control distribution, which in turn can be digitally signed by a Certificate Authority of your choice, if necessary.&lt;br /&gt;
&lt;br /&gt;
===Creating an VLC ActiveX Distribution===&lt;br /&gt;
The following requisites are required:&lt;br /&gt;
* CABSDK by Microsoft to create a [http://en.wikipedia.org/wiki/Cabinet_%28file_format%29 Cabinet File] (.cab-file) containing the relevant VLC files. MSDN has a good description how to package an ActiveX Control including a link to the CABSDK download page [http://msdn2.microsoft.com/en-us/library/aa751974.aspx here]&lt;br /&gt;
* The .cab-file contents, consisting of:&lt;br /&gt;
** axvlc.inf - The INF file, which would be called manifest in the modern age&lt;br /&gt;
** axvlc.dll - ActiveX DLL which bootstraps the VLC setup file&lt;br /&gt;
** vlc-0.8.6c-win32.exe - VLC setup file (refer to your version)&lt;br /&gt;
&lt;br /&gt;
I am using the following code in the INF file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
; Version number and signature of INF file.&lt;br /&gt;
;&lt;br /&gt;
[version]&lt;br /&gt;
signature=&amp;quot;$CHICAGO$&amp;quot;&lt;br /&gt;
AdvancedINF=2.0&lt;br /&gt;
&lt;br /&gt;
[Add.Code]&lt;br /&gt;
vlc-0.8.6c-win32.exe&lt;br /&gt;
axvlc.dll=axvlc.dll&lt;br /&gt;
&lt;br /&gt;
[axvlc.dll]&lt;br /&gt;
FileVersion=0,8,6,0&lt;br /&gt;
clsid={9BE31822-FDAD-461B-AD51-BE1D1C159921}&lt;br /&gt;
RegisterServer=no&lt;br /&gt;
hook=nsiinstaller&lt;br /&gt;
&lt;br /&gt;
[vlc-0.8.6c-win32.exe]&lt;br /&gt;
FileVersion=0,8,6,0&lt;br /&gt;
file-win32-x86=thiscab&lt;br /&gt;
&lt;br /&gt;
[nsiinstaller]&lt;br /&gt;
run=%EXTRACT_DIR%\vlc-0.8.6c-win32.exe&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Again, refer to your version of VLC.&lt;br /&gt;
&lt;br /&gt;
You can extract axvlc.dll from the binary distribution of VLC. This is a zip file on VideoLAN&#039;s download page, version 0.8.6.c [http://downloads.videolan.org/pub/videolan/vlc/0.8.6c/win32/vlc-0.8.6c-win32.zip here].&lt;br /&gt;
&lt;br /&gt;
The setup file is the &amp;quot;featured&amp;quot; download on VideoLAN&#039;s main pagel; a copy resides in the same directory as axvlc.dll, version 0.8.6.c http://downloads.videolan.org/pub/videolan/vlc/0.8.6c/win32/vlc-0.8.6c-win32.exe here].&lt;br /&gt;
&lt;br /&gt;
With these three components in place, you can create the .cab-file using the CABARC tool from Microsoft&#039;s CABSDK, using the following command from a command prompt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;CABARC.EXE N axvlc.cab axvlc.inf axvlc.dll vlc-0.8.6c-win32.exe&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This assumes the [http://en.wikipedia.org/wiki/Path_%28computing%29 PATH] has been set to CABARC.EXE&#039;s directory. If you need to sign the .cab-file, you need to use the -s switch to allocate space for your digital certificate.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[http://trac.videolan.org/vlc/file/trunk/activex/README.TXT Official ReadMe]&lt;br /&gt;
&lt;br /&gt;
[[Category:Embedded]]&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=ActiveX&amp;diff=10280</id>
		<title>ActiveX</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=ActiveX&amp;diff=10280"/>
		<updated>2007-12-03T23:24:51Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: /* Creating an VLC ActiveX Distribution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Windows]] build of VLC includes an (optionaly installed) &#039;&#039;&#039;ActiveX control&#039;&#039;&#039;.  The ActiveX control enables VLC to be embedded in web browsers and third-party applications.  &lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
NOTE TO EDITORS!&lt;br /&gt;
PLEASE LEAVE THE SYNTAX AS VB (6 or 98, not .net or 2005).  IF NEEDED, WE SHOULD CREATE A SEPERATE SECTION FOR EACH LANGUAGE/VARIANT AND LINK TO IT.  &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
The ActiveX control includes the following properties:&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;get or set&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;description&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Length&lt;br /&gt;
|Integer&lt;br /&gt;
|get&lt;br /&gt;
|Returns length of the current clip.&lt;br /&gt;
|-&lt;br /&gt;
|playlistCount&lt;br /&gt;
|&lt;br /&gt;
|get&lt;br /&gt;
|Returns the count of items in the playlist&lt;br /&gt;
|-&lt;br /&gt;
|playlistIndex&lt;br /&gt;
|&lt;br /&gt;
|get&lt;br /&gt;
|Returns the index of the current item in the playlist.  &lt;br /&gt;
|-&lt;br /&gt;
|AutoLoop&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|Determines if the player should automatically loop when it finishes the current playlist.  &lt;br /&gt;
|-&lt;br /&gt;
|AutoPlay&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|Determines if the player should start playing a new file/playlist immediately upon being loaded.  &lt;br /&gt;
|-&lt;br /&gt;
|Volume&lt;br /&gt;
|Integer&lt;br /&gt;
|get/set&lt;br /&gt;
|Current volume (scaled from 0 to 100)&lt;br /&gt;
|-&lt;br /&gt;
|MRL&lt;br /&gt;
|String&lt;br /&gt;
|get/set&lt;br /&gt;
|Presumably returns the MRL of the currently loaded file.&amp;lt;!-- readme says &amp;quot;initial MRL in playlist&amp;quot; --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Time&lt;br /&gt;
|Integer&lt;br /&gt;
|get/set&lt;br /&gt;
|Time elapsed in seconds playing current MRL, 0 for live feed&lt;br /&gt;
|-&lt;br /&gt;
|showdisplay&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|show/hide control viewport&amp;lt;!-- from readme --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Playing&lt;br /&gt;
|Boolean&lt;br /&gt;
|get&lt;br /&gt;
|Returns whether some MRL is playing&amp;lt;!-- from readme --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Position&lt;br /&gt;
|&#039;real&#039;&lt;br /&gt;
|get/set&lt;br /&gt;
|Playback position within current MRL, scaled from 0.0 to 1.0.  Live feed returns 0.0&lt;br /&gt;
|-&lt;br /&gt;
|VersionInfo&lt;br /&gt;
|String&lt;br /&gt;
|get&lt;br /&gt;
|Returns version and build information.&lt;br /&gt;
|}&lt;br /&gt;
Note:  In Visual Basic, type &amp;quot;Long&amp;quot; should be used for properties listed with type &amp;quot;Integer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Methods==&lt;br /&gt;
The ActiveX control includes the following methods (functions):&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;description&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;syntax ([[wikipedia:Visual Basic|VB]])&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|setVariable&lt;br /&gt;
|method&lt;br /&gt;
|Assigns a value to a variable that is defined in libvlc.c&lt;br /&gt;
|controlname.setVariable name as String, value&lt;br /&gt;
|-&lt;br /&gt;
|getVariable&lt;br /&gt;
|method&lt;br /&gt;
|Returns the contents of a variable that is defined in libvlc.c&lt;br /&gt;
|x = controlname.getVariable(name as String)&lt;br /&gt;
|-&lt;br /&gt;
|pause&lt;br /&gt;
|method&lt;br /&gt;
|Pauses the currently playing clip&lt;br /&gt;
|controlname.pause&lt;br /&gt;
|-&lt;br /&gt;
|play&lt;br /&gt;
|method&lt;br /&gt;
|Plays as in the normal player, if a clip is not loaded, does nothing.&lt;br /&gt;
|controlname.play&lt;br /&gt;
|-&lt;br /&gt;
|playFaster&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip play faster.&lt;br /&gt;
|controlname.playFaster&lt;br /&gt;
|-&lt;br /&gt;
|playSlower&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip play slower.&lt;br /&gt;
|controlname.playSlower&lt;br /&gt;
|-&lt;br /&gt;
|stop&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip stop.&lt;br /&gt;
|controlname.stop&lt;br /&gt;
|-&lt;br /&gt;
|shuttle&lt;br /&gt;
|method&lt;br /&gt;
|Moves the playback position a specified number of seconds in either direction.&lt;br /&gt;
|controlname.shuttle(seconds as Long)&lt;br /&gt;
|-&lt;br /&gt;
|playlistClear&lt;br /&gt;
|method&lt;br /&gt;
|Clears the playlist&lt;br /&gt;
|controlname.playlistClear&lt;br /&gt;
|-&lt;br /&gt;
|playlistNext&lt;br /&gt;
|method&lt;br /&gt;
|Goes to next item in the playlist&lt;br /&gt;
|controlname.playlistNext&lt;br /&gt;
|-&lt;br /&gt;
|playlistPrev&lt;br /&gt;
|method&lt;br /&gt;
|Goes to previous item in the playlist&lt;br /&gt;
|controlname.playlistPrev&lt;br /&gt;
|-&lt;br /&gt;
|addTarget&lt;br /&gt;
|method&lt;br /&gt;
|Adds a uri to the current playlist or replaces the current playlist with the uri.  &lt;br /&gt;
|controlname.addTarget(uri as String, options, mode as [[VLCPlaylistMode]], Position as Long)&lt;br /&gt;
|-&lt;br /&gt;
|toggleMute&lt;br /&gt;
|method&lt;br /&gt;
|Toggles between the muted/unmuted state of the embedded player.&lt;br /&gt;
|controlname.toggleMute&lt;br /&gt;
|-&lt;br /&gt;
|fullscreen&lt;br /&gt;
|method&lt;br /&gt;
|Toggles between fullscreen and non-fullscreen modes.&lt;br /&gt;
|controlname.fullscreen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Options==&lt;br /&gt;
The &amp;lt;code&amp;gt;addTarget&amp;lt;/code&amp;gt; method accepts most of the command line options; including, but not limited to, the following :&lt;br /&gt;
*&amp;lt;code&amp;gt;:audio-track=&#039;&#039;index&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;:vout-filter=&#039;&#039;output-filter&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;deinterlace&amp;lt;/code&amp;gt; for example)&lt;br /&gt;
*&amp;lt;code&amp;gt;:deinterlace-mode=&#039;&#039;mode&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;linear&amp;lt;/code&amp;gt; for example)&lt;br /&gt;
&lt;br /&gt;
==Samples==&lt;br /&gt;
*[[ActiveX/Delphi|Delphi Implementation]]&lt;br /&gt;
&lt;br /&gt;
* [[ActiveX/HTML|HTML Implementation]]&lt;br /&gt;
&lt;br /&gt;
==Installing==&lt;br /&gt;
===Introduction===&lt;br /&gt;
&lt;br /&gt;
VideoLAN is not a good source for the installation of an VLC ActiveX control. At some point, IE6 stopped allowing the installation of unsigned ActiveX control distributions unless:&lt;br /&gt;
* they are signed to associate the software vendor&#039;s name with the file containing the ActiveX distribution, or&lt;br /&gt;
* they resides on a IE6 &amp;quot;trusted site&amp;quot;&lt;br /&gt;
The second option is only feasible where both server and client infrastructure are managed under the same umbrella. The first option requires a [http://en.wikipedia.org/wiki/Certificate_authority Certificate Authority] to sign the control. This comes at a cost which the VideoLAN project is not able to bear. The solution is to create one&#039;s own ActiveX distribution, which in turn can be signed by you, the distributor, if necessary.&lt;br /&gt;
&lt;br /&gt;
===Creating an VLC ActiveX Distribution===&lt;br /&gt;
The following requisites are required:&lt;br /&gt;
* CABSDK by Microsoft to create a [http://en.wikipedia.org/wiki/Cabinet_%28file_format%29 Cabinet File] (.cab-file) containing the relevant VLC files. MSDN has a good description how to package an ActiveX Control including a link to the CABSDK download page [http://msdn2.microsoft.com/en-us/library/aa751974.aspx here]&lt;br /&gt;
* The .cab-file contents, consisting of:&lt;br /&gt;
** axvlc.inf - The INF file, which would be called manifest in the modern age&lt;br /&gt;
** axvlc.dll - ActiveX DLL which bootstraps the VLC setup file&lt;br /&gt;
** vlc-0.8.6c-win32.exe - VLC setup file (refer to your version)&lt;br /&gt;
&lt;br /&gt;
I am using the following code in the INF file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
; Version number and signature of INF file.&lt;br /&gt;
;&lt;br /&gt;
[version]&lt;br /&gt;
signature=&amp;quot;$CHICAGO$&amp;quot;&lt;br /&gt;
AdvancedINF=2.0&lt;br /&gt;
&lt;br /&gt;
[Add.Code]&lt;br /&gt;
vlc-0.8.6c-win32.exe&lt;br /&gt;
axvlc.dll=axvlc.dll&lt;br /&gt;
&lt;br /&gt;
[axvlc.dll]&lt;br /&gt;
FileVersion=0,8,6,0&lt;br /&gt;
clsid={9BE31822-FDAD-461B-AD51-BE1D1C159921}&lt;br /&gt;
RegisterServer=no&lt;br /&gt;
hook=nsiinstaller&lt;br /&gt;
&lt;br /&gt;
[vlc-0.8.6c-win32.exe]&lt;br /&gt;
FileVersion=0,8,6,0&lt;br /&gt;
file-win32-x86=thiscab&lt;br /&gt;
&lt;br /&gt;
[nsiinstaller]&lt;br /&gt;
run=%EXTRACT_DIR%\vlc-0.8.6c-win32.exe&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Again, refer to your version of VLC.&lt;br /&gt;
&lt;br /&gt;
You can extract axvlc.dll from the binary distribution of VLC. This is a zip file on VideoLAN&#039;s download page, version 0.8.6.c [http://downloads.videolan.org/pub/videolan/vlc/0.8.6c/win32/vlc-0.8.6c-win32.zip here].&lt;br /&gt;
&lt;br /&gt;
The setup file is the &amp;quot;featured&amp;quot; download on VideoLAN&#039;s main pagel; a copy resides in the same directory as axvlc.dll, version 0.8.6.c http://downloads.videolan.org/pub/videolan/vlc/0.8.6c/win32/vlc-0.8.6c-win32.exe here].&lt;br /&gt;
&lt;br /&gt;
With these three components in place, you can create the .cab-file using the CABARC tool from Microsoft&#039;s CABSDK, using the following command from a command prompt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;CABARC.EXE N axvlc.cab axvlc.inf axvlc.dll vlc-0.8.6c-win32.exe&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This assumes the [http://en.wikipedia.org/wiki/Path_%28computing%29 PATH] has been set to CABARC.EXE&#039;s directory. If you need to sign the .cab-file, you need to use the -s switch to allocate space for your digital certificate.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[http://trac.videolan.org/vlc/file/trunk/activex/README.TXT Official ReadMe]&lt;br /&gt;
&lt;br /&gt;
[[Category:Embedded]]&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=ActiveX&amp;diff=10277</id>
		<title>ActiveX</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=ActiveX&amp;diff=10277"/>
		<updated>2007-12-03T22:52:48Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: /* Installing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Windows]] build of VLC includes an (optionaly installed) &#039;&#039;&#039;ActiveX control&#039;&#039;&#039;.  The ActiveX control enables VLC to be embedded in web browsers and third-party applications.  &lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
NOTE TO EDITORS!&lt;br /&gt;
PLEASE LEAVE THE SYNTAX AS VB (6 or 98, not .net or 2005).  IF NEEDED, WE SHOULD CREATE A SEPERATE SECTION FOR EACH LANGUAGE/VARIANT AND LINK TO IT.  &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
The ActiveX control includes the following properties:&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;get or set&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;description&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Length&lt;br /&gt;
|Integer&lt;br /&gt;
|get&lt;br /&gt;
|Returns length of the current clip.&lt;br /&gt;
|-&lt;br /&gt;
|playlistCount&lt;br /&gt;
|&lt;br /&gt;
|get&lt;br /&gt;
|Returns the count of items in the playlist&lt;br /&gt;
|-&lt;br /&gt;
|playlistIndex&lt;br /&gt;
|&lt;br /&gt;
|get&lt;br /&gt;
|Returns the index of the current item in the playlist.  &lt;br /&gt;
|-&lt;br /&gt;
|AutoLoop&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|Determines if the player should automatically loop when it finishes the current playlist.  &lt;br /&gt;
|-&lt;br /&gt;
|AutoPlay&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|Determines if the player should start playing a new file/playlist immediately upon being loaded.  &lt;br /&gt;
|-&lt;br /&gt;
|Volume&lt;br /&gt;
|Integer&lt;br /&gt;
|get/set&lt;br /&gt;
|Current volume (scaled from 0 to 100)&lt;br /&gt;
|-&lt;br /&gt;
|MRL&lt;br /&gt;
|String&lt;br /&gt;
|get/set&lt;br /&gt;
|Presumably returns the MRL of the currently loaded file.&amp;lt;!-- readme says &amp;quot;initial MRL in playlist&amp;quot; --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Time&lt;br /&gt;
|Integer&lt;br /&gt;
|get/set&lt;br /&gt;
|Time elapsed in seconds playing current MRL, 0 for live feed&lt;br /&gt;
|-&lt;br /&gt;
|showdisplay&lt;br /&gt;
|Boolean&lt;br /&gt;
|get/set&lt;br /&gt;
|show/hide control viewport&amp;lt;!-- from readme --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Playing&lt;br /&gt;
|Boolean&lt;br /&gt;
|get&lt;br /&gt;
|Returns whether some MRL is playing&amp;lt;!-- from readme --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Position&lt;br /&gt;
|&#039;real&#039;&lt;br /&gt;
|get/set&lt;br /&gt;
|Playback position within current MRL, scaled from 0.0 to 1.0.  Live feed returns 0.0&lt;br /&gt;
|-&lt;br /&gt;
|VersionInfo&lt;br /&gt;
|String&lt;br /&gt;
|get&lt;br /&gt;
|Returns version and build information.&lt;br /&gt;
|}&lt;br /&gt;
Note:  In Visual Basic, type &amp;quot;Long&amp;quot; should be used for properties listed with type &amp;quot;Integer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Methods==&lt;br /&gt;
The ActiveX control includes the following methods (functions):&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;description&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;syntax ([[wikipedia:Visual Basic|VB]])&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|setVariable&lt;br /&gt;
|method&lt;br /&gt;
|Assigns a value to a variable that is defined in libvlc.c&lt;br /&gt;
|controlname.setVariable name as String, value&lt;br /&gt;
|-&lt;br /&gt;
|getVariable&lt;br /&gt;
|method&lt;br /&gt;
|Returns the contents of a variable that is defined in libvlc.c&lt;br /&gt;
|x = controlname.getVariable(name as String)&lt;br /&gt;
|-&lt;br /&gt;
|pause&lt;br /&gt;
|method&lt;br /&gt;
|Pauses the currently playing clip&lt;br /&gt;
|controlname.pause&lt;br /&gt;
|-&lt;br /&gt;
|play&lt;br /&gt;
|method&lt;br /&gt;
|Plays as in the normal player, if a clip is not loaded, does nothing.&lt;br /&gt;
|controlname.play&lt;br /&gt;
|-&lt;br /&gt;
|playFaster&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip play faster.&lt;br /&gt;
|controlname.playFaster&lt;br /&gt;
|-&lt;br /&gt;
|playSlower&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip play slower.&lt;br /&gt;
|controlname.playSlower&lt;br /&gt;
|-&lt;br /&gt;
|stop&lt;br /&gt;
|method&lt;br /&gt;
|Makes the currently playing clip stop.&lt;br /&gt;
|controlname.stop&lt;br /&gt;
|-&lt;br /&gt;
|shuttle&lt;br /&gt;
|method&lt;br /&gt;
|Moves the playback position a specified number of seconds in either direction.&lt;br /&gt;
|controlname.shuttle(seconds as Long)&lt;br /&gt;
|-&lt;br /&gt;
|playlistClear&lt;br /&gt;
|method&lt;br /&gt;
|Clears the playlist&lt;br /&gt;
|controlname.playlistClear&lt;br /&gt;
|-&lt;br /&gt;
|playlistNext&lt;br /&gt;
|method&lt;br /&gt;
|Goes to next item in the playlist&lt;br /&gt;
|controlname.playlistNext&lt;br /&gt;
|-&lt;br /&gt;
|playlistPrev&lt;br /&gt;
|method&lt;br /&gt;
|Goes to previous item in the playlist&lt;br /&gt;
|controlname.playlistPrev&lt;br /&gt;
|-&lt;br /&gt;
|addTarget&lt;br /&gt;
|method&lt;br /&gt;
|Adds a uri to the current playlist or replaces the current playlist with the uri.  &lt;br /&gt;
|controlname.addTarget(uri as String, options, mode as [[VLCPlaylistMode]], Position as Long)&lt;br /&gt;
|-&lt;br /&gt;
|toggleMute&lt;br /&gt;
|method&lt;br /&gt;
|Toggles between the muted/unmuted state of the embedded player.&lt;br /&gt;
|controlname.toggleMute&lt;br /&gt;
|-&lt;br /&gt;
|fullscreen&lt;br /&gt;
|method&lt;br /&gt;
|Toggles between fullscreen and non-fullscreen modes.&lt;br /&gt;
|controlname.fullscreen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Options==&lt;br /&gt;
The &amp;lt;code&amp;gt;addTarget&amp;lt;/code&amp;gt; method accepts most of the command line options; including, but not limited to, the following :&lt;br /&gt;
*&amp;lt;code&amp;gt;:audio-track=&#039;&#039;index&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;:vout-filter=&#039;&#039;output-filter&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;deinterlace&amp;lt;/code&amp;gt; for example)&lt;br /&gt;
*&amp;lt;code&amp;gt;:deinterlace-mode=&#039;&#039;mode&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;linear&amp;lt;/code&amp;gt; for example)&lt;br /&gt;
&lt;br /&gt;
==Samples==&lt;br /&gt;
*[[ActiveX/Delphi|Delphi Implementation]]&lt;br /&gt;
&lt;br /&gt;
* [[ActiveX/HTML|HTML Implementation]]&lt;br /&gt;
&lt;br /&gt;
==Installing==&lt;br /&gt;
===Introduction===&lt;br /&gt;
&lt;br /&gt;
VideoLAN is not a good source for the installation of an VLC ActiveX control. At some point, IE6 stopped allowing the installation of unsigned ActiveX control distributions unless:&lt;br /&gt;
* they are signed to associate the software vendor&#039;s name with the file containing the ActiveX distribution, or&lt;br /&gt;
* they resides on a IE6 &amp;quot;trusted site&amp;quot;&lt;br /&gt;
The second option is only feasible where both server and client infrastructure are managed under the same umbrella. The first option requires a [http://en.wikipedia.org/wiki/Certificate_authority Certificate Authority] to sign the control. This comes at a cost which the VideoLAN project is not able to bear. The solution is to create one&#039;s own ActiveX distribution, which in turn can be signed by you, the distributor, if necessary.&lt;br /&gt;
&lt;br /&gt;
===Creating an VLC ActiveX Distribution===&lt;br /&gt;
The following requisites are required:&lt;br /&gt;
* CABSDK by Microsoft to create a [http://en.wikipedia.org/wiki/Cabinet_%28file_format%29 Cabinet File] (.cab-file) containing the relevant VLC files. MSDN has a good description how to package an ActiveX Control including a link to the CABSDK download page [http://msdn2.microsoft.com/en-us/library/aa751974.aspx here]&lt;br /&gt;
* The .cab-file contents, consisting of&lt;br /&gt;
** axvlc.inf - The INF file, which would be called manifest in the modern age&lt;br /&gt;
** axvlc.dll - ActiveX DLL&lt;br /&gt;
** VLC setup file&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[http://trac.videolan.org/vlc/file/trunk/activex/README.TXT Official ReadMe]&lt;br /&gt;
&lt;br /&gt;
[[Category:Embedded]]&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Integrate_with_Google_Web_Toolkit&amp;diff=10210</id>
		<title>VLC HowTo/Integrate with Google Web Toolkit</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Integrate_with_Google_Web_Toolkit&amp;diff=10210"/>
		<updated>2007-11-14T01:09:29Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{howto|Integrate VLC with Google Web Toolkit (GWT)}}&lt;br /&gt;
&lt;br /&gt;
= GWT =&lt;br /&gt;
VLC can be integrated in Google Web Toolkit (GWT) web applications. The easiest way is to embed the VLC browser plugin in your web application. This also ensures that no question arises whether your web application is derivative work or not, as a clean separation between the web application and VLC exists. Alternatively, a build of VLC can be integrated in a web app, using applicable bindings. This article discusses integration based on the VLC plugin. There are two levels of integration:&lt;br /&gt;
* Static integration in the main HTML file (MyProject.html as generated by GWT/applicationCreator)&lt;br /&gt;
* Dynamic integration in HTML code, which is generated at web application runtime&lt;br /&gt;
(In any case, remember that VLC treats the browser plugin for Firefox/Mozilla only as an installation option. You might have to go back and install this option and also point out in your documentation that this option needs to be installed if users run your web application with Mozilla/Firefox.)&lt;br /&gt;
&lt;br /&gt;
== Static integration in MyProject.html ==&lt;br /&gt;
Static integration is straightforward and based on methods described in two separate articles:&lt;br /&gt;
* Mozilla/Firefox plug-in: http://wiki.videolan.org/Documentation:Play_HowTo/Advanced_Use_of_VLC#Use_the_mozilla_plugin&lt;br /&gt;
* ActiceX Control: [[ActiveX/HTML]] &lt;br /&gt;
Following the description in the [[ActiveX/HTML]] article, you can include some code based on the following snippet in your main HTML file (MyProject.html):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;OBJECT classid=&amp;quot;clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921&amp;quot; &lt;br /&gt;
	codebase=&amp;quot;http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab&amp;quot; &lt;br /&gt;
	width=&amp;quot;320&amp;quot; &lt;br /&gt;
	height=&amp;quot;240&amp;quot; &lt;br /&gt;
	id=&amp;quot;vlc&amp;quot; events=&amp;quot;True&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;Src&amp;quot; value=&amp;quot;$mri&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;ShowDisplay&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;AutoLoop&amp;quot; value=&amp;quot;False&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;AutoPlay&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;EMBED pluginspage=&amp;quot;http://www.videolan.org&amp;quot; &lt;br /&gt;
		type=&amp;quot;application/x-vlc-plugin&amp;quot; progid=&amp;quot;VideoLAN.VLCPlugin.2&amp;quot; &lt;br /&gt;
		width=&amp;quot;320&amp;quot; &lt;br /&gt;
		height=&amp;quot;240&amp;quot; &lt;br /&gt;
		autoplay=&amp;quot;yes&amp;quot; &lt;br /&gt;
		loop=&amp;quot;no&amp;quot; &lt;br /&gt;
		target=&amp;quot;$mri&amp;quot; &lt;br /&gt;
		name=&amp;quot;vlc&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;/EMBED&amp;gt;&lt;br /&gt;
&amp;lt;/OBJECT&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Internet Explorer (IE6) responds to the code in the &amp;lt;OBJECT&amp;gt; tag, while Mozilla/Firefox uses the settings inside the &amp;lt;EMBED&amp;gt; tag.&lt;br /&gt;
Replace parameters as appropriate, e.g. $mri with the [[Multimedia Resource Identifier]] of your incoming stream.&lt;br /&gt;
&lt;br /&gt;
== Embedding in dynamically generated HTML code ==&lt;br /&gt;
It is possible to integrate the VLC plugin in dynamically generated HTML code, based on the GWT classes HTML, HTMLPanel and HTMLTable.&lt;br /&gt;
&lt;br /&gt;
The integration of the VLC plugin in dynamically generated HTML code is based on DOM calls and some JavaScript as opposed to GWT API calls. For some reason(s), the GWT API calls do not support the integration of the VLC plugin, although other plugin&#039;s might work just fine. Panel.add() for example is a key method which does not hook the plugin into the DOM as expected by the VLC plugin. This is not necessarily a fault of the VLC plugin, but rather browser-specific differences in Javascript implementation, and how GWT works. Below a snippet which should contain all the necessary DOM calls and JavaScript code which worked for me for Mozilla/Firefox &#039;&#039;and&#039;&#039; IE6:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	{&lt;br /&gt;
&lt;br /&gt;
		streamerCode = &amp;quot;..............&amp;quot;; // Use example code above as a starting point&lt;br /&gt;
&lt;br /&gt;
		// IE6: Wrap VLC plugin in an HTML block element. Needed to work around known &amp;quot;quirk&amp;quot; in IE6&#039;s implementation of innerHTML&lt;br /&gt;
		//	Does not hurt Mozilla/Firefox&lt;br /&gt;
		//	http://support.microsoft.com/kb/276228&lt;br /&gt;
		com.google.gwt.user.client.Element newdiv = DOM.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
		DOM.setInnerHTML(newdiv, streamerCode);&lt;br /&gt;
&lt;br /&gt;
		// Append div block on DOM level. Needed for all browsers; GWT Panel.add() does not work for VLC&lt;br /&gt;
		//	Mozilla Firefox is OK with appendChild() to any GWT Panel; IE6 works only if appended to RootPanel&lt;br /&gt;
		DOM.appendChild(RootPanel.get(&amp;quot;browserElementInHTMLCode&amp;quot;).getElement(), newdiv);&lt;br /&gt;
		&lt;br /&gt;
		// Set width and height in VLC&#039;s style. Needed and has effect for IE6. Alternatively, this could probably be accomplised through setting the style of the VLC plugin as well.&lt;br /&gt;
		//	Solution found here: http://forum.videolan.org/viewtopic.php?f=16&amp;amp;t=33736&amp;amp;p=104306&amp;amp;hilit=innerHTML#p104306&lt;br /&gt;
		//	Bindings for different browsers explained here: http://www.permadi.com/tutorial/flashGetObject/ &lt;br /&gt;
		vlcSetWidth(&amp;quot;vlc&amp;quot;, &amp;quot;320&amp;quot;);&lt;br /&gt;
		vlcSetHeight(&amp;quot;vlc&amp;quot;, &amp;quot;160&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * set width of VLC plugin &lt;br /&gt;
	 * &lt;br /&gt;
	 * @param width&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcSetWidth(String targetId, String width) /*-{&lt;br /&gt;
		$doc[targetId].style.width=width;&lt;br /&gt;
	}-*/;&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * set height of VLC plugin&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param height&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcSetHeight(String targetId, String height) /*-{&lt;br /&gt;
		$doc[targetId].style.height=height;&lt;br /&gt;
	}-*/;&lt;br /&gt;
&lt;br /&gt;
}		&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It does not make a difference whether the VLC lugin is integrated on the static or dynamic level; a handle to the VLC plugin is obtained through the RootPanel method RootPanel get(java.lang.String id) which returns the browser element that embeds the VLC plugin. Code must be added to the HTML code to create a browser element with an ID which can be captured by the RootPanel mathod get(java.lang.String id), e.g. as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td id=&amp;quot;browserElementInHTMLCode&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== User interaction ==&lt;br /&gt;
The VLC plugin has a Javascript API which allows the implementation of user interactions like Play or Pause on the web application level. The plug-in can be called through Javascript as described in the [[ActiveX/HTML]] article. GWT/Java wrappers for these calls are not available (yet). Below a couple of examples.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
	/**&lt;br /&gt;
	 * stop VLC plugin&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcStop(String targetId) /*-{&lt;br /&gt;
		$doc[targetId].playlist.stop();&lt;br /&gt;
	}-*/;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * play VLC plugin&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcPlay(String targetId) /*-{&lt;br /&gt;
		$doc[targetId].playlist.play();&lt;br /&gt;
	 }-*/;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo&amp;diff=10209</id>
		<title>VLC HowTo</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo&amp;diff=10209"/>
		<updated>2007-11-14T00:24:34Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
Below are some handy guides for using {{VLC}}&lt;br /&gt;
&lt;br /&gt;
===Playing Video and Audio===&lt;br /&gt;
;How to...&lt;br /&gt;
* [[What can vlc do#How to enable/use subtitles|Use Subtitles]]&lt;br /&gt;
*: Playing movies with subtitles&lt;br /&gt;
* [[How to Use a Capture Card|Use a Capture Card]]&lt;br /&gt;
*: This explains how to watch TV or get video from your capture card.&lt;br /&gt;
* [[What can vlc do#Play DVD/SVCD/VCD iso&#039;s / Images|Play DVDs and Disks from the image file]]&lt;br /&gt;
*: This explains how to use movies encoded onto an ISO file.&lt;br /&gt;
&lt;br /&gt;
===Adjusting Settings===&lt;br /&gt;
;How to...&lt;br /&gt;
* [[What can vlc do#How to adjust picture brightness/colors/contrast..|Adjust Picture Brightness and Contrast]]&lt;br /&gt;
* [[What can vlc do#How to control the aspect ratio of the video|Edit the Aspect Ratio of a video]]&lt;br /&gt;
* [[How_to_disable_acceleration_in_Win32|Disable video acceleration in Win32]]&lt;br /&gt;
* [[How_to_save_bookmarks | Save bookmarks]]&lt;br /&gt;
* [[How_to_play_multiple_instances_of_VLC | How to play multiple instances]]&lt;br /&gt;
&lt;br /&gt;
===Transcoding and Streaming===&lt;br /&gt;
;How to...&lt;br /&gt;
* [[Play_on_IPod|Play videos on your iPod]]&lt;br /&gt;
*: This explains how to convert your videos so they play on your iPod.&lt;br /&gt;
* [[Play_on_Yan Micro|Play videos on your Play-Yan Micro]]&lt;br /&gt;
*: This explains how to convert your videos so they play on your Play-Yan Micro.&lt;br /&gt;
* [[Play_on_Xbox|Play videos on your XBox and XBox 360 ]]&lt;br /&gt;
*: This explains how to convert your videos so they play on your XBox.&lt;br /&gt;
* [[Play_on_Zune| Play video on your Zune]]&lt;br /&gt;
*: This explains how to convert your videos so they play on your Zune.&lt;br /&gt;
* [[Fixing .flv to .avi with Ffmpeg]]&lt;br /&gt;
*: This explains how to use ffmpeg to a convert broken .flv files to a perfectly good .avi file &#039;&#039;&#039;DEPRECATED&#039;&#039;&#039;&lt;br /&gt;
* [[Transcode_WM_to_Mov_or_MP4|Convert Windows Media audio/video files to MOV or .MP4]]&lt;br /&gt;
*: This explains how to convert Windows Media-encoded files to Quicktime or MPEG-4 files&lt;br /&gt;
* [[Streaming_to_ActiveX_for_Windows_Media_Player | Streaming from a webcam to an ActiveX embedded object page]]&lt;br /&gt;
* [[How_to_add_logo | Add a logo on your videos]]&lt;br /&gt;
* [[Mosaic| Create a Mosaic]]&lt;br /&gt;
*: This explains how to set up a mosaic from a few streams like a portal TV.&lt;br /&gt;
* [[How to DBox|Set up Video on Demand on a Dreambox]]&lt;br /&gt;
* [[How to Batch Encode]]&lt;br /&gt;
*: This explains how to set up a batch transcode with all files in a directory of a certain file extension being transcoded to a specified format.&lt;br /&gt;
* [[How to merge and transcode multiple videos]]&lt;br /&gt;
*: This explains how to take several source videos and merge then transcode resulting in a single file output.&lt;br /&gt;
&lt;br /&gt;
===Using VLC in other Applications===&lt;br /&gt;
;How to...&lt;br /&gt;
* [[ActiveX]]&lt;br /&gt;
*: Specification for ActiveX control&lt;br /&gt;
* [[ExternalAPI|Use VLC&#039;s External API]]&lt;br /&gt;
*: Information for using libvlc&lt;br /&gt;
* [[Use in Media Center]]&lt;br /&gt;
* [[Useful Firefox Extensions]]&lt;br /&gt;
*: Information about extensions to view embedded videos in web pages using VLC&lt;br /&gt;
* [[GWT]]&lt;br /&gt;
*: Google WebToolkit&lt;br /&gt;
&lt;br /&gt;
===Other Stuff===&lt;br /&gt;
;How to...&lt;br /&gt;
* [[How to Create a DVD|Create a DVD]]&lt;br /&gt;
*: This explains how to make a DVD from your home videos&lt;br /&gt;
* [[ActiveX/Delphi|Use the ActiveX control with Borland&#039;s Delphi]]&lt;br /&gt;
*: Using the VLC ActiveX plug-in in your programs&lt;br /&gt;
* [[ActiveX/HTML|Use the ActiveX control within a webpage.]]&lt;br /&gt;
* [[Control VLC via a browser]]&lt;br /&gt;
*: This explains how to use the HTTP [[interface]]&lt;br /&gt;
* [[Change the brightness or contrast of a video|Change a video]]&lt;br /&gt;
*: This explains how to edit a video and save the changes&lt;br /&gt;
* [[How to create thumbnails]]&lt;br /&gt;
* [[How to Use Lirc]]&lt;br /&gt;
* [[How to Use Creative Remote]]&lt;br /&gt;
*: Explains how to control {{VLC}} with Creative brand remote controls&lt;br /&gt;
* [[How to shut down computer]] when VLC playback is over...&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* &#039;&#039;&#039;See also [[:Category:How To]]&#039;&#039;&#039;&lt;br /&gt;
[[Category:How To]]&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Integrate_with_Google_Web_Toolkit&amp;diff=10195</id>
		<title>VLC HowTo/Integrate with Google Web Toolkit</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Integrate_with_Google_Web_Toolkit&amp;diff=10195"/>
		<updated>2007-11-09T19:58:10Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: /* User interaction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GWT =&lt;br /&gt;
VLC can be integrated in Google Web Toolkit (GWT) web applications. The easiest way is to embed the VLC browser plugin in your web application. This also ensures that no question arises whether your web application is derivative work or not, as a clean separation between the web application and VLC exists. Alternatively, a build of VLC can be integrated in a web app, using applicable bindings. This article discusses integration based on the VLC plugin. There are two levels of integration:&lt;br /&gt;
* Static integration in the main HTML file (MyProject.html as generated by GWT/applicationCreator)&lt;br /&gt;
* Dynamic integration in HTML code, which is generated at web application runtime&lt;br /&gt;
(In any case, remember that VLC treats the browser plugin for Firefox/Mozilla only as an installation option. You might have to go back and install this option and also point out in your documentation that this option needs to be installed if users run your web application with Mozilla/Firefox.)&lt;br /&gt;
&lt;br /&gt;
== Static integration in MyProject.html ==&lt;br /&gt;
Static integration is straightforward and based on methods described in two separate articles:&lt;br /&gt;
* Mozilla/Firefox plug-in: http://wiki.videolan.org/Documentation:Play_HowTo/Advanced_Use_of_VLC#Use_the_mozilla_plugin&lt;br /&gt;
* ActiceX Control: [[ActiveX/HTML]] &lt;br /&gt;
Following the description in the [[ActiveX/HTML]] article, you can include some code based on the following snippet in your main HTML file (MyProject.html):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;OBJECT classid=&amp;quot;clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921&amp;quot; &lt;br /&gt;
	codebase=&amp;quot;http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab&amp;quot; &lt;br /&gt;
	width=&amp;quot;320&amp;quot; &lt;br /&gt;
	height=&amp;quot;240&amp;quot; &lt;br /&gt;
	id=&amp;quot;vlc&amp;quot; events=&amp;quot;True&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;Src&amp;quot; value=&amp;quot;$mri&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;ShowDisplay&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;AutoLoop&amp;quot; value=&amp;quot;False&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;AutoPlay&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;EMBED pluginspage=&amp;quot;http://www.videolan.org&amp;quot; &lt;br /&gt;
		type=&amp;quot;application/x-vlc-plugin&amp;quot; progid=&amp;quot;VideoLAN.VLCPlugin.2&amp;quot; &lt;br /&gt;
		width=&amp;quot;320&amp;quot; &lt;br /&gt;
		height=&amp;quot;240&amp;quot; &lt;br /&gt;
		autoplay=&amp;quot;yes&amp;quot; &lt;br /&gt;
		loop=&amp;quot;no&amp;quot; &lt;br /&gt;
		target=&amp;quot;$mri&amp;quot; &lt;br /&gt;
		name=&amp;quot;vlc&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;/EMBED&amp;gt;&lt;br /&gt;
&amp;lt;/OBJECT&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Internet Explorer (IE6) responds to the code in the &amp;lt;OBJECT&amp;gt; tag, while Mozilla/Firefox uses the settings inside the &amp;lt;EMBED&amp;gt; tag.&lt;br /&gt;
Replace parameters as appropriate, e.g. $mri with the [[Multimedia Resource Identifier]] of your incoming stream.&lt;br /&gt;
&lt;br /&gt;
== Embedding in dynamically generated HTML code ==&lt;br /&gt;
It is possible to integrate the VLC plugin in dynamically generated HTML code, based on the GWT classes HTML, HTMLPanel and HTMLTable.&lt;br /&gt;
&lt;br /&gt;
The integration of the VLC plugin in dynamically generated HTML code is based on DOM calls and some JavaScript as opposed to GWT API calls. For some reason(s), the GWT API calls do not support the integration of the VLC plugin, although other plugin&#039;s might work just fine. Panel.add() for example is a key method which does not hook the plugin into the DOM as expected by the VLC plugin. This is not necessarily a fault of the VLC plugin, but rather browser-specific differences in Javascript implementation, and how GWT works. Below a snippet which should contain all the necessary DOM calls and JavaScript code which worked for me for Mozilla/Firefox &#039;&#039;and&#039;&#039; IE6:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	{&lt;br /&gt;
&lt;br /&gt;
		streamerCode = &amp;quot;..............&amp;quot;; // Use example code above as a starting point&lt;br /&gt;
&lt;br /&gt;
		// IE6: Wrap VLC plugin in an HTML block element. Needed to work around known &amp;quot;quirk&amp;quot; in IE6&#039;s implementation of innerHTML&lt;br /&gt;
		//	Does not hurt Mozilla/Firefox&lt;br /&gt;
		//	http://support.microsoft.com/kb/276228&lt;br /&gt;
		com.google.gwt.user.client.Element newdiv = DOM.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
		DOM.setInnerHTML(newdiv, streamerCode);&lt;br /&gt;
&lt;br /&gt;
		// Append div block on DOM level. Needed for all browsers; GWT Panel.add() does not work for VLC&lt;br /&gt;
		//	Mozilla Firefox is OK with appendChild() to any GWT Panel; IE6 works only if appended to RootPanel&lt;br /&gt;
		DOM.appendChild(RootPanel.get(&amp;quot;browserElementInHTMLCode&amp;quot;).getElement(), newdiv);&lt;br /&gt;
		&lt;br /&gt;
		// Set width and height in VLC&#039;s style. Needed and has effect for IE6. Alternatively, this could probably be accomplised through setting the style of the VLC plugin as well.&lt;br /&gt;
		//	Solution found here: http://forum.videolan.org/viewtopic.php?f=16&amp;amp;t=33736&amp;amp;p=104306&amp;amp;hilit=innerHTML#p104306&lt;br /&gt;
		//	Bindings for different browsers explained here: http://www.permadi.com/tutorial/flashGetObject/ &lt;br /&gt;
		vlcSetWidth(&amp;quot;vlc&amp;quot;, &amp;quot;320&amp;quot;);&lt;br /&gt;
		vlcSetHeight(&amp;quot;vlc&amp;quot;, &amp;quot;160&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * set width of VLC plugin &lt;br /&gt;
	 * &lt;br /&gt;
	 * @param width&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcSetWidth(String targetId, String width) /*-{&lt;br /&gt;
		$doc[targetId].style.width=width;&lt;br /&gt;
	}-*/;&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * set height of VLC plugin&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param height&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcSetHeight(String targetId, String height) /*-{&lt;br /&gt;
		$doc[targetId].style.height=height;&lt;br /&gt;
	}-*/;&lt;br /&gt;
&lt;br /&gt;
}		&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It does not make a difference whether the VLC lugin is integrated on the static or dynamic level; a handle to the VLC plugin is obtained through the RootPanel method RootPanel get(java.lang.String id) which returns the browser element that embeds the VLC plugin. Code must be added to the HTML code to create a browser element with an ID which can be captured by the RootPanel mathod get(java.lang.String id), e.g. as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td id=&amp;quot;browserElementInHTMLCode&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== User interaction ==&lt;br /&gt;
The VLC plugin has a Javascript API which allows the implementation of user interactions like Play or Pause on the web application level. The plug-in can be called through Javascript as described in the [[ActiveX/HTML]] article. GWT/Java wrappers for these calls are not available (yet). Below a couple of examples.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
	/**&lt;br /&gt;
	 * stop VLC plugin&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcStop(String targetId) /*-{&lt;br /&gt;
		$doc[targetId].playlist.stop();&lt;br /&gt;
	}-*/;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * play VLC plugin&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcPlay(String targetId) /*-{&lt;br /&gt;
		$doc[targetId].playlist.play();&lt;br /&gt;
	 }-*/;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Integrate_with_Google_Web_Toolkit&amp;diff=10194</id>
		<title>VLC HowTo/Integrate with Google Web Toolkit</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Integrate_with_Google_Web_Toolkit&amp;diff=10194"/>
		<updated>2007-11-09T19:57:02Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: /* Embedding in dynamically generated HTML code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GWT =&lt;br /&gt;
VLC can be integrated in Google Web Toolkit (GWT) web applications. The easiest way is to embed the VLC browser plugin in your web application. This also ensures that no question arises whether your web application is derivative work or not, as a clean separation between the web application and VLC exists. Alternatively, a build of VLC can be integrated in a web app, using applicable bindings. This article discusses integration based on the VLC plugin. There are two levels of integration:&lt;br /&gt;
* Static integration in the main HTML file (MyProject.html as generated by GWT/applicationCreator)&lt;br /&gt;
* Dynamic integration in HTML code, which is generated at web application runtime&lt;br /&gt;
(In any case, remember that VLC treats the browser plugin for Firefox/Mozilla only as an installation option. You might have to go back and install this option and also point out in your documentation that this option needs to be installed if users run your web application with Mozilla/Firefox.)&lt;br /&gt;
&lt;br /&gt;
== Static integration in MyProject.html ==&lt;br /&gt;
Static integration is straightforward and based on methods described in two separate articles:&lt;br /&gt;
* Mozilla/Firefox plug-in: http://wiki.videolan.org/Documentation:Play_HowTo/Advanced_Use_of_VLC#Use_the_mozilla_plugin&lt;br /&gt;
* ActiceX Control: [[ActiveX/HTML]] &lt;br /&gt;
Following the description in the [[ActiveX/HTML]] article, you can include some code based on the following snippet in your main HTML file (MyProject.html):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;OBJECT classid=&amp;quot;clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921&amp;quot; &lt;br /&gt;
	codebase=&amp;quot;http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab&amp;quot; &lt;br /&gt;
	width=&amp;quot;320&amp;quot; &lt;br /&gt;
	height=&amp;quot;240&amp;quot; &lt;br /&gt;
	id=&amp;quot;vlc&amp;quot; events=&amp;quot;True&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;Src&amp;quot; value=&amp;quot;$mri&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;ShowDisplay&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;AutoLoop&amp;quot; value=&amp;quot;False&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;AutoPlay&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;EMBED pluginspage=&amp;quot;http://www.videolan.org&amp;quot; &lt;br /&gt;
		type=&amp;quot;application/x-vlc-plugin&amp;quot; progid=&amp;quot;VideoLAN.VLCPlugin.2&amp;quot; &lt;br /&gt;
		width=&amp;quot;320&amp;quot; &lt;br /&gt;
		height=&amp;quot;240&amp;quot; &lt;br /&gt;
		autoplay=&amp;quot;yes&amp;quot; &lt;br /&gt;
		loop=&amp;quot;no&amp;quot; &lt;br /&gt;
		target=&amp;quot;$mri&amp;quot; &lt;br /&gt;
		name=&amp;quot;vlc&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;/EMBED&amp;gt;&lt;br /&gt;
&amp;lt;/OBJECT&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Internet Explorer (IE6) responds to the code in the &amp;lt;OBJECT&amp;gt; tag, while Mozilla/Firefox uses the settings inside the &amp;lt;EMBED&amp;gt; tag.&lt;br /&gt;
Replace parameters as appropriate, e.g. $mri with the [[Multimedia Resource Identifier]] of your incoming stream.&lt;br /&gt;
&lt;br /&gt;
== Embedding in dynamically generated HTML code ==&lt;br /&gt;
It is possible to integrate the VLC plugin in dynamically generated HTML code, based on the GWT classes HTML, HTMLPanel and HTMLTable.&lt;br /&gt;
&lt;br /&gt;
The integration of the VLC plugin in dynamically generated HTML code is based on DOM calls and some JavaScript as opposed to GWT API calls. For some reason(s), the GWT API calls do not support the integration of the VLC plugin, although other plugin&#039;s might work just fine. Panel.add() for example is a key method which does not hook the plugin into the DOM as expected by the VLC plugin. This is not necessarily a fault of the VLC plugin, but rather browser-specific differences in Javascript implementation, and how GWT works. Below a snippet which should contain all the necessary DOM calls and JavaScript code which worked for me for Mozilla/Firefox &#039;&#039;and&#039;&#039; IE6:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	{&lt;br /&gt;
&lt;br /&gt;
		streamerCode = &amp;quot;..............&amp;quot;; // Use example code above as a starting point&lt;br /&gt;
&lt;br /&gt;
		// IE6: Wrap VLC plugin in an HTML block element. Needed to work around known &amp;quot;quirk&amp;quot; in IE6&#039;s implementation of innerHTML&lt;br /&gt;
		//	Does not hurt Mozilla/Firefox&lt;br /&gt;
		//	http://support.microsoft.com/kb/276228&lt;br /&gt;
		com.google.gwt.user.client.Element newdiv = DOM.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
		DOM.setInnerHTML(newdiv, streamerCode);&lt;br /&gt;
&lt;br /&gt;
		// Append div block on DOM level. Needed for all browsers; GWT Panel.add() does not work for VLC&lt;br /&gt;
		//	Mozilla Firefox is OK with appendChild() to any GWT Panel; IE6 works only if appended to RootPanel&lt;br /&gt;
		DOM.appendChild(RootPanel.get(&amp;quot;browserElementInHTMLCode&amp;quot;).getElement(), newdiv);&lt;br /&gt;
		&lt;br /&gt;
		// Set width and height in VLC&#039;s style. Needed and has effect for IE6. Alternatively, this could probably be accomplised through setting the style of the VLC plugin as well.&lt;br /&gt;
		//	Solution found here: http://forum.videolan.org/viewtopic.php?f=16&amp;amp;t=33736&amp;amp;p=104306&amp;amp;hilit=innerHTML#p104306&lt;br /&gt;
		//	Bindings for different browsers explained here: http://www.permadi.com/tutorial/flashGetObject/ &lt;br /&gt;
		vlcSetWidth(&amp;quot;vlc&amp;quot;, &amp;quot;320&amp;quot;);&lt;br /&gt;
		vlcSetHeight(&amp;quot;vlc&amp;quot;, &amp;quot;160&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * set width of VLC plugin &lt;br /&gt;
	 * &lt;br /&gt;
	 * @param width&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcSetWidth(String targetId, String width) /*-{&lt;br /&gt;
		$doc[targetId].style.width=width;&lt;br /&gt;
	}-*/;&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * set height of VLC plugin&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param height&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcSetHeight(String targetId, String height) /*-{&lt;br /&gt;
		$doc[targetId].style.height=height;&lt;br /&gt;
	}-*/;&lt;br /&gt;
&lt;br /&gt;
}		&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It does not make a difference whether the VLC lugin is integrated on the static or dynamic level; a handle to the VLC plugin is obtained through the RootPanel method RootPanel get(java.lang.String id) which returns the browser element that embeds the VLC plugin. Code must be added to the HTML code to create a browser element with an ID which can be captured by the RootPanel mathod get(java.lang.String id), e.g. as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td id=&amp;quot;browserElementInHTMLCode&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== User interaction ==&lt;br /&gt;
The VLC plugin has a Javascript API which allows the implementation of user interactions like Play or Pause on the web application level. The plug-in can be called through Javascript as described in the [[ActiveX/HTML]] article. GWT/Java wrappers for these calls are not available (yet). Below a couple of examples.&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Integrate_with_Google_Web_Toolkit&amp;diff=10193</id>
		<title>VLC HowTo/Integrate with Google Web Toolkit</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Integrate_with_Google_Web_Toolkit&amp;diff=10193"/>
		<updated>2007-11-09T19:56:08Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: /* User interaction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GWT =&lt;br /&gt;
VLC can be integrated in Google Web Toolkit (GWT) web applications. The easiest way is to embed the VLC browser plugin in your web application. This also ensures that no question arises whether your web application is derivative work or not, as a clean separation between the web application and VLC exists. Alternatively, a build of VLC can be integrated in a web app, using applicable bindings. This article discusses integration based on the VLC plugin. There are two levels of integration:&lt;br /&gt;
* Static integration in the main HTML file (MyProject.html as generated by GWT/applicationCreator)&lt;br /&gt;
* Dynamic integration in HTML code, which is generated at web application runtime&lt;br /&gt;
(In any case, remember that VLC treats the browser plugin for Firefox/Mozilla only as an installation option. You might have to go back and install this option and also point out in your documentation that this option needs to be installed if users run your web application with Mozilla/Firefox.)&lt;br /&gt;
&lt;br /&gt;
== Static integration in MyProject.html ==&lt;br /&gt;
Static integration is straightforward and based on methods described in two separate articles:&lt;br /&gt;
* Mozilla/Firefox plug-in: http://wiki.videolan.org/Documentation:Play_HowTo/Advanced_Use_of_VLC#Use_the_mozilla_plugin&lt;br /&gt;
* ActiceX Control: [[ActiveX/HTML]] &lt;br /&gt;
Following the description in the [[ActiveX/HTML]] article, you can include some code based on the following snippet in your main HTML file (MyProject.html):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;OBJECT classid=&amp;quot;clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921&amp;quot; &lt;br /&gt;
	codebase=&amp;quot;http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab&amp;quot; &lt;br /&gt;
	width=&amp;quot;320&amp;quot; &lt;br /&gt;
	height=&amp;quot;240&amp;quot; &lt;br /&gt;
	id=&amp;quot;vlc&amp;quot; events=&amp;quot;True&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;Src&amp;quot; value=&amp;quot;$mri&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;ShowDisplay&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;AutoLoop&amp;quot; value=&amp;quot;False&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;AutoPlay&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;EMBED pluginspage=&amp;quot;http://www.videolan.org&amp;quot; &lt;br /&gt;
		type=&amp;quot;application/x-vlc-plugin&amp;quot; progid=&amp;quot;VideoLAN.VLCPlugin.2&amp;quot; &lt;br /&gt;
		width=&amp;quot;320&amp;quot; &lt;br /&gt;
		height=&amp;quot;240&amp;quot; &lt;br /&gt;
		autoplay=&amp;quot;yes&amp;quot; &lt;br /&gt;
		loop=&amp;quot;no&amp;quot; &lt;br /&gt;
		target=&amp;quot;$mri&amp;quot; &lt;br /&gt;
		name=&amp;quot;vlc&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;/EMBED&amp;gt;&lt;br /&gt;
&amp;lt;/OBJECT&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Internet Explorer (IE6) responds to the code in the &amp;lt;OBJECT&amp;gt; tag, while Mozilla/Firefox uses the settings inside the &amp;lt;EMBED&amp;gt; tag.&lt;br /&gt;
Replace parameters as appropriate, e.g. $mri with the [[Multimedia Resource Identifier]] of your incoming stream.&lt;br /&gt;
&lt;br /&gt;
== Embedding in dynamically generated HTML code ==&lt;br /&gt;
It is possible to integrate the VLC plugin in dynamically generated HTML code, based on the GWT classes HTML, HTMLPanel and HTMLTable.&lt;br /&gt;
&lt;br /&gt;
The integration of the VLC plugin in dynamically generated HTML code is based on DOM calls and some JavaScript as opposed to GWT API calls. For some reason(s), the GWT API calls do not support the integration of the VLC plugin, although other plugin&#039;s might work just fine. Panel.add() for example is a key method which does not hook the plugin into the DOM as expected by the VLC plugin. This is not necessarily a fault of the VLC plugin, but rather browser-specific differences in Javascript implementation, and how GWT works. Below a snippet which should contain all the necessary DOM calls and JavaScript code which worked for me for Mozilla/Firefox &#039;&#039;and&#039;&#039; IE6:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	{&lt;br /&gt;
&lt;br /&gt;
		streamerCode = &amp;quot;..............&amp;quot;; // Use example code above as a starting point&lt;br /&gt;
&lt;br /&gt;
		// IE6: Wrap VLC plugin in an HTML block element. Needed to work around known &amp;quot;quirk&amp;quot; in IE6&#039;s implementation of innerHTML&lt;br /&gt;
		//	Does not hurt Mozilla/Firefox&lt;br /&gt;
		//	http://support.microsoft.com/kb/276228&lt;br /&gt;
		com.google.gwt.user.client.Element newdiv = DOM.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
		DOM.setInnerHTML(newdiv, streamerCode);&lt;br /&gt;
&lt;br /&gt;
		// Append div block on DOM level. Needed for all browsers; GWT Panel.add() does not work for VLC&lt;br /&gt;
		//	Mozilla Firefox is OK with appendChild() to any GWT Panel; IE6 works only if appended to RootPanel&lt;br /&gt;
		DOM.appendChild(RootPanel.get(&amp;quot;browserElementInHTMLCode&amp;quot;).getElement(), newdiv);&lt;br /&gt;
		&lt;br /&gt;
		// Set width and height in VLC&#039;s style. Needed and has effect for IE6. Alternatively, this could probably be accomplised through setting the style of the VLC plugin as well.&lt;br /&gt;
		//	Solution found here: http://forum.videolan.org/viewtopic.php?f=16&amp;amp;t=33736&amp;amp;p=104306&amp;amp;hilit=innerHTML#p104306&lt;br /&gt;
		//	Bindings for different browsers explained here: http://www.permadi.com/tutorial/flashGetObject/ &lt;br /&gt;
		vlcSetWidth(&amp;quot;vlc&amp;quot;, &amp;quot;320&amp;quot;);&lt;br /&gt;
		vlcSetHeight(&amp;quot;vlc&amp;quot;, &amp;quot;160&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * set width of VLC plugin &lt;br /&gt;
	 * &lt;br /&gt;
	 * @param width&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcSetWidth(String targetId, String width) /*-{&lt;br /&gt;
		$doc[targetId].style.width=width;&lt;br /&gt;
	}-*/;&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * set height of VLC plugin&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param height&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcSetHeight(String targetId, String height) /*-{&lt;br /&gt;
		$doc[targetId].style.height=height;&lt;br /&gt;
	}-*/;&lt;br /&gt;
&lt;br /&gt;
}		&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that it might not be possible to overlay controls on top of streaming video, as the VLC plugin might directly write to the video engine, depending on the target platform. This is the case with Windows XP, for example.&lt;br /&gt;
&lt;br /&gt;
== User interaction ==&lt;br /&gt;
The VLC plugin has a Javascript API which allows the implementation of user interactions like Play or Pause on the web application level. The plug-in can be called through Javascript as described in the [[ActiveX/HTML]] article. GWT/Java wrappers for these calls are not available (yet). Below a couple of examples.&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Integrate_with_Google_Web_Toolkit&amp;diff=10192</id>
		<title>VLC HowTo/Integrate with Google Web Toolkit</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Integrate_with_Google_Web_Toolkit&amp;diff=10192"/>
		<updated>2007-11-09T19:53:47Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: /* Embedding in dynamically generated HTML code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GWT =&lt;br /&gt;
VLC can be integrated in Google Web Toolkit (GWT) web applications. The easiest way is to embed the VLC browser plugin in your web application. This also ensures that no question arises whether your web application is derivative work or not, as a clean separation between the web application and VLC exists. Alternatively, a build of VLC can be integrated in a web app, using applicable bindings. This article discusses integration based on the VLC plugin. There are two levels of integration:&lt;br /&gt;
* Static integration in the main HTML file (MyProject.html as generated by GWT/applicationCreator)&lt;br /&gt;
* Dynamic integration in HTML code, which is generated at web application runtime&lt;br /&gt;
(In any case, remember that VLC treats the browser plugin for Firefox/Mozilla only as an installation option. You might have to go back and install this option and also point out in your documentation that this option needs to be installed if users run your web application with Mozilla/Firefox.)&lt;br /&gt;
&lt;br /&gt;
== Static integration in MyProject.html ==&lt;br /&gt;
Static integration is straightforward and based on methods described in two separate articles:&lt;br /&gt;
* Mozilla/Firefox plug-in: http://wiki.videolan.org/Documentation:Play_HowTo/Advanced_Use_of_VLC#Use_the_mozilla_plugin&lt;br /&gt;
* ActiceX Control: [[ActiveX/HTML]] &lt;br /&gt;
Following the description in the [[ActiveX/HTML]] article, you can include some code based on the following snippet in your main HTML file (MyProject.html):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;OBJECT classid=&amp;quot;clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921&amp;quot; &lt;br /&gt;
	codebase=&amp;quot;http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab&amp;quot; &lt;br /&gt;
	width=&amp;quot;320&amp;quot; &lt;br /&gt;
	height=&amp;quot;240&amp;quot; &lt;br /&gt;
	id=&amp;quot;vlc&amp;quot; events=&amp;quot;True&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;Src&amp;quot; value=&amp;quot;$mri&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;ShowDisplay&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;AutoLoop&amp;quot; value=&amp;quot;False&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;AutoPlay&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;EMBED pluginspage=&amp;quot;http://www.videolan.org&amp;quot; &lt;br /&gt;
		type=&amp;quot;application/x-vlc-plugin&amp;quot; progid=&amp;quot;VideoLAN.VLCPlugin.2&amp;quot; &lt;br /&gt;
		width=&amp;quot;320&amp;quot; &lt;br /&gt;
		height=&amp;quot;240&amp;quot; &lt;br /&gt;
		autoplay=&amp;quot;yes&amp;quot; &lt;br /&gt;
		loop=&amp;quot;no&amp;quot; &lt;br /&gt;
		target=&amp;quot;$mri&amp;quot; &lt;br /&gt;
		name=&amp;quot;vlc&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;/EMBED&amp;gt;&lt;br /&gt;
&amp;lt;/OBJECT&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Internet Explorer (IE6) responds to the code in the &amp;lt;OBJECT&amp;gt; tag, while Mozilla/Firefox uses the settings inside the &amp;lt;EMBED&amp;gt; tag.&lt;br /&gt;
Replace parameters as appropriate, e.g. $mri with the [[Multimedia Resource Identifier]] of your incoming stream.&lt;br /&gt;
&lt;br /&gt;
== Embedding in dynamically generated HTML code ==&lt;br /&gt;
It is possible to integrate the VLC plugin in dynamically generated HTML code, based on the GWT classes HTML, HTMLPanel and HTMLTable.&lt;br /&gt;
&lt;br /&gt;
The integration of the VLC plugin in dynamically generated HTML code is based on DOM calls and some JavaScript as opposed to GWT API calls. For some reason(s), the GWT API calls do not support the integration of the VLC plugin, although other plugin&#039;s might work just fine. Panel.add() for example is a key method which does not hook the plugin into the DOM as expected by the VLC plugin. This is not necessarily a fault of the VLC plugin, but rather browser-specific differences in Javascript implementation, and how GWT works. Below a snippet which should contain all the necessary DOM calls and JavaScript code which worked for me for Mozilla/Firefox &#039;&#039;and&#039;&#039; IE6:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	{&lt;br /&gt;
&lt;br /&gt;
		streamerCode = &amp;quot;..............&amp;quot;; // Use example code above as a starting point&lt;br /&gt;
&lt;br /&gt;
		// IE6: Wrap VLC plugin in an HTML block element. Needed to work around known &amp;quot;quirk&amp;quot; in IE6&#039;s implementation of innerHTML&lt;br /&gt;
		//	Does not hurt Mozilla/Firefox&lt;br /&gt;
		//	http://support.microsoft.com/kb/276228&lt;br /&gt;
		com.google.gwt.user.client.Element newdiv = DOM.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
		DOM.setInnerHTML(newdiv, streamerCode);&lt;br /&gt;
&lt;br /&gt;
		// Append div block on DOM level. Needed for all browsers; GWT Panel.add() does not work for VLC&lt;br /&gt;
		//	Mozilla Firefox is OK with appendChild() to any GWT Panel; IE6 works only if appended to RootPanel&lt;br /&gt;
		DOM.appendChild(RootPanel.get(&amp;quot;browserElementInHTMLCode&amp;quot;).getElement(), newdiv);&lt;br /&gt;
		&lt;br /&gt;
		// Set width and height in VLC&#039;s style. Needed and has effect for IE6. Alternatively, this could probably be accomplised through setting the style of the VLC plugin as well.&lt;br /&gt;
		//	Solution found here: http://forum.videolan.org/viewtopic.php?f=16&amp;amp;t=33736&amp;amp;p=104306&amp;amp;hilit=innerHTML#p104306&lt;br /&gt;
		//	Bindings for different browsers explained here: http://www.permadi.com/tutorial/flashGetObject/ &lt;br /&gt;
		vlcSetWidth(&amp;quot;vlc&amp;quot;, &amp;quot;320&amp;quot;);&lt;br /&gt;
		vlcSetHeight(&amp;quot;vlc&amp;quot;, &amp;quot;160&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * set width of VLC plugin &lt;br /&gt;
	 * &lt;br /&gt;
	 * @param width&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcSetWidth(String targetId, String width) /*-{&lt;br /&gt;
		$doc[targetId].style.width=width;&lt;br /&gt;
	}-*/;&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * set height of VLC plugin&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param height&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcSetHeight(String targetId, String height) /*-{&lt;br /&gt;
		$doc[targetId].style.height=height;&lt;br /&gt;
	}-*/;&lt;br /&gt;
&lt;br /&gt;
}		&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that it might not be possible to overlay controls on top of streaming video, as the VLC plugin might directly write to the video engine, depending on the target platform. This is the case with Windows XP, for example.&lt;br /&gt;
&lt;br /&gt;
== User interaction ==&lt;br /&gt;
The VLC plugin has a Javascript API which allows the implementation of user interactions like Play or Pause on the web application level. The plug-in can be called through Javascript as described in the [[ActiveX/HTML]] article. GWT/Java wrappers for these calls are not available (yet). It does not make a difference whether the plugin is integrated on the static or dynamic level; a handle to the VLC plugin is obtained through the RootPanel method RootPanel get(java.lang.String id) which returns the browser element that embeds the VLC plugin. Code must be added to the HTML code to create a browser element with an ID which can be captured by the RootPanel mathod get(java.lang.String id), e.g. as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td id=&amp;quot;browserElementInHTMLCode&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Integrate_with_Google_Web_Toolkit&amp;diff=10190</id>
		<title>VLC HowTo/Integrate with Google Web Toolkit</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Integrate_with_Google_Web_Toolkit&amp;diff=10190"/>
		<updated>2007-11-09T07:18:57Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: /* Embedding in dynamically generated HTML code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GWT =&lt;br /&gt;
VLC can be integrated in Google Web Toolkit (GWT) web applications. The easiest way is to embed the VLC browser plugin in your web application. This also ensures that no question arises whether your web application is derivative work or not, as a clean separation between the web application and VLC exists. Alternatively, a build of VLC can be integrated in a web app, using applicable bindings. This article discusses integration based on the VLC plugin. There are two levels of integration:&lt;br /&gt;
* Static integration in the main HTML file (MyProject.html as generated by GWT/applicationCreator)&lt;br /&gt;
* Dynamic integration in HTML code, which is generated at web application runtime&lt;br /&gt;
(In any case, remember that VLC treats the browser plugin for Firefox/Mozilla only as an installation option. You might have to go back and install this option and also point out in your documentation that this option needs to be installed if users run your web application with Mozilla/Firefox.)&lt;br /&gt;
&lt;br /&gt;
== Static integration in MyProject.html ==&lt;br /&gt;
Static integration is straightforward and based on methods described in two separate articles:&lt;br /&gt;
* Mozilla/Firefox plug-in: http://wiki.videolan.org/Documentation:Play_HowTo/Advanced_Use_of_VLC#Use_the_mozilla_plugin&lt;br /&gt;
* ActiceX Control: [[ActiveX/HTML]] &lt;br /&gt;
Following the description in the [[ActiveX/HTML]] article, you can include some code based on the following snippet in your main HTML file (MyProject.html):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;OBJECT classid=&amp;quot;clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921&amp;quot; &lt;br /&gt;
	codebase=&amp;quot;http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab&amp;quot; &lt;br /&gt;
	width=&amp;quot;320&amp;quot; &lt;br /&gt;
	height=&amp;quot;240&amp;quot; &lt;br /&gt;
	id=&amp;quot;vlc&amp;quot; events=&amp;quot;True&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;Src&amp;quot; value=&amp;quot;$mri&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;ShowDisplay&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;AutoLoop&amp;quot; value=&amp;quot;False&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;AutoPlay&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;EMBED pluginspage=&amp;quot;http://www.videolan.org&amp;quot; &lt;br /&gt;
		type=&amp;quot;application/x-vlc-plugin&amp;quot; progid=&amp;quot;VideoLAN.VLCPlugin.2&amp;quot; &lt;br /&gt;
		width=&amp;quot;320&amp;quot; &lt;br /&gt;
		height=&amp;quot;240&amp;quot; &lt;br /&gt;
		autoplay=&amp;quot;yes&amp;quot; &lt;br /&gt;
		loop=&amp;quot;no&amp;quot; &lt;br /&gt;
		target=&amp;quot;$mri&amp;quot; &lt;br /&gt;
		name=&amp;quot;vlc&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;/EMBED&amp;gt;&lt;br /&gt;
&amp;lt;/OBJECT&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Internet Explorer (IE6) responds to the code in the &amp;lt;OBJECT&amp;gt; tag, while Mozilla/Firefox uses the settings inside the &amp;lt;EMBED&amp;gt; tag.&lt;br /&gt;
Replace parameters as appropriate, e.g. $mri with the [[Multimedia Resource Identifier]] of your incoming stream.&lt;br /&gt;
&lt;br /&gt;
== Embedding in dynamically generated HTML code ==&lt;br /&gt;
It is possible to integrate the VLC plugin in dynamically generated HTML code, based on the GWT classes HTML, HTMLPanel and HTMLTable.&lt;br /&gt;
&lt;br /&gt;
The integration of the VLC plugin in dynamically generated HTML code is based on DOM calls and some JavaScript as opposed to GWT API calls. For some reason(s), the GWT API calls do not support the integration of the VLC plugin, although other plugin&#039;s might work just fine. Panel.add() for example is a key method which does not hook the plugin into the DOM as expected by the VLC plugin. This is not necessarily a fault of the VLC plugin, but rather browser-specific differences in Javascript implementation, and how GWT works. Below a snippet which should contain all the necessary DOM calls and JavaScript code which worked for me for Mozilla/Firefox &#039;&#039;and&#039;&#039; IE6:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	{&lt;br /&gt;
&lt;br /&gt;
		streamerCode = &amp;quot;..............&amp;quot;; // Use example code above as a starting point&lt;br /&gt;
&lt;br /&gt;
		// IE6: Wrap VLC plugin in an HTML block element. Needed to work around known &amp;quot;quirk&amp;quot; in IE6&#039;s implementation of innerHTML&lt;br /&gt;
		//	Does not hurt Mozilla/Firefox&lt;br /&gt;
		//	http://support.microsoft.com/kb/276228&lt;br /&gt;
		com.google.gwt.user.client.Element newdiv = DOM.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
		DOM.setInnerHTML(newdiv, streamerCode);&lt;br /&gt;
&lt;br /&gt;
		// Append div block on DOM level. Needed for all browsers; GWT Panel.add() does not work for VLC&lt;br /&gt;
		//	Mozilla Firefox is OK with appendChild() to any GWT Panel; IE6 works only if appended to RootPanel&lt;br /&gt;
		DOM.appendChild(RootPanel.get(&amp;quot;browserElementInHTMLCode&amp;quot;).getElement(), newdiv);&lt;br /&gt;
		&lt;br /&gt;
		// Set width and height in VLC&#039;s style. Needed and has effect for IE6. Alternatively, this could probably be accomplised through setting the style of the VLC plugin as well.&lt;br /&gt;
		//	Solution found here: http://forum.videolan.org/viewtopic.php?f=16&amp;amp;t=33736&amp;amp;p=104306&amp;amp;hilit=innerHTML#p104306&lt;br /&gt;
		vlcSetWidth(DOM.getElementById(&amp;quot;vlc&amp;quot;), &amp;quot;320&amp;quot;); // &amp;quot;vlc&amp;quot; is the element ID as defined in streamerCode to identify the plugin. &lt;br /&gt;
		vlcSetHeight(DOM.getElementById(&amp;quot;vlc&amp;quot;), &amp;quot;160&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * set width of VLC plugin.&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param width&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcSetWidth(com.google.gwt.user.client.Element target, String width) /*-{&lt;br /&gt;
		target.style.width=width;&lt;br /&gt;
	}-*/;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * set height of VLC plugin.&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param height&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcSetHeight(com.google.gwt.user.client.Element target, String height) /*-{&lt;br /&gt;
		target.style.height=height;&lt;br /&gt;
	}-*/;&lt;br /&gt;
&lt;br /&gt;
}		&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that it might not be possible to overlay controls on top of streaming video, as the VLC plugin might directly write to the video engine, depending on the target platform. This is the case with Windows XP, for example.&lt;br /&gt;
&lt;br /&gt;
== User interaction ==&lt;br /&gt;
The VLC plugin has a Javascript API which allows the implementation of user interactions like Play or Pause on the web application level. The plug-in can be called through Javascript as described in the [[ActiveX/HTML]] article. GWT/Java wrappers for these calls are not available (yet). It does not make a difference whether the plugin is integrated on the static or dynamic level; a handle to the VLC plugin is obtained through the RootPanel method RootPanel get(java.lang.String id) which returns the browser element that embeds the VLC plugin. Code must be added to the HTML code to create a browser element with an ID which can be captured by the RootPanel mathod get(java.lang.String id), e.g. as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td id=&amp;quot;browserElementInHTMLCode&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Integrate_with_Google_Web_Toolkit&amp;diff=10189</id>
		<title>VLC HowTo/Integrate with Google Web Toolkit</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Integrate_with_Google_Web_Toolkit&amp;diff=10189"/>
		<updated>2007-11-09T07:18:15Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: /* Embedding in dynamically generated HTML code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GWT =&lt;br /&gt;
VLC can be integrated in Google Web Toolkit (GWT) web applications. The easiest way is to embed the VLC browser plugin in your web application. This also ensures that no question arises whether your web application is derivative work or not, as a clean separation between the web application and VLC exists. Alternatively, a build of VLC can be integrated in a web app, using applicable bindings. This article discusses integration based on the VLC plugin. There are two levels of integration:&lt;br /&gt;
* Static integration in the main HTML file (MyProject.html as generated by GWT/applicationCreator)&lt;br /&gt;
* Dynamic integration in HTML code, which is generated at web application runtime&lt;br /&gt;
(In any case, remember that VLC treats the browser plugin for Firefox/Mozilla only as an installation option. You might have to go back and install this option and also point out in your documentation that this option needs to be installed if users run your web application with Mozilla/Firefox.)&lt;br /&gt;
&lt;br /&gt;
== Static integration in MyProject.html ==&lt;br /&gt;
Static integration is straightforward and based on methods described in two separate articles:&lt;br /&gt;
* Mozilla/Firefox plug-in: http://wiki.videolan.org/Documentation:Play_HowTo/Advanced_Use_of_VLC#Use_the_mozilla_plugin&lt;br /&gt;
* ActiceX Control: [[ActiveX/HTML]] &lt;br /&gt;
Following the description in the [[ActiveX/HTML]] article, you can include some code based on the following snippet in your main HTML file (MyProject.html):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;OBJECT classid=&amp;quot;clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921&amp;quot; &lt;br /&gt;
	codebase=&amp;quot;http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab&amp;quot; &lt;br /&gt;
	width=&amp;quot;320&amp;quot; &lt;br /&gt;
	height=&amp;quot;240&amp;quot; &lt;br /&gt;
	id=&amp;quot;vlc&amp;quot; events=&amp;quot;True&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;Src&amp;quot; value=&amp;quot;$mri&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;ShowDisplay&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;AutoLoop&amp;quot; value=&amp;quot;False&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;AutoPlay&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;EMBED pluginspage=&amp;quot;http://www.videolan.org&amp;quot; &lt;br /&gt;
		type=&amp;quot;application/x-vlc-plugin&amp;quot; progid=&amp;quot;VideoLAN.VLCPlugin.2&amp;quot; &lt;br /&gt;
		width=&amp;quot;320&amp;quot; &lt;br /&gt;
		height=&amp;quot;240&amp;quot; &lt;br /&gt;
		autoplay=&amp;quot;yes&amp;quot; &lt;br /&gt;
		loop=&amp;quot;no&amp;quot; &lt;br /&gt;
		target=&amp;quot;$mri&amp;quot; &lt;br /&gt;
		name=&amp;quot;vlc&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;/EMBED&amp;gt;&lt;br /&gt;
&amp;lt;/OBJECT&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Internet Explorer (IE6) responds to the code in the &amp;lt;OBJECT&amp;gt; tag, while Mozilla/Firefox uses the settings inside the &amp;lt;EMBED&amp;gt; tag.&lt;br /&gt;
Replace parameters as appropriate, e.g. $mri with the [[Multimedia Resource Identifier]] of your incoming stream.&lt;br /&gt;
&lt;br /&gt;
== Embedding in dynamically generated HTML code ==&lt;br /&gt;
It is possible to integrate the VLC plugin in dynamically generated HTML code, based on the GWT classes HTML, HTMLPanel and HTMLTable.&lt;br /&gt;
&lt;br /&gt;
The integration of the VLC plugin in dynamically generated HTML code is based on DOM calls and some JavaScript as opposed to GWT API calls. For some reason(s), the GWT API calls do not support the integration of the VLC plugin, although other plugin&#039;s might work just fine. Panel.add() for example is a key method which does not hook the plugin into the DOM as expected by the VLC plugin. This is not necessarily a fault of the VLC plugin, but rather browser-specific differences in Javascript implementation, and how GWT works. Below a snippet which should contain all the necessary DOM calls and JavaScript code which worked for me for Mozilla/Firefox &#039;&#039;and&#039;&#039; IE6:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	{&lt;br /&gt;
&lt;br /&gt;
		streamerCode = &amp;quot;..............&amp;quot;; // Use example code above as a starting point&lt;br /&gt;
&lt;br /&gt;
		// IE6: Wrap VLC plugin in an HTML block element. Needed to work around known &amp;quot;quirk&amp;quot; in IE6&#039;s implementation of innerHTML&lt;br /&gt;
		//	Does not hurt Mozilla/Firefox&lt;br /&gt;
		//	http://support.microsoft.com/kb/276228&lt;br /&gt;
		com.google.gwt.user.client.Element newdiv = DOM.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
		DOM.setInnerHTML(newdiv, streamerCode);&lt;br /&gt;
&lt;br /&gt;
		// Append div block on DOM level. Needed for all browsers; GWT Panel.add() does not work for VLC&lt;br /&gt;
		//	Mozilla Firefox is OK with appendChild() to any GWT Panel; IE6 works only if appended to RootPanel&lt;br /&gt;
		DOM.appendChild(RootPanel.get(&amp;quot;browserElementInHTMLCode&amp;quot;).getElement(), newdiv);&lt;br /&gt;
		&lt;br /&gt;
		// Set width and height in VLC&#039;s style. Needed and has effect for IE6. Alternatively, this could probably be accomplised through setting the style of the VLC plugin as well.&lt;br /&gt;
		//	Solution found here: http://forum.videolan.org/viewtopic.php?f=16&amp;amp;t=33736&amp;amp;p=104306&amp;amp;hilit=innerHTML#p104306&lt;br /&gt;
		vlcSetWidth(DOM.getElementById(&amp;quot;vlc&amp;quot;), &amp;quot;320&amp;quot;); // &amp;quot;vlc&amp;quot; is the element ID as defined in streamerCode to identify the plugin. &lt;br /&gt;
		vlcSetHeight(DOM.getElementById(&amp;quot;vlc&amp;quot;), &amp;quot;160&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * set width of VLC plugin.&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param width&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcSetWidth(com.google.gwt.user.client.Element target, String width) /*-{&lt;br /&gt;
		target.style.width=width;&lt;br /&gt;
	}-*/;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * set height of VLC plugin.&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param height&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcSetHeight(com.google.gwt.user.client.Element target, String height) /*-{&lt;br /&gt;
		target.style.height=height;&lt;br /&gt;
	}-*/;&lt;br /&gt;
&lt;br /&gt;
}		&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that it might not be possible to overlay controls on top of streaming video, as the VLC plugin might directly write to the video engine, depending on the target platform. This is the case for Windows XP, for example.&lt;br /&gt;
&lt;br /&gt;
== User interaction ==&lt;br /&gt;
The VLC plugin has a Javascript API which allows the implementation of user interactions like Play or Pause on the web application level. The plug-in can be called through Javascript as described in the [[ActiveX/HTML]] article. GWT/Java wrappers for these calls are not available (yet). It does not make a difference whether the plugin is integrated on the static or dynamic level; a handle to the VLC plugin is obtained through the RootPanel method RootPanel get(java.lang.String id) which returns the browser element that embeds the VLC plugin. Code must be added to the HTML code to create a browser element with an ID which can be captured by the RootPanel mathod get(java.lang.String id), e.g. as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td id=&amp;quot;browserElementInHTMLCode&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Integrate_with_Google_Web_Toolkit&amp;diff=10188</id>
		<title>VLC HowTo/Integrate with Google Web Toolkit</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Integrate_with_Google_Web_Toolkit&amp;diff=10188"/>
		<updated>2007-11-09T07:14:01Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: /* Embedding in dynamically generated HTML code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GWT =&lt;br /&gt;
VLC can be integrated in Google Web Toolkit (GWT) web applications. The easiest way is to embed the VLC browser plugin in your web application. This also ensures that no question arises whether your web application is derivative work or not, as a clean separation between the web application and VLC exists. Alternatively, a build of VLC can be integrated in a web app, using applicable bindings. This article discusses integration based on the VLC plugin. There are two levels of integration:&lt;br /&gt;
* Static integration in the main HTML file (MyProject.html as generated by GWT/applicationCreator)&lt;br /&gt;
* Dynamic integration in HTML code, which is generated at web application runtime&lt;br /&gt;
(In any case, remember that VLC treats the browser plugin for Firefox/Mozilla only as an installation option. You might have to go back and install this option and also point out in your documentation that this option needs to be installed if users run your web application with Mozilla/Firefox.)&lt;br /&gt;
&lt;br /&gt;
== Static integration in MyProject.html ==&lt;br /&gt;
Static integration is straightforward and based on methods described in two separate articles:&lt;br /&gt;
* Mozilla/Firefox plug-in: http://wiki.videolan.org/Documentation:Play_HowTo/Advanced_Use_of_VLC#Use_the_mozilla_plugin&lt;br /&gt;
* ActiceX Control: [[ActiveX/HTML]] &lt;br /&gt;
Following the description in the [[ActiveX/HTML]] article, you can include some code based on the following snippet in your main HTML file (MyProject.html):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;OBJECT classid=&amp;quot;clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921&amp;quot; &lt;br /&gt;
	codebase=&amp;quot;http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab&amp;quot; &lt;br /&gt;
	width=&amp;quot;320&amp;quot; &lt;br /&gt;
	height=&amp;quot;240&amp;quot; &lt;br /&gt;
	id=&amp;quot;vlc&amp;quot; events=&amp;quot;True&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;Src&amp;quot; value=&amp;quot;$mri&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;ShowDisplay&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;AutoLoop&amp;quot; value=&amp;quot;False&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;AutoPlay&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;EMBED pluginspage=&amp;quot;http://www.videolan.org&amp;quot; &lt;br /&gt;
		type=&amp;quot;application/x-vlc-plugin&amp;quot; progid=&amp;quot;VideoLAN.VLCPlugin.2&amp;quot; &lt;br /&gt;
		width=&amp;quot;320&amp;quot; &lt;br /&gt;
		height=&amp;quot;240&amp;quot; &lt;br /&gt;
		autoplay=&amp;quot;yes&amp;quot; &lt;br /&gt;
		loop=&amp;quot;no&amp;quot; &lt;br /&gt;
		target=&amp;quot;$mri&amp;quot; &lt;br /&gt;
		name=&amp;quot;vlc&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;/EMBED&amp;gt;&lt;br /&gt;
&amp;lt;/OBJECT&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Internet Explorer (IE6) responds to the code in the &amp;lt;OBJECT&amp;gt; tag, while Mozilla/Firefox uses the settings inside the &amp;lt;EMBED&amp;gt; tag.&lt;br /&gt;
Replace parameters as appropriate, e.g. $mri with the [[Multimedia Resource Identifier]] of your incoming stream.&lt;br /&gt;
&lt;br /&gt;
== Embedding in dynamically generated HTML code ==&lt;br /&gt;
It is possible to integrate the VLC plugin in dynamically created HTML code, as the GWT class HTML offers. &lt;br /&gt;
&lt;br /&gt;
The integration of the VLC plugin in dynamically generated HTML code is based on DOM calls and some JavaScript as opposed to GWT API calls. For some reason(s), the GWT API calls (Panel.add() for example) do not support the integration of the VLC plugin, although other plugin&#039;s might work just fine. This is not necessarily a fault of the VLC plugin, but rather browser-specific differences in Javascript implementation. Below a snippet which should contain all the necessary DOM calls and JavaScript code which worked for me for Mozilla/Firefox &#039;&#039;and&#039;&#039; IE6:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	{&lt;br /&gt;
&lt;br /&gt;
		streamerCode = &amp;quot;..............&amp;quot;; // Use example code above as a starting point&lt;br /&gt;
&lt;br /&gt;
		// IE6: Wrap VLC plugin in an HTML block element. Needed to work around known &amp;quot;quirk&amp;quot; in IE6&#039;s implementation of innerHTML&lt;br /&gt;
		//	Does not hurt Mozilla/Firefox&lt;br /&gt;
		//	http://support.microsoft.com/kb/276228&lt;br /&gt;
		com.google.gwt.user.client.Element newdiv = DOM.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
		DOM.setInnerHTML(newdiv, streamerCode);&lt;br /&gt;
&lt;br /&gt;
		// Append div block on DOM level. Needed for all browsers; GWT Panel.add() does not work for VLC&lt;br /&gt;
		//	Mozilla Firefox is OK with appendChild() to any GWT Panel; IE6 works only if appended to RootPanel&lt;br /&gt;
		DOM.appendChild(RootPanel.get(&amp;quot;browserElementInHTMLCode&amp;quot;).getElement(), newdiv);&lt;br /&gt;
		&lt;br /&gt;
		// Set width and height in VLC&#039;s style. Needed and has effect for IE6. Alternatively, this could probably be accomplised through setting the style of the VLC plugin as well.&lt;br /&gt;
		//	Solution found here: http://forum.videolan.org/viewtopic.php?f=16&amp;amp;t=33736&amp;amp;p=104306&amp;amp;hilit=innerHTML#p104306&lt;br /&gt;
		vlcSetWidth(DOM.getElementById(&amp;quot;vlc&amp;quot;), &amp;quot;320&amp;quot;); // &amp;quot;vlc&amp;quot; is the element ID as defined in streamerCode to identify the plugin. &lt;br /&gt;
		vlcSetHeight(DOM.getElementById(&amp;quot;vlc&amp;quot;), &amp;quot;160&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * set width of VLC plugin.&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param width&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcSetWidth(com.google.gwt.user.client.Element target, String width) /*-{&lt;br /&gt;
		target.style.width=width;&lt;br /&gt;
	}-*/;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * set height of VLC plugin.&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param height&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcSetHeight(com.google.gwt.user.client.Element target, String height) /*-{&lt;br /&gt;
		target.style.height=height;&lt;br /&gt;
	}-*/;&lt;br /&gt;
&lt;br /&gt;
}		&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that it might not be possible to overlay controls on top of streaming video, as the VLC plugin might directly write to the video engine, depending on the target platform. This is the case for Windows XP, for example.&lt;br /&gt;
&lt;br /&gt;
== User interaction ==&lt;br /&gt;
The VLC plugin has a Javascript API which allows the implementation of user interactions like Play or Pause on the web application level. The plug-in can be called through Javascript as described in the [[ActiveX/HTML]] article. GWT/Java wrappers for these calls are not available (yet). It does not make a difference whether the plugin is integrated on the static or dynamic level; a handle to the VLC plugin is obtained through the RootPanel method RootPanel get(java.lang.String id) which returns the browser element that embeds the VLC plugin. Code must be added to the HTML code to create a browser element with an ID which can be captured by the RootPanel mathod get(java.lang.String id), e.g. as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td id=&amp;quot;browserElementInHTMLCode&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Integrate_with_Google_Web_Toolkit&amp;diff=10187</id>
		<title>VLC HowTo/Integrate with Google Web Toolkit</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Integrate_with_Google_Web_Toolkit&amp;diff=10187"/>
		<updated>2007-11-09T07:13:32Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: /* Static integration in MyProject.html */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GWT =&lt;br /&gt;
VLC can be integrated in Google Web Toolkit (GWT) web applications. The easiest way is to embed the VLC browser plugin in your web application. This also ensures that no question arises whether your web application is derivative work or not, as a clean separation between the web application and VLC exists. Alternatively, a build of VLC can be integrated in a web app, using applicable bindings. This article discusses integration based on the VLC plugin. There are two levels of integration:&lt;br /&gt;
* Static integration in the main HTML file (MyProject.html as generated by GWT/applicationCreator)&lt;br /&gt;
* Dynamic integration in HTML code, which is generated at web application runtime&lt;br /&gt;
(In any case, remember that VLC treats the browser plugin for Firefox/Mozilla only as an installation option. You might have to go back and install this option and also point out in your documentation that this option needs to be installed if users run your web application with Mozilla/Firefox.)&lt;br /&gt;
&lt;br /&gt;
== Static integration in MyProject.html ==&lt;br /&gt;
Static integration is straightforward and based on methods described in two separate articles:&lt;br /&gt;
* Mozilla/Firefox plug-in: http://wiki.videolan.org/Documentation:Play_HowTo/Advanced_Use_of_VLC#Use_the_mozilla_plugin&lt;br /&gt;
* ActiceX Control: [[ActiveX/HTML]] &lt;br /&gt;
Following the description in the [[ActiveX/HTML]] article, you can include some code based on the following snippet in your main HTML file (MyProject.html):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;OBJECT classid=&amp;quot;clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921&amp;quot; &lt;br /&gt;
	codebase=&amp;quot;http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab&amp;quot; &lt;br /&gt;
	width=&amp;quot;320&amp;quot; &lt;br /&gt;
	height=&amp;quot;240&amp;quot; &lt;br /&gt;
	id=&amp;quot;vlc&amp;quot; events=&amp;quot;True&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;Src&amp;quot; value=&amp;quot;$mri&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;ShowDisplay&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;AutoLoop&amp;quot; value=&amp;quot;False&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;AutoPlay&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;EMBED pluginspage=&amp;quot;http://www.videolan.org&amp;quot; &lt;br /&gt;
		type=&amp;quot;application/x-vlc-plugin&amp;quot; progid=&amp;quot;VideoLAN.VLCPlugin.2&amp;quot; &lt;br /&gt;
		width=&amp;quot;320&amp;quot; &lt;br /&gt;
		height=&amp;quot;240&amp;quot; &lt;br /&gt;
		autoplay=&amp;quot;yes&amp;quot; &lt;br /&gt;
		loop=&amp;quot;no&amp;quot; &lt;br /&gt;
		target=&amp;quot;$mri&amp;quot; &lt;br /&gt;
		name=&amp;quot;vlc&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;/EMBED&amp;gt;&lt;br /&gt;
&amp;lt;/OBJECT&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Internet Explorer (IE6) responds to the code in the &amp;lt;OBJECT&amp;gt; tag, while Mozilla/Firefox uses the settings inside the &amp;lt;EMBED&amp;gt; tag.&lt;br /&gt;
Replace parameters as appropriate, e.g. $mri with the [[Multimedia Resource Identifier]] of your incoming stream.&lt;br /&gt;
&lt;br /&gt;
== Embedding in dynamically generated HTML code ==&lt;br /&gt;
It is possible to integrate the VLC plugin in dynamically created HTML code, as the GWT class HTML offers. &lt;br /&gt;
&lt;br /&gt;
The integration of the VLC plugin in dynamically generated HTML code is based on DOM calls and some JavaScript as opposed to GWT API calls. For some reason(s), the GWT API calls (Panel.add() for example) do not support the integration of the VLC plug-in, although other plugin&#039;s might work just fine. This is not necessarily a fault of the VLC plugin, but rather browser-specific differences in Javascript implementation. Below a snippet which should contain all the necessary DOM calls and JavaScript code which worked for me for Mozilla/Firefox &#039;&#039;and&#039;&#039; IE6:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	{&lt;br /&gt;
&lt;br /&gt;
		streamerCode = &amp;quot;..............&amp;quot;; // Use example code above as a starting point&lt;br /&gt;
&lt;br /&gt;
		// IE6: Wrap VLC plugin in an HTML block element. Needed to work around known &amp;quot;quirk&amp;quot; in IE6&#039;s implementation of innerHTML&lt;br /&gt;
		//	Does not hurt Mozilla/Firefox&lt;br /&gt;
		//	http://support.microsoft.com/kb/276228&lt;br /&gt;
		com.google.gwt.user.client.Element newdiv = DOM.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
		DOM.setInnerHTML(newdiv, streamerCode);&lt;br /&gt;
&lt;br /&gt;
		// Append div block on DOM level. Needed for all browsers; GWT Panel.add() does not work for VLC&lt;br /&gt;
		//	Mozilla Firefox is OK with appendChild() to any GWT Panel; IE6 works only if appended to RootPanel&lt;br /&gt;
		DOM.appendChild(RootPanel.get(&amp;quot;browserElementInHTMLCode&amp;quot;).getElement(), newdiv);&lt;br /&gt;
		&lt;br /&gt;
		// Set width and height in VLC&#039;s style. Needed and has effect for IE6. Alternatively, this could probably be accomplised through setting the style of the VLC plugin as well.&lt;br /&gt;
		//	Solution found here: http://forum.videolan.org/viewtopic.php?f=16&amp;amp;t=33736&amp;amp;p=104306&amp;amp;hilit=innerHTML#p104306&lt;br /&gt;
		vlcSetWidth(DOM.getElementById(&amp;quot;vlc&amp;quot;), &amp;quot;320&amp;quot;); // &amp;quot;vlc&amp;quot; is the element ID as defined in streamerCode to identify the plugin. &lt;br /&gt;
		vlcSetHeight(DOM.getElementById(&amp;quot;vlc&amp;quot;), &amp;quot;160&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * set width of VLC plugin.&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param width&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcSetWidth(com.google.gwt.user.client.Element target, String width) /*-{&lt;br /&gt;
		target.style.width=width;&lt;br /&gt;
	}-*/;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * set height of VLC plugin.&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param height&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcSetHeight(com.google.gwt.user.client.Element target, String height) /*-{&lt;br /&gt;
		target.style.height=height;&lt;br /&gt;
	}-*/;&lt;br /&gt;
&lt;br /&gt;
}		&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that it might not be possible to overlay controls on top of streaming video, as the VLC plugin might directly write to the video engine, depending on the target platform. This is the case for Windows XP, for example.&lt;br /&gt;
&lt;br /&gt;
== User interaction ==&lt;br /&gt;
The VLC plugin has a Javascript API which allows the implementation of user interactions like Play or Pause on the web application level. The plug-in can be called through Javascript as described in the [[ActiveX/HTML]] article. GWT/Java wrappers for these calls are not available (yet). It does not make a difference whether the plugin is integrated on the static or dynamic level; a handle to the VLC plugin is obtained through the RootPanel method RootPanel get(java.lang.String id) which returns the browser element that embeds the VLC plugin. Code must be added to the HTML code to create a browser element with an ID which can be captured by the RootPanel mathod get(java.lang.String id), e.g. as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td id=&amp;quot;browserElementInHTMLCode&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Integrate_with_Google_Web_Toolkit&amp;diff=10186</id>
		<title>VLC HowTo/Integrate with Google Web Toolkit</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Integrate_with_Google_Web_Toolkit&amp;diff=10186"/>
		<updated>2007-11-09T07:12:51Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: /* Static integration in MyProject.html */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GWT =&lt;br /&gt;
VLC can be integrated in Google Web Toolkit (GWT) web applications. The easiest way is to embed the VLC browser plugin in your web application. This also ensures that no question arises whether your web application is derivative work or not, as a clean separation between the web application and VLC exists. Alternatively, a build of VLC can be integrated in a web app, using applicable bindings. This article discusses integration based on the VLC plugin. There are two levels of integration:&lt;br /&gt;
* Static integration in the main HTML file (MyProject.html as generated by GWT/applicationCreator)&lt;br /&gt;
* Dynamic integration in HTML code, which is generated at web application runtime&lt;br /&gt;
(In any case, remember that VLC treats the browser plugin for Firefox/Mozilla only as an installation option. You might have to go back and install this option and also point out in your documentation that this option needs to be installed if users run your web application with Mozilla/Firefox.)&lt;br /&gt;
&lt;br /&gt;
== Static integration in MyProject.html ==&lt;br /&gt;
Static integration is straightforward and based on methods described in two separate articles:&lt;br /&gt;
* Mozilla/Firefox plug-in: http://wiki.videolan.org/Documentation:Play_HowTo/Advanced_Use_of_VLC#Use_the_mozilla_plugin&lt;br /&gt;
* ActiceX Control: [[ActiveX/HTML]] &lt;br /&gt;
Following the description in the [[ActiveX/HTML]] article, you can include some code based on the following snippet in your main HTML file (MyProject.HTML):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;OBJECT classid=&amp;quot;clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921&amp;quot; &lt;br /&gt;
	codebase=&amp;quot;http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab&amp;quot; &lt;br /&gt;
	width=&amp;quot;320&amp;quot; &lt;br /&gt;
	height=&amp;quot;240&amp;quot; &lt;br /&gt;
	id=&amp;quot;vlc&amp;quot; events=&amp;quot;True&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;Src&amp;quot; value=&amp;quot;$mri&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;ShowDisplay&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;AutoLoop&amp;quot; value=&amp;quot;False&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;AutoPlay&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;EMBED pluginspage=&amp;quot;http://www.videolan.org&amp;quot; &lt;br /&gt;
		type=&amp;quot;application/x-vlc-plugin&amp;quot; progid=&amp;quot;VideoLAN.VLCPlugin.2&amp;quot; &lt;br /&gt;
		width=&amp;quot;320&amp;quot; &lt;br /&gt;
		height=&amp;quot;240&amp;quot; &lt;br /&gt;
		autoplay=&amp;quot;yes&amp;quot; &lt;br /&gt;
		loop=&amp;quot;no&amp;quot; &lt;br /&gt;
		target=&amp;quot;$mri&amp;quot; &lt;br /&gt;
		name=&amp;quot;vlc&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;/EMBED&amp;gt;&lt;br /&gt;
&amp;lt;/OBJECT&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Internet Explorer (IE6) responds to the code in the &amp;lt;OBJECT&amp;gt; tag, while Mozilla/Firefox uses the settings inside the &amp;lt;EMBED&amp;gt; tag.&lt;br /&gt;
Replace parameters as appropriate, e.g. $mri with the [[Multimedia Resource Identifier]] of your incoming stream.&lt;br /&gt;
&lt;br /&gt;
== Embedding in dynamically generated HTML code ==&lt;br /&gt;
It is possible to integrate the VLC plugin in dynamically created HTML code, as the GWT class HTML offers. &lt;br /&gt;
&lt;br /&gt;
The integration of the VLC plugin in dynamically generated HTML code is based on DOM calls and some JavaScript as opposed to GWT API calls. For some reason(s), the GWT API calls (Panel.add() for example) do not support the integration of the VLC plug-in, although other plugin&#039;s might work just fine. This is not necessarily a fault of the VLC plugin, but rather browser-specific differences in Javascript implementation. Below a snippet which should contain all the necessary DOM calls and JavaScript code which worked for me for Mozilla/Firefox &#039;&#039;and&#039;&#039; IE6:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	{&lt;br /&gt;
&lt;br /&gt;
		streamerCode = &amp;quot;..............&amp;quot;; // Use example code above as a starting point&lt;br /&gt;
&lt;br /&gt;
		// IE6: Wrap VLC plugin in an HTML block element. Needed to work around known &amp;quot;quirk&amp;quot; in IE6&#039;s implementation of innerHTML&lt;br /&gt;
		//	Does not hurt Mozilla/Firefox&lt;br /&gt;
		//	http://support.microsoft.com/kb/276228&lt;br /&gt;
		com.google.gwt.user.client.Element newdiv = DOM.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
		DOM.setInnerHTML(newdiv, streamerCode);&lt;br /&gt;
&lt;br /&gt;
		// Append div block on DOM level. Needed for all browsers; GWT Panel.add() does not work for VLC&lt;br /&gt;
		//	Mozilla Firefox is OK with appendChild() to any GWT Panel; IE6 works only if appended to RootPanel&lt;br /&gt;
		DOM.appendChild(RootPanel.get(&amp;quot;browserElementInHTMLCode&amp;quot;).getElement(), newdiv);&lt;br /&gt;
		&lt;br /&gt;
		// Set width and height in VLC&#039;s style. Needed and has effect for IE6. Alternatively, this could probably be accomplised through setting the style of the VLC plugin as well.&lt;br /&gt;
		//	Solution found here: http://forum.videolan.org/viewtopic.php?f=16&amp;amp;t=33736&amp;amp;p=104306&amp;amp;hilit=innerHTML#p104306&lt;br /&gt;
		vlcSetWidth(DOM.getElementById(&amp;quot;vlc&amp;quot;), &amp;quot;320&amp;quot;); // &amp;quot;vlc&amp;quot; is the element ID as defined in streamerCode to identify the plugin. &lt;br /&gt;
		vlcSetHeight(DOM.getElementById(&amp;quot;vlc&amp;quot;), &amp;quot;160&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * set width of VLC plugin.&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param width&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcSetWidth(com.google.gwt.user.client.Element target, String width) /*-{&lt;br /&gt;
		target.style.width=width;&lt;br /&gt;
	}-*/;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * set height of VLC plugin.&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param height&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcSetHeight(com.google.gwt.user.client.Element target, String height) /*-{&lt;br /&gt;
		target.style.height=height;&lt;br /&gt;
	}-*/;&lt;br /&gt;
&lt;br /&gt;
}		&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that it might not be possible to overlay controls on top of streaming video, as the VLC plugin might directly write to the video engine, depending on the target platform. This is the case for Windows XP, for example.&lt;br /&gt;
&lt;br /&gt;
== User interaction ==&lt;br /&gt;
The VLC plugin has a Javascript API which allows the implementation of user interactions like Play or Pause on the web application level. The plug-in can be called through Javascript as described in the [[ActiveX/HTML]] article. GWT/Java wrappers for these calls are not available (yet). It does not make a difference whether the plugin is integrated on the static or dynamic level; a handle to the VLC plugin is obtained through the RootPanel method RootPanel get(java.lang.String id) which returns the browser element that embeds the VLC plugin. Code must be added to the HTML code to create a browser element with an ID which can be captured by the RootPanel mathod get(java.lang.String id), e.g. as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td id=&amp;quot;browserElementInHTMLCode&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Integrate_with_Google_Web_Toolkit&amp;diff=10185</id>
		<title>VLC HowTo/Integrate with Google Web Toolkit</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Integrate_with_Google_Web_Toolkit&amp;diff=10185"/>
		<updated>2007-11-09T07:11:09Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: /* GWT */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GWT =&lt;br /&gt;
VLC can be integrated in Google Web Toolkit (GWT) web applications. The easiest way is to embed the VLC browser plugin in your web application. This also ensures that no question arises whether your web application is derivative work or not, as a clean separation between the web application and VLC exists. Alternatively, a build of VLC can be integrated in a web app, using applicable bindings. This article discusses integration based on the VLC plugin. There are two levels of integration:&lt;br /&gt;
* Static integration in the main HTML file (MyProject.html as generated by GWT/applicationCreator)&lt;br /&gt;
* Dynamic integration in HTML code, which is generated at web application runtime&lt;br /&gt;
(In any case, remember that VLC treats the browser plugin for Firefox/Mozilla only as an installation option. You might have to go back and install this option and also point out in your documentation that this option needs to be installed if users run your web application with Mozilla/Firefox.)&lt;br /&gt;
&lt;br /&gt;
== Static integration in MyProject.html ==&lt;br /&gt;
Static integration is straightforward and is based on methods described in two separate articles:&lt;br /&gt;
* Mozilla/Firefox plug-in: http://wiki.videolan.org/Documentation:Play_HowTo/Advanced_Use_of_VLC#Use_the_mozilla_plugin&lt;br /&gt;
* ActiceX Control: [[ActiveX/HTML]] &lt;br /&gt;
Following the description in the [[ActiveX/HTML]] article, you can include some code based on the following snippet in your main HTML file (MyProject.HTML):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;OBJECT classid=&amp;quot;clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921&amp;quot; &lt;br /&gt;
	codebase=&amp;quot;http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab&amp;quot; &lt;br /&gt;
	width=&amp;quot;320&amp;quot; &lt;br /&gt;
	height=&amp;quot;240&amp;quot; &lt;br /&gt;
	id=&amp;quot;vlc&amp;quot; events=&amp;quot;True&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;Src&amp;quot; value=&amp;quot;$mri&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;ShowDisplay&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;AutoLoop&amp;quot; value=&amp;quot;False&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;AutoPlay&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;EMBED pluginspage=&amp;quot;http://www.videolan.org&amp;quot; &lt;br /&gt;
		type=&amp;quot;application/x-vlc-plugin&amp;quot; progid=&amp;quot;VideoLAN.VLCPlugin.2&amp;quot; &lt;br /&gt;
		width=&amp;quot;320&amp;quot; &lt;br /&gt;
		height=&amp;quot;240&amp;quot; &lt;br /&gt;
		autoplay=&amp;quot;yes&amp;quot; &lt;br /&gt;
		loop=&amp;quot;no&amp;quot; &lt;br /&gt;
		target=&amp;quot;$mri&amp;quot; &lt;br /&gt;
		name=&amp;quot;vlc&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;/EMBED&amp;gt;&lt;br /&gt;
&amp;lt;/OBJECT&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Internet Explorer (IE6) responds to the code in the &amp;lt;OBJECT&amp;gt; tag, while Mozilla/Firefox uses the settings inside the &amp;lt;EMBED&amp;gt; tag.&lt;br /&gt;
Replace parameters as appropriate, e.g. $mri with the [[Multimedia Resource Identifier]] of your incoming stream. &lt;br /&gt;
&lt;br /&gt;
== Embedding in dynamically generated HTML code ==&lt;br /&gt;
It is possible to integrate the VLC plugin in dynamically created HTML code, as the GWT class HTML offers. &lt;br /&gt;
&lt;br /&gt;
The integration of the VLC plugin in dynamically generated HTML code is based on DOM calls and some JavaScript as opposed to GWT API calls. For some reason(s), the GWT API calls (Panel.add() for example) do not support the integration of the VLC plug-in, although other plugin&#039;s might work just fine. This is not necessarily a fault of the VLC plugin, but rather browser-specific differences in Javascript implementation. Below a snippet which should contain all the necessary DOM calls and JavaScript code which worked for me for Mozilla/Firefox &#039;&#039;and&#039;&#039; IE6:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	{&lt;br /&gt;
&lt;br /&gt;
		streamerCode = &amp;quot;..............&amp;quot;; // Use example code above as a starting point&lt;br /&gt;
&lt;br /&gt;
		// IE6: Wrap VLC plugin in an HTML block element. Needed to work around known &amp;quot;quirk&amp;quot; in IE6&#039;s implementation of innerHTML&lt;br /&gt;
		//	Does not hurt Mozilla/Firefox&lt;br /&gt;
		//	http://support.microsoft.com/kb/276228&lt;br /&gt;
		com.google.gwt.user.client.Element newdiv = DOM.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
		DOM.setInnerHTML(newdiv, streamerCode);&lt;br /&gt;
&lt;br /&gt;
		// Append div block on DOM level. Needed for all browsers; GWT Panel.add() does not work for VLC&lt;br /&gt;
		//	Mozilla Firefox is OK with appendChild() to any GWT Panel; IE6 works only if appended to RootPanel&lt;br /&gt;
		DOM.appendChild(RootPanel.get(&amp;quot;browserElementInHTMLCode&amp;quot;).getElement(), newdiv);&lt;br /&gt;
		&lt;br /&gt;
		// Set width and height in VLC&#039;s style. Needed and has effect for IE6. Alternatively, this could probably be accomplised through setting the style of the VLC plugin as well.&lt;br /&gt;
		//	Solution found here: http://forum.videolan.org/viewtopic.php?f=16&amp;amp;t=33736&amp;amp;p=104306&amp;amp;hilit=innerHTML#p104306&lt;br /&gt;
		vlcSetWidth(DOM.getElementById(&amp;quot;vlc&amp;quot;), &amp;quot;320&amp;quot;); // &amp;quot;vlc&amp;quot; is the element ID as defined in streamerCode to identify the plugin. &lt;br /&gt;
		vlcSetHeight(DOM.getElementById(&amp;quot;vlc&amp;quot;), &amp;quot;160&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * set width of VLC plugin.&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param width&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcSetWidth(com.google.gwt.user.client.Element target, String width) /*-{&lt;br /&gt;
		target.style.width=width;&lt;br /&gt;
	}-*/;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * set height of VLC plugin.&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param height&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcSetHeight(com.google.gwt.user.client.Element target, String height) /*-{&lt;br /&gt;
		target.style.height=height;&lt;br /&gt;
	}-*/;&lt;br /&gt;
&lt;br /&gt;
}		&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that it might not be possible to overlay controls on top of streaming video, as the VLC plugin might directly write to the video engine, depending on the target platform. This is the case for Windows XP, for example.&lt;br /&gt;
&lt;br /&gt;
== User interaction ==&lt;br /&gt;
The VLC plugin has a Javascript API which allows the implementation of user interactions like Play or Pause on the web application level. The plug-in can be called through Javascript as described in the [[ActiveX/HTML]] article. GWT/Java wrappers for these calls are not available (yet). It does not make a difference whether the plugin is integrated on the static or dynamic level; a handle to the VLC plugin is obtained through the RootPanel method RootPanel get(java.lang.String id) which returns the browser element that embeds the VLC plugin. Code must be added to the HTML code to create a browser element with an ID which can be captured by the RootPanel mathod get(java.lang.String id), e.g. as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td id=&amp;quot;browserElementInHTMLCode&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Integrate_with_Google_Web_Toolkit&amp;diff=10183</id>
		<title>VLC HowTo/Integrate with Google Web Toolkit</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Integrate_with_Google_Web_Toolkit&amp;diff=10183"/>
		<updated>2007-11-08T21:28:14Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: /* GWT */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GWT =&lt;br /&gt;
VLC can be integrated in Google Web Toolkit (GWT) web applications. The easiest way is to embed the VLC browser plugin in your web application. This also ensures that no question arises whether your web application is derivate work or not, as a clean separation between the web application and VLC exists. Alternatively, a build of VLC can be integrated in a web app, using applicable bindings. This article discusses integration based on the VLC plugin. There are two levels of integration:&lt;br /&gt;
* Static integration in the main HTML file (MyProject.html as generated by GWT/applicationCreator)&lt;br /&gt;
* Dynamic integration in HTML code, which is generated at web application runtime&lt;br /&gt;
(In any case, remember that VLC treats the browser plugin for Firefox/Mozilla only as an installation option. You might have to go back and install this option and also point out in your documentation that this option needs to be installed if users run your web application with Mozilla/Firefox.)&lt;br /&gt;
&lt;br /&gt;
== Static integration in MyProject.html ==&lt;br /&gt;
Static integration is straightforward and is based on methods described in two separate articles:&lt;br /&gt;
* Mozilla/Firefox plug-in: http://wiki.videolan.org/Documentation:Play_HowTo/Advanced_Use_of_VLC#Use_the_mozilla_plugin&lt;br /&gt;
* ActiceX Control: [[ActiveX/HTML]] &lt;br /&gt;
Following the description in the [[ActiveX/HTML]] article, you can include some code based on the following snippet in your main HTML file (MyProject.HTML):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;OBJECT classid=&amp;quot;clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921&amp;quot; &lt;br /&gt;
	codebase=&amp;quot;http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab&amp;quot; &lt;br /&gt;
	width=&amp;quot;320&amp;quot; &lt;br /&gt;
	height=&amp;quot;240&amp;quot; &lt;br /&gt;
	id=&amp;quot;vlc&amp;quot; events=&amp;quot;True&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;Src&amp;quot; value=&amp;quot;$mri&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;ShowDisplay&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;AutoLoop&amp;quot; value=&amp;quot;False&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;AutoPlay&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;EMBED pluginspage=&amp;quot;http://www.videolan.org&amp;quot; &lt;br /&gt;
		type=&amp;quot;application/x-vlc-plugin&amp;quot; progid=&amp;quot;VideoLAN.VLCPlugin.2&amp;quot; &lt;br /&gt;
		width=&amp;quot;320&amp;quot; &lt;br /&gt;
		height=&amp;quot;240&amp;quot; &lt;br /&gt;
		autoplay=&amp;quot;yes&amp;quot; &lt;br /&gt;
		loop=&amp;quot;no&amp;quot; &lt;br /&gt;
		target=&amp;quot;$mri&amp;quot; &lt;br /&gt;
		name=&amp;quot;vlc&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;/EMBED&amp;gt;&lt;br /&gt;
&amp;lt;/OBJECT&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Internet Explorer (IE6) responds to the code in the &amp;lt;OBJECT&amp;gt; tag, while Mozilla/Firefox uses the settings inside the &amp;lt;EMBED&amp;gt; tag.&lt;br /&gt;
Replace parameters as appropriate, e.g. $mri with the [[Multimedia Resource Identifier]] of your incoming stream. &lt;br /&gt;
&lt;br /&gt;
== Embedding in dynamically generated HTML code ==&lt;br /&gt;
It is possible to integrate the VLC plugin in dynamically created HTML code, as the GWT class HTML offers. &lt;br /&gt;
&lt;br /&gt;
The integration of the VLC plugin in dynamically generated HTML code is based on DOM calls and some JavaScript as opposed to GWT API calls. For some reason(s), the GWT API calls (Panel.add() for example) do not support the integration of the VLC plug-in, although other plugin&#039;s might work just fine. This is not necessarily a fault of the VLC plugin, but rather browser-specific differences in Javascript implementation. Below a snippet which should contain all the necessary DOM calls and JavaScript code which worked for me for Mozilla/Firefox &#039;&#039;and&#039;&#039; IE6:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	{&lt;br /&gt;
&lt;br /&gt;
		streamerCode = &amp;quot;..............&amp;quot;; // Use example code above as a starting point&lt;br /&gt;
&lt;br /&gt;
		// IE6: Wrap VLC plugin in an HTML block element. Needed to work around known &amp;quot;quirk&amp;quot; in IE6&#039;s implementation of innerHTML&lt;br /&gt;
		//	Does not hurt Mozilla/Firefox&lt;br /&gt;
		//	http://support.microsoft.com/kb/276228&lt;br /&gt;
		com.google.gwt.user.client.Element newdiv = DOM.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
		DOM.setInnerHTML(newdiv, streamerCode);&lt;br /&gt;
&lt;br /&gt;
		// Append div block on DOM level. Needed for all browsers; GWT Panel.add() does not work for VLC&lt;br /&gt;
		//	Mozilla Firefox is OK with appendChild() to any GWT Panel; IE6 works only if appended to RootPanel&lt;br /&gt;
		DOM.appendChild(RootPanel.get(&amp;quot;browserElementInHTMLCode&amp;quot;).getElement(), newdiv);&lt;br /&gt;
		&lt;br /&gt;
		// Set width and height in VLC&#039;s style. Needed and has effect for IE6. Alternatively, this could probably be accomplised through setting the style of the VLC plugin as well.&lt;br /&gt;
		//	Solution found here: http://forum.videolan.org/viewtopic.php?f=16&amp;amp;t=33736&amp;amp;p=104306&amp;amp;hilit=innerHTML#p104306&lt;br /&gt;
		vlcSetWidth(DOM.getElementById(&amp;quot;vlc&amp;quot;), &amp;quot;320&amp;quot;); // &amp;quot;vlc&amp;quot; is the element ID as defined in streamerCode to identify the plugin. &lt;br /&gt;
		vlcSetHeight(DOM.getElementById(&amp;quot;vlc&amp;quot;), &amp;quot;160&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * set width of VLC ActiveX control.&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param width&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcSetWidth(com.google.gwt.user.client.Element target, String width) /*-{&lt;br /&gt;
		target.style.width=width;&lt;br /&gt;
	}-*/;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * set height of VLC ActiveX control.&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param height&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcSetHeight(com.google.gwt.user.client.Element target, String height) /*-{&lt;br /&gt;
		target.style.height=height;&lt;br /&gt;
	}-*/;&lt;br /&gt;
&lt;br /&gt;
}		&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that it might not be possible to superimpose controls over streaming video, as the VLC plugin might directly write to the video adapter, depending on the target platform. This is the case for Windows XP, for example.&lt;br /&gt;
&lt;br /&gt;
== User interaction ==&lt;br /&gt;
The VLC plugin has a Javascript API which allows the implementation of user interactions like Play or Pause on the web application level. The plug-in can be called through Javascript as described in the [[ActiveX/HTML]] article. GWT/Java wrappers for these calls are not available (yet). It does not make a difference whether the plugin is integrated on the static or dynamic level; a handle to the VLC plugin is obtained through the RootPanel method RootPanel get(java.lang.String id) which returns the browser element that embeds the VLC plugin. Code must be added to the HTML code to create a browser element with an ID which can be captured by the RootPanel mathod get(java.lang.String id), e.g. as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td id=&amp;quot;browserElementInHTMLCode&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Integrate_with_Google_Web_Toolkit&amp;diff=10175</id>
		<title>VLC HowTo/Integrate with Google Web Toolkit</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Integrate_with_Google_Web_Toolkit&amp;diff=10175"/>
		<updated>2007-11-07T00:33:47Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: /* Embedding in dynamically generated HTML code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GWT =&lt;br /&gt;
VLC can be integrated in Google Web Toolkit (GWT) web applications. The easiest way is embedding the VLC browser plugin in your web application. There are two levels of integration:&lt;br /&gt;
* Static integration in the main HTML file (MyProject.html)&lt;br /&gt;
* Dynamic integration in HTML code which is generated at web application runtime&lt;br /&gt;
In any case, remember that VLC treats the browser plugin for Firefox/Mozilla only as an installation option. You might have to go back and install this option and also point out in your documentation that this option needs to be installed if users run your web application with Mozilla/Firefox.&lt;br /&gt;
&lt;br /&gt;
== Static integration in MyProject.html ==&lt;br /&gt;
Static integration is straightforward and is based on methods described in separate articles:&lt;br /&gt;
* Mozilla/Firefox plug-in: http://wiki.videolan.org/Documentation:Play_HowTo/Advanced_Use_of_VLC#Use_the_mozilla_plugin&lt;br /&gt;
&lt;br /&gt;
* ActiceX Control: [[ActiveX/HTML]] &lt;br /&gt;
Following the description in the [[ActiveX/HTML]] article, you can include code based on the following snipped in your main HTML file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;OBJECT classid=&amp;quot;clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921&amp;quot; &lt;br /&gt;
	codebase=&amp;quot;http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab&amp;quot; &lt;br /&gt;
	width=&amp;quot;320&amp;quot; &lt;br /&gt;
	height=&amp;quot;240&amp;quot; &lt;br /&gt;
	id=&amp;quot;vlc&amp;quot; events=&amp;quot;True&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;Src&amp;quot; value=&amp;quot;$mri&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;ShowDisplay&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;AutoLoop&amp;quot; value=&amp;quot;False&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;AutoPlay&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;EMBED pluginspage=&amp;quot;http://www.videolan.org&amp;quot; &lt;br /&gt;
		type=&amp;quot;application/x-vlc-plugin&amp;quot; progid=&amp;quot;VideoLAN.VLCPlugin.2&amp;quot; &lt;br /&gt;
		width=&amp;quot;320&amp;quot; &lt;br /&gt;
		height=&amp;quot;240&amp;quot; &lt;br /&gt;
		autoplay=&amp;quot;yes&amp;quot; &lt;br /&gt;
		loop=&amp;quot;no&amp;quot; &lt;br /&gt;
		target=&amp;quot;$mri&amp;quot; &lt;br /&gt;
		name=&amp;quot;vlc&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;/EMBED&amp;gt;&lt;br /&gt;
&amp;lt;/OBJECT&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Internet Explorer (IE6) responds to the code in the &amp;lt;OBJECT&amp;gt; tag, while Mozilla/Firefox uses the settings in the &amp;lt;EMBED&amp;gt; tag.&lt;br /&gt;
Replace parameters as appropriate, e.g. $mri with the [[Multimedia Resource Identifier]] of your incoming stream. &lt;br /&gt;
&lt;br /&gt;
== Embedding in dynamically generated HTML code ==&lt;br /&gt;
It is possible to integrate the VLC plugin in GWT web applications. It&#039;s not pretty though. &lt;br /&gt;
&lt;br /&gt;
The integration of the VLC plug-in in dynamically generated HTML code is through DOM calls and some JavaScript. For some reason(s), GWT API calls do not work for integrating the VLC plug-in. Below a snipplet which should contain all the necessary DOM calls and JavaScript code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	{&lt;br /&gt;
&lt;br /&gt;
		streamerCode = &amp;quot;..............&amp;quot;; // Use example code above as a starting point&lt;br /&gt;
&lt;br /&gt;
		// IE6: Wrap VLC plugin in an HTML block element. Needed to work around known &amp;quot;quirk&amp;quot; in IE6&#039;s implementation of innerHTML&lt;br /&gt;
		//	Does not hurt Mozilla/Firefox&lt;br /&gt;
		//	http://support.microsoft.com/kb/276228&lt;br /&gt;
		com.google.gwt.user.client.Element newdiv = DOM.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
		DOM.setInnerHTML(newdiv, streamerCode);&lt;br /&gt;
&lt;br /&gt;
		// Append div block on DOM level. Needed for all browsers; GWT Panel.add() does not work for VLC&lt;br /&gt;
		//	Mozilla Firefox is OK with appendChild() to any GWT Panel; IE6 works only if appended to RootPanel&lt;br /&gt;
		DOM.appendChild(RootPanel.get(&amp;quot;browserElementInHTMLCode&amp;quot;).getElement(), newdiv);&lt;br /&gt;
		&lt;br /&gt;
		// Set width and height in VLC&#039;s style. Needed and has effect for IE6&lt;br /&gt;
		//	Solution found here: http://forum.videolan.org/viewtopic.php?f=16&amp;amp;t=33736&amp;amp;p=104306&amp;amp;hilit=innerHTML#p104306&lt;br /&gt;
		vlcSetWidth(&amp;quot;320&amp;quot;);&lt;br /&gt;
		vlcSetHeight(&amp;quot;160&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * set width of VLC ActiveX control. Assumes that VLC plug-in is id&#039;ed &amp;quot;vlc&amp;quot; in HTML code&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param width&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcSetWidth(String width) /*-{&lt;br /&gt;
		$doc.all.vlc.style.width=width;&lt;br /&gt;
	}-*/;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * set height of VLC ActiveX control. Assumes that VLC plug-in is id&#039;ed &amp;quot;vlc&amp;quot; in HTML code&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param height&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcSetHeight(String height) /*-{&lt;br /&gt;
		$doc.all.vlc.style.height=height;&lt;br /&gt;
	}-*/;&lt;br /&gt;
&lt;br /&gt;
}		&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that it might not be possible to superimpose controls over streaming video, as the VLC plugin might directly write to the video adapter, depending on the target platform. This is the case for Windows XP, for example.&lt;br /&gt;
&lt;br /&gt;
== User interaction ==&lt;br /&gt;
The VLC plugin has a Javascript API which allows the implementation of user interactions like Play or Pause on the web application level. The plugin can be called through Javascript as described in the [[ActiveX/HTML]] article. GWT/Java wrappers for these calls are not available (yet). It does not make a difference whether the plugin is integrated on the static or dynamic level; a handle to the VLC plugin is obtained through the RootPanel method RootPanel get(java.lang.String id) which returns the browser element that embeds the VLC plugin. Code must be added to the HTML code to create a browser element with an ID which can be captured by the RootPanel mathod get(java.lang.String id), e.g. as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td id=&amp;quot;browserElementInHTMLCode&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;OBJECT &lt;br /&gt;
      ... &lt;br /&gt;
&amp;lt;/OBJECT&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Integrate_with_Google_Web_Toolkit&amp;diff=10174</id>
		<title>VLC HowTo/Integrate with Google Web Toolkit</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Integrate_with_Google_Web_Toolkit&amp;diff=10174"/>
		<updated>2007-11-07T00:33:11Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: /* Embedding in dynamically generated HTML code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GWT =&lt;br /&gt;
VLC can be integrated in Google Web Toolkit (GWT) web applications. The easiest way is embedding the VLC browser plugin in your web application. There are two levels of integration:&lt;br /&gt;
* Static integration in the main HTML file (MyProject.html)&lt;br /&gt;
* Dynamic integration in HTML code which is generated at web application runtime&lt;br /&gt;
In any case, remember that VLC treats the browser plugin for Firefox/Mozilla only as an installation option. You might have to go back and install this option and also point out in your documentation that this option needs to be installed if users run your web application with Mozilla/Firefox.&lt;br /&gt;
&lt;br /&gt;
== Static integration in MyProject.html ==&lt;br /&gt;
Static integration is straightforward and is based on methods described in separate articles:&lt;br /&gt;
* Mozilla/Firefox plug-in: http://wiki.videolan.org/Documentation:Play_HowTo/Advanced_Use_of_VLC#Use_the_mozilla_plugin&lt;br /&gt;
&lt;br /&gt;
* ActiceX Control: [[ActiveX/HTML]] &lt;br /&gt;
Following the description in the [[ActiveX/HTML]] article, you can include code based on the following snipped in your main HTML file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;OBJECT classid=&amp;quot;clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921&amp;quot; &lt;br /&gt;
	codebase=&amp;quot;http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab&amp;quot; &lt;br /&gt;
	width=&amp;quot;320&amp;quot; &lt;br /&gt;
	height=&amp;quot;240&amp;quot; &lt;br /&gt;
	id=&amp;quot;vlc&amp;quot; events=&amp;quot;True&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;Src&amp;quot; value=&amp;quot;$mri&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;ShowDisplay&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;AutoLoop&amp;quot; value=&amp;quot;False&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;AutoPlay&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;EMBED pluginspage=&amp;quot;http://www.videolan.org&amp;quot; &lt;br /&gt;
		type=&amp;quot;application/x-vlc-plugin&amp;quot; progid=&amp;quot;VideoLAN.VLCPlugin.2&amp;quot; &lt;br /&gt;
		width=&amp;quot;320&amp;quot; &lt;br /&gt;
		height=&amp;quot;240&amp;quot; &lt;br /&gt;
		autoplay=&amp;quot;yes&amp;quot; &lt;br /&gt;
		loop=&amp;quot;no&amp;quot; &lt;br /&gt;
		target=&amp;quot;$mri&amp;quot; &lt;br /&gt;
		name=&amp;quot;vlc&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;/EMBED&amp;gt;&lt;br /&gt;
&amp;lt;/OBJECT&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Internet Explorer (IE6) responds to the code in the &amp;lt;OBJECT&amp;gt; tag, while Mozilla/Firefox uses the settings in the &amp;lt;EMBED&amp;gt; tag.&lt;br /&gt;
Replace parameters as appropriate, e.g. $mri with the [[Multimedia Resource Identifier]] of your incoming stream. &lt;br /&gt;
&lt;br /&gt;
== Embedding in dynamically generated HTML code ==&lt;br /&gt;
It is possible to integrate the VLC plugin in GWT web applications. It&#039;s not pretty though. &lt;br /&gt;
&lt;br /&gt;
The integration of the VLC plug-in in dynamically generated HTML code is through DOM calls and some JavaScript. For some reason(s), GWT API calls do not work for integrating the VLC plug-in. Below a snipplet which should contain all the necessary DOM calls and JavaScript code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	{&lt;br /&gt;
&lt;br /&gt;
		streamerCode = &amp;quot;..............&amp;quot;; // Use example code above as a starting point&lt;br /&gt;
&lt;br /&gt;
		// IE6: Wrap VLC plugin in an HTML block element. Needed to work around known &amp;quot;quirk&amp;quot; in IE6&#039;s implementation of innerHTML&lt;br /&gt;
		//	Does not hurt Mozilla/Firefox&lt;br /&gt;
		//	http://support.microsoft.com/kb/276228&lt;br /&gt;
		com.google.gwt.user.client.Element newdiv = DOM.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
		DOM.setInnerHTML(newdiv, streamerCode);&lt;br /&gt;
&lt;br /&gt;
		// Append div block on DOM level. Needed for all browsers; GWT Panel.add() does not work for VLC&lt;br /&gt;
		//	Mozilla Firefox is OK with appendChild() to any GWT Panel; IE6 works only if appended to RootPanel&lt;br /&gt;
		DOM.appendChild(RootPanel.get(&amp;quot;browserElementInHTMLCode&amp;quot;).getElement(), newdiv);&lt;br /&gt;
		&lt;br /&gt;
		// Set width and height in VLC&#039;s style. Needed and has effect for IE6&lt;br /&gt;
		//	Solution found here: http://forum.videolan.org/viewtopic.php?f=16&amp;amp;t=33736&amp;amp;p=104306&amp;amp;hilit=innerHTML#p104306&lt;br /&gt;
		vlcSetWidth(&amp;quot;320&amp;quot;);&lt;br /&gt;
		vlcSetHeight(&amp;quot;160&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * set width of VLC ActiveX control. Assumes that VLC plugin is id&#039;ed &amp;quot;vlc&amp;quot; in HTML code&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param width&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcSetWidth(String width) /*-{&lt;br /&gt;
		$doc.all.vlc.style.width=width;&lt;br /&gt;
	}-*/;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * set height of VLC ActiveX control. Assumes that VLC plugin is id&#039;ed &amp;quot;vlc&amp;quot; in HTML code&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param height&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcSetHeight(String height) /*-{&lt;br /&gt;
		$doc.all.vlc.style.height=height;&lt;br /&gt;
	}-*/;&lt;br /&gt;
&lt;br /&gt;
}		&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that it might not be possible to superimpose controls over streaming video, as the VLC plugin might directly write to the video adapter, depending on the target platform. This is the case for Windows XP, for example.&lt;br /&gt;
&lt;br /&gt;
== User interaction ==&lt;br /&gt;
The VLC plugin has a Javascript API which allows the implementation of user interactions like Play or Pause on the web application level. The plugin can be called through Javascript as described in the [[ActiveX/HTML]] article. GWT/Java wrappers for these calls are not available (yet). It does not make a difference whether the plugin is integrated on the static or dynamic level; a handle to the VLC plugin is obtained through the RootPanel method RootPanel get(java.lang.String id) which returns the browser element that embeds the VLC plugin. Code must be added to the HTML code to create a browser element with an ID which can be captured by the RootPanel mathod get(java.lang.String id), e.g. as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td id=&amp;quot;browserElementInHTMLCode&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;OBJECT &lt;br /&gt;
      ... &lt;br /&gt;
&amp;lt;/OBJECT&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Integrate_with_Google_Web_Toolkit&amp;diff=10173</id>
		<title>VLC HowTo/Integrate with Google Web Toolkit</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Integrate_with_Google_Web_Toolkit&amp;diff=10173"/>
		<updated>2007-11-07T00:31:14Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: /* User interaction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GWT =&lt;br /&gt;
VLC can be integrated in Google Web Toolkit (GWT) web applications. The easiest way is embedding the VLC browser plugin in your web application. There are two levels of integration:&lt;br /&gt;
* Static integration in the main HTML file (MyProject.html)&lt;br /&gt;
* Dynamic integration in HTML code which is generated at web application runtime&lt;br /&gt;
In any case, remember that VLC treats the browser plugin for Firefox/Mozilla only as an installation option. You might have to go back and install this option and also point out in your documentation that this option needs to be installed if users run your web application with Mozilla/Firefox.&lt;br /&gt;
&lt;br /&gt;
== Static integration in MyProject.html ==&lt;br /&gt;
Static integration is straightforward and is based on methods described in separate articles:&lt;br /&gt;
* Mozilla/Firefox plug-in: http://wiki.videolan.org/Documentation:Play_HowTo/Advanced_Use_of_VLC#Use_the_mozilla_plugin&lt;br /&gt;
&lt;br /&gt;
* ActiceX Control: [[ActiveX/HTML]] &lt;br /&gt;
Following the description in the [[ActiveX/HTML]] article, you can include code based on the following snipped in your main HTML file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;OBJECT classid=&amp;quot;clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921&amp;quot; &lt;br /&gt;
	codebase=&amp;quot;http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab&amp;quot; &lt;br /&gt;
	width=&amp;quot;320&amp;quot; &lt;br /&gt;
	height=&amp;quot;240&amp;quot; &lt;br /&gt;
	id=&amp;quot;vlc&amp;quot; events=&amp;quot;True&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;Src&amp;quot; value=&amp;quot;$mri&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;ShowDisplay&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;AutoLoop&amp;quot; value=&amp;quot;False&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;AutoPlay&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;EMBED pluginspage=&amp;quot;http://www.videolan.org&amp;quot; &lt;br /&gt;
		type=&amp;quot;application/x-vlc-plugin&amp;quot; progid=&amp;quot;VideoLAN.VLCPlugin.2&amp;quot; &lt;br /&gt;
		width=&amp;quot;320&amp;quot; &lt;br /&gt;
		height=&amp;quot;240&amp;quot; &lt;br /&gt;
		autoplay=&amp;quot;yes&amp;quot; &lt;br /&gt;
		loop=&amp;quot;no&amp;quot; &lt;br /&gt;
		target=&amp;quot;$mri&amp;quot; &lt;br /&gt;
		name=&amp;quot;vlc&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;/EMBED&amp;gt;&lt;br /&gt;
&amp;lt;/OBJECT&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Internet Explorer (IE6) responds to the code in the &amp;lt;OBJECT&amp;gt; tag, while Mozilla/Firefox uses the settings in the &amp;lt;EMBED&amp;gt; tag.&lt;br /&gt;
Replace parameters as appropriate, e.g. $mri with the [[Multimedia Resource Identifier]] of your incoming stream. &lt;br /&gt;
&lt;br /&gt;
== Embedding in dynamically generated HTML code ==&lt;br /&gt;
It is possible to integrate the VLC plugin in GWT web applications. It&#039;s not pretty though. &lt;br /&gt;
&lt;br /&gt;
The integration of the VLC plug-in in dynamically generated HTML code is through DOM calls and some JavaScript. For some reason(s), GWT API calls do not work for integrating the VLC plug-in. Below a snipplet which should contain all the necessary DOM calls and JavaScript code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	{&lt;br /&gt;
&lt;br /&gt;
		streamerCode = &amp;quot;..............&amp;quot;; // Use example code above as a starting point&lt;br /&gt;
&lt;br /&gt;
		// IE6: Wrap VLC plugin in an HTML block element. Needed to work around known &amp;quot;quirk&amp;quot; in IE6&#039;s implementation of innerHTML&lt;br /&gt;
		//	Does not hurt Mozilla/Firefox&lt;br /&gt;
		//	http://support.microsoft.com/kb/276228&lt;br /&gt;
		com.google.gwt.user.client.Element newdiv = DOM.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
		DOM.setInnerHTML(newdiv, streamerCode);&lt;br /&gt;
&lt;br /&gt;
		// Append div block on DOM level. Needed for all browsers; GWT Panel.add() does not work for VLC&lt;br /&gt;
		//	Mozilla Firefox is OK with appendChild() to any GWT Panel; IE6 works only if appended to RootPanel&lt;br /&gt;
		DOM.appendChild(RootPanel.get(&amp;quot;browserElementInHTMLCode&amp;quot;).getElement(), newdiv);&lt;br /&gt;
		&lt;br /&gt;
		// Set width and height in VLC&#039;s style. Needed and has effect for IE6&lt;br /&gt;
		//	Solution found here: http://forum.videolan.org/viewtopic.php?f=16&amp;amp;t=33736&amp;amp;p=104306&amp;amp;hilit=innerHTML#p104306&lt;br /&gt;
		vlcSetWidth(&amp;quot;320&amp;quot;);&lt;br /&gt;
		vlcSetHeight(&amp;quot;160&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * set width of VLC ActiveX control&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param width&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcSetWidth(String width) /*-{&lt;br /&gt;
		$doc.all.vlc.style.width=width;&lt;br /&gt;
	}-*/;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * set height of VLC ActiveX control&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param height&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcSetHeight(String height) /*-{&lt;br /&gt;
	$doc.all.vlc.style.height=height;&lt;br /&gt;
}-*/;&lt;br /&gt;
&lt;br /&gt;
}		&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that it might not be possible to superimpose controls over streaming video, as the VLC plugin might directly write to the video adapter, depending on the target platform. This is the case for Windows XP, for example.&lt;br /&gt;
&lt;br /&gt;
== User interaction ==&lt;br /&gt;
The VLC plugin has a Javascript API which allows the implementation of user interactions like Play or Pause on the web application level. The plugin can be called through Javascript as described in the [[ActiveX/HTML]] article. GWT/Java wrappers for these calls are not available (yet). It does not make a difference whether the plugin is integrated on the static or dynamic level; a handle to the VLC plugin is obtained through the RootPanel method RootPanel get(java.lang.String id) which returns the browser element that embeds the VLC plugin. Code must be added to the HTML code to create a browser element with an ID which can be captured by the RootPanel mathod get(java.lang.String id), e.g. as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td id=&amp;quot;browserElementInHTMLCode&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;OBJECT &lt;br /&gt;
      ... &lt;br /&gt;
&amp;lt;/OBJECT&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Integrate_with_Google_Web_Toolkit&amp;diff=10172</id>
		<title>VLC HowTo/Integrate with Google Web Toolkit</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Integrate_with_Google_Web_Toolkit&amp;diff=10172"/>
		<updated>2007-11-07T00:29:57Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: /* Embedding in dynamically generated HTML code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GWT =&lt;br /&gt;
VLC can be integrated in Google Web Toolkit (GWT) web applications. The easiest way is embedding the VLC browser plugin in your web application. There are two levels of integration:&lt;br /&gt;
* Static integration in the main HTML file (MyProject.html)&lt;br /&gt;
* Dynamic integration in HTML code which is generated at web application runtime&lt;br /&gt;
In any case, remember that VLC treats the browser plugin for Firefox/Mozilla only as an installation option. You might have to go back and install this option and also point out in your documentation that this option needs to be installed if users run your web application with Mozilla/Firefox.&lt;br /&gt;
&lt;br /&gt;
== Static integration in MyProject.html ==&lt;br /&gt;
Static integration is straightforward and is based on methods described in separate articles:&lt;br /&gt;
* Mozilla/Firefox plug-in: http://wiki.videolan.org/Documentation:Play_HowTo/Advanced_Use_of_VLC#Use_the_mozilla_plugin&lt;br /&gt;
&lt;br /&gt;
* ActiceX Control: [[ActiveX/HTML]] &lt;br /&gt;
Following the description in the [[ActiveX/HTML]] article, you can include code based on the following snipped in your main HTML file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;OBJECT classid=&amp;quot;clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921&amp;quot; &lt;br /&gt;
	codebase=&amp;quot;http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab&amp;quot; &lt;br /&gt;
	width=&amp;quot;320&amp;quot; &lt;br /&gt;
	height=&amp;quot;240&amp;quot; &lt;br /&gt;
	id=&amp;quot;vlc&amp;quot; events=&amp;quot;True&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;Src&amp;quot; value=&amp;quot;$mri&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;ShowDisplay&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;AutoLoop&amp;quot; value=&amp;quot;False&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;AutoPlay&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;EMBED pluginspage=&amp;quot;http://www.videolan.org&amp;quot; &lt;br /&gt;
		type=&amp;quot;application/x-vlc-plugin&amp;quot; progid=&amp;quot;VideoLAN.VLCPlugin.2&amp;quot; &lt;br /&gt;
		width=&amp;quot;320&amp;quot; &lt;br /&gt;
		height=&amp;quot;240&amp;quot; &lt;br /&gt;
		autoplay=&amp;quot;yes&amp;quot; &lt;br /&gt;
		loop=&amp;quot;no&amp;quot; &lt;br /&gt;
		target=&amp;quot;$mri&amp;quot; &lt;br /&gt;
		name=&amp;quot;vlc&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;/EMBED&amp;gt;&lt;br /&gt;
&amp;lt;/OBJECT&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Internet Explorer (IE6) responds to the code in the &amp;lt;OBJECT&amp;gt; tag, while Mozilla/Firefox uses the settings in the &amp;lt;EMBED&amp;gt; tag.&lt;br /&gt;
Replace parameters as appropriate, e.g. $mri with the [[Multimedia Resource Identifier]] of your incoming stream. &lt;br /&gt;
&lt;br /&gt;
== Embedding in dynamically generated HTML code ==&lt;br /&gt;
It is possible to integrate the VLC plugin in GWT web applications. It&#039;s not pretty though. &lt;br /&gt;
&lt;br /&gt;
The integration of the VLC plug-in in dynamically generated HTML code is through DOM calls and some JavaScript. For some reason(s), GWT API calls do not work for integrating the VLC plug-in. Below a snipplet which should contain all the necessary DOM calls and JavaScript code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	{&lt;br /&gt;
&lt;br /&gt;
		streamerCode = &amp;quot;..............&amp;quot;; // Use example code above as a starting point&lt;br /&gt;
&lt;br /&gt;
		// IE6: Wrap VLC plugin in an HTML block element. Needed to work around known &amp;quot;quirk&amp;quot; in IE6&#039;s implementation of innerHTML&lt;br /&gt;
		//	Does not hurt Mozilla/Firefox&lt;br /&gt;
		//	http://support.microsoft.com/kb/276228&lt;br /&gt;
		com.google.gwt.user.client.Element newdiv = DOM.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
		DOM.setInnerHTML(newdiv, streamerCode);&lt;br /&gt;
&lt;br /&gt;
		// Append div block on DOM level. Needed for all browsers; GWT Panel.add() does not work for VLC&lt;br /&gt;
		//	Mozilla Firefox is OK with appendChild() to any GWT Panel; IE6 works only if appended to RootPanel&lt;br /&gt;
		DOM.appendChild(RootPanel.get(&amp;quot;browserElementInHTMLCode&amp;quot;).getElement(), newdiv);&lt;br /&gt;
		&lt;br /&gt;
		// Set width and height in VLC&#039;s style. Needed and has effect for IE6&lt;br /&gt;
		//	Solution found here: http://forum.videolan.org/viewtopic.php?f=16&amp;amp;t=33736&amp;amp;p=104306&amp;amp;hilit=innerHTML#p104306&lt;br /&gt;
		vlcSetWidth(&amp;quot;320&amp;quot;);&lt;br /&gt;
		vlcSetHeight(&amp;quot;160&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * set width of VLC ActiveX control&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param width&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcSetWidth(String width) /*-{&lt;br /&gt;
		$doc.all.vlc.style.width=width;&lt;br /&gt;
	}-*/;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * set height of VLC ActiveX control&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param height&lt;br /&gt;
	 */&lt;br /&gt;
	native static void vlcSetHeight(String height) /*-{&lt;br /&gt;
	$doc.all.vlc.style.height=height;&lt;br /&gt;
}-*/;&lt;br /&gt;
&lt;br /&gt;
}		&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that it might not be possible to superimpose controls over streaming video, as the VLC plugin might directly write to the video adapter, depending on the target platform. This is the case for Windows XP, for example.&lt;br /&gt;
&lt;br /&gt;
== User interaction ==&lt;br /&gt;
The VLC plugin has a Javascript API which allows the implementation of user interactions like Play or Pause on the web application level. The plugin can be called through Javascript as described in the [[ActiveX/HTML]] article. GWT/Java wrappers for these calls are not available (yet). It does not make a difference whether the plugin is integrated on the static or dynamic level; a handle to the VLC plugin is obtained through the RootPanel method RootPanel get(java.lang.String id) which returns the browser element that embeds the VLC plugin. Code must be added to the HTML code to create a browser element with an ID which can be captured by the RootPanel mathod get(java.lang.String id), e.g. as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td id=&amp;quot;MyID&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;OBJECT &lt;br /&gt;
      ... &lt;br /&gt;
&amp;lt;/OBJECT&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Integrate_with_Google_Web_Toolkit&amp;diff=10169</id>
		<title>VLC HowTo/Integrate with Google Web Toolkit</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Integrate_with_Google_Web_Toolkit&amp;diff=10169"/>
		<updated>2007-11-05T18:28:58Z</updated>

		<summary type="html">&lt;p&gt;RedStapler: Google Web Toolkit (GWT)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= GWT =&lt;br /&gt;
VLC can be integrated in Google Web Toolkit (GWT) web applications. The easiest way is embedding the VLC browser plugin in your web application. There are two levels of integration:&lt;br /&gt;
* Static integration in the main HTML file (MyProject.html)&lt;br /&gt;
* Dynamic integration in HTML code which is generated at web application runtime&lt;br /&gt;
In any case, remember that VLC treats the browser plugin for Firefox/Mozilla only as an installation option. You might have to go back and install this option and also point out in your documentation that this option needs to be installed if users run your web application with Mozilla/Firefox.&lt;br /&gt;
&lt;br /&gt;
== Static integration in MyProject.html ==&lt;br /&gt;
Static integration is straightforward and is based on methods described in separate articles:&lt;br /&gt;
* Mozilla/Firefox plug-in: http://wiki.videolan.org/Documentation:Play_HowTo/Advanced_Use_of_VLC#Use_the_mozilla_plugin&lt;br /&gt;
&lt;br /&gt;
* ActiceX Control: [[ActiveX/HTML]] &lt;br /&gt;
Following the description in the [[ActiveX/HTML]] article, you can include code based on the following snipped in your main HTML file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;OBJECT classid=&amp;quot;clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921&amp;quot; &lt;br /&gt;
	codebase=&amp;quot;http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab&amp;quot; &lt;br /&gt;
	width=&amp;quot;320&amp;quot; &lt;br /&gt;
	height=&amp;quot;240&amp;quot; &lt;br /&gt;
	id=&amp;quot;vlc&amp;quot; events=&amp;quot;True&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;Src&amp;quot; value=&amp;quot;$mri&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;ShowDisplay&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;AutoLoop&amp;quot; value=&amp;quot;False&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;param name=&amp;quot;AutoPlay&amp;quot; value=&amp;quot;True&amp;quot; /&amp;gt; &lt;br /&gt;
	&amp;lt;EMBED pluginspage=&amp;quot;http://www.videolan.org&amp;quot; &lt;br /&gt;
		type=&amp;quot;application/x-vlc-plugin&amp;quot; progid=&amp;quot;VideoLAN.VLCPlugin.2&amp;quot; &lt;br /&gt;
		width=&amp;quot;320&amp;quot; &lt;br /&gt;
		height=&amp;quot;240&amp;quot; &lt;br /&gt;
		autoplay=&amp;quot;yes&amp;quot; &lt;br /&gt;
		loop=&amp;quot;no&amp;quot; &lt;br /&gt;
		target=&amp;quot;$mri&amp;quot; &lt;br /&gt;
		name=&amp;quot;vlc&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;/EMBED&amp;gt;&lt;br /&gt;
&amp;lt;/OBJECT&amp;gt; &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Internet Explorer (IE6) responds to the code in the &amp;lt;OBJECT&amp;gt; tag, while Mozilla/Firefox uses the settings in the &amp;lt;EMBED&amp;gt; tag.&lt;br /&gt;
Replace parameters as appropriate, e.g. $mri with the [[Multimedia Resource Identifier]] of your incoming stream. &lt;br /&gt;
&lt;br /&gt;
== Embedding in dynamically generated HTML code ==&lt;br /&gt;
Web applications which dynamically generate HTML code, e.g. through the GWT class HTML, can integrate the VLC plugin within a GWT Panel. The HTML code itself is based on the static code above, while the integration in the dynamic web application is accomplished through GWT API calls. For some reason, the Panel method add() (GWT version 1.4.60) does not correctly handle the VLC plugin. It is necessary to use the DOM method appendChild(Element parent, Element child), as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
DOM.appendChild(targetPanel.getElement(), htmlCode.getElement());&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Unfortunately there is no known method for the VLC ActiveX control to show in Internet Explorer (IE 6). Audio will play, but the streaming video does not show in the GWT Panel.&lt;br /&gt;
&lt;br /&gt;
Note also that it might not be possible to superimpose controls over streaming video, as the VLC plugin might directly write to the video adapter, depending on the target platform. This is the case for Windows XP, for example.&lt;br /&gt;
&lt;br /&gt;
== User interaction ==&lt;br /&gt;
The VLC plugin has a Javascript API which allows the implementation of user interactions like Play or Pause on the web application level. The plugin can be called through Javascript as described in the [[ActiveX/HTML]] article. GWT/Java wrappers for these calls are not available (yet). It does not make a difference whether the plugin is integrated on the static or dynamic level; a handle to the VLC plugin is obtained through the RootPanel method RootPanel get(java.lang.String id) which returns the browser element that embeds the VLC plugin. Code must be added to the HTML code to create a browser element with an ID which can be captured by the RootPanel mathod get(java.lang.String id), e.g. as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td id=&amp;quot;MyID&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;OBJECT &lt;br /&gt;
      ... &lt;br /&gt;
&amp;lt;/OBJECT&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>RedStapler</name></author>
	</entry>
</feed>