Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc
Commits
9f857cd6
Commit
9f857cd6
authored
May 21, 2009
by
JP Dinger
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Reformatting, spelling and style fixes.
parent
0680c6ed
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
85 additions
and
68 deletions
+85
-68
projects/activex/README.TXT
projects/activex/README.TXT
+85
-68
No files found.
projects/activex/README.TXT
View file @
9f857cd6
== ACTIVEX Control for VLC ==
== ACTIVEX Control for VLC ==
The VLC ActiveX Control has been primary designed to work with Internet
Explorer.
The VLC ActiveX Control has been primary designed to work with Internet
however it may also work with Visual Basic and/or .NET
Explorer. However it may also work with Visual Basic and/or .NET. Please
Please note, that this code does not rely upon Microsoft MFC/ATL code,
note, that this code does not rely upon Microsoft MFC/ATL code, hence
hence good compatibility is not guaranteed.
good compatibility is not guaranteed.
I. Compiling
I. Compiling
The ActiveX Control should compile without any glitches as long as you have the latest
The ActiveX Control should compile without any glitches as long as you
version of mingw gcc and headers. However, In order to script the ActiveX Control
have the latest version of mingw gcc and headers.
on Internet Explorer, a type library is required.
This type library is usually generated from an IDL file using Microsoft MIDL compiler.
In order to script the ActiveX Control on Internet Explorer, a type
Therefore, for convenience I have checked in the output of the MIDL compiler in the
library is required. This type library is usually generated from an IDL
repository so that you will only need the MIDL compiler if you change axvlc.idl.
file using Microsoft MIDL compiler. Therefore, for convenience I have
the generated files are as follow:
checked in the output of the MIDL compiler in the repository so that you
will only need the MIDL compiler if you change axvlc.idl. the generated
files are as follow:
axvlc_idl.c
axvlc_idl.c
axvlc_idl.h
axvlc_idl.h
axvlc.tlb
axvlc.tlb
To use the MIDL compiler on cygwin, you will need to set some environment variables
To use the MIDL compiler on cygwin, you will need to set some
before configuring vlc. If you have a copy of 'Microsoft Visual C++ 6.0' installed,
environment variables before configuring vlc. If you have a copy of
the following settings are correct:
'Microsoft Visual C++ 6.0' installed, the following settings are
correct:
export PATH=$PATH:"/cygdrive/c/Program Files/Microsoft Visual Studio/COMMON/MSDev98/Bin":"/cygdrive/c/Program Files/Microsoft Visual Studio/VC98/Bin"
export PATH=$PATH:"/cygdrive/c/Program Files/Microsoft Visual Studio/COMMON/MSDev98/Bin":"/cygdrive/c/Program Files/Microsoft Visual Studio/VC98/Bin"
export INCLUDE='C:\Program Files\Microsoft Visual Studio\VC98\Include'
export INCLUDE='C:\Program Files\Microsoft Visual Studio\VC98\Include'
...
@@ -35,73 +37,83 @@ the comand line to compile IDL should looks like the following :
...
@@ -35,73 +37,83 @@ the comand line to compile IDL should looks like the following :
widl -I/usr/include/wine/windows/ \
widl -I/usr/include/wine/windows/ \
-h -H axvlc_idl.h -t -T axvlc.tlb -u -U axvlc_idl.c \
-h -H axvlc_idl.h -t -T axvlc.tlb -u -U axvlc_idl.c \
axvlc.idl
axvlc.idl
NOTE: widl breaks compatibility with Visual Basic. If that is important to you then use midl.
NOTE: widl breaks compatibility with Visual Basic. If that is important
to you then you must use midl.
II. Debugging
II. Debugging
the ActiveX control is compiled with verbose output by default. However you will
The ActiveX control is compiled with verbose output by default, but you
need to launch Internet Explorer from a Cygwin shell to see the output.
will need to launch Internet Explorer from a Cygwin shell to see the
Alternatively, the plugin will also use the VLC preferences, hence if you enable
output. Alternatively, the plugin will also use the VLC preferences, so
the file logging interface through the player and save the preferences, the
if you enable the file logging interface through the player and save the
control will automatically log its verbose output into the designated file.
preferences, the control will automatically log its verbose output into
the designated file.
Debugging the ActiveX control DLL with GNU GDB can be difficult. Fortunately,
the ActiveX control can also be compiled as an executable rather than a DLL.
Debugging the ActiveX control DLL with GNU GDB can be difficult.
In ActiveX terms, this is called a local server.
Fortunately the ActiveX control can also be compiled as an executable
The advantage of a local server is that it will never crash its client,
rather than a DLL. In ActiveX terms, this is called a local server. The
i.e Internet Explorer, if itself is crashing.
advantage of a local server is that it will never crash its client,
The build system does not currently allow to create an executable version of
i.e. Internet Explorer, even if the local server crashes. The build
the ActiveX control, you will need to manually define the BUILD_LOCALSERVER
system does not currently allow to create an executable version of the
pre-processor variable and modify the Makefile to exclude the '-shared' option
ActiveX control, you will need to manually define the BUILD_LOCALSERVER
at the linking stage. Once this is done, you just need to launch axvlc.exe to
pre-processor variable and modify the Makefile to exclude the '-shared'
have a working Activex control. Please note, that executable version of the
option at the linking stage. Once this is done, launch axvlc.exe to have
ActiveX control will override any settings required for the DLL version, which
a working Activex control. Please note, that executable version of the
will no longer work until you (re)register it as shown in the following section
ActiveX control will override any settings required for the DLL version,
which will no longer work until you (re)register it as shown in the
following section
III. Local Install
III. Local Install
The VLC NSIS installer will install the ActiveX Control without requiring any
The VLC NSIS installer will install the ActiveX Control without
further manual intervention, but for people who like to live on the edge, here
requiring any further manual intervention, but for people who like to
are the steps you need to perform once you have built the ActiveX Control.
live on the edge, here are the steps you need to perform once you have
built the ActiveX Control.
The ActiveX control DLL file may be copied anywhere on the target
machine,
The ActiveX control DLL file may be copied anywhere on the target
but before you can use the control, you will need to register it with Windows
machine, but before you can use the control, you will need to register
by using the REGSVR32 command, as per following example:
it with Windows
by using the REGSVR32 command, as per following example:
REGSVR32 C:\WINDOWS\AXVLC.DLL
REGSVR32 C:\WINDOWS\AXVLC.DLL
If the control needs to use external VLC plugins (i.e other than built-in ones),
If the control needs to use external VLC plugins (i.e other than the
make sure that the plugin path is set in the registry as per following example:
built-in ones), make sure that the plugin path is set in the registry as
per following example:
[HKEY_LOCAL_MACHINE\Software\VideoLAN\VLC]
[HKEY_LOCAL_MACHINE\Software\VideoLAN\VLC]
InstallDir="C:\Program Files\VideoLAN\VLC"
InstallDir="C:\Program Files\VideoLAN\VLC"
The InstallDir must be the parent directory of the 'plugins' directory.
The InstallDir must be the parent directory of the 'plugins' directory.
WARNING: Both control and plugins must come from the same build source tree.
WARNING: Both control and plugins must come from the same source build
Otherwise, at best, the control will not play any content, at worse
tree. Otherwise, at best, the control will not play any content,
it may crash Internet Explorer while attempting to load incompatible plugins.
at worse it may crash Internet Explorer while attempting to load
incompatible plugins.
IV. Internet Install
IV. Internet Install
The activex control may be installed from a remote through Internet Installer if
The activex control may be installed from a remote through Internet
it is packaged up in a CAB file. The following link explains how to achieve this
Installer if it is packaged up in a CAB file. The following link
explains how to achieve this
http://msdn.microsoft.com/workshop/components/activex/packaging.asp
http://msdn.microsoft.com/workshop/components/activex/packaging.asp
For convenience, I have provided a sample axvlc.INF file, which assumes that the VLC
For convenience, I have provided a sample axvlc.INF file, which assumes
NSIS Installer has been packaged up a CAB file called AXVLC.CAB.
that the VLC NSIS Installer has been packaged up a CAB file called
AXVLC.CAB.
The ActiveX Control DLL file can also be distributed by itself if it has
been
The ActiveX Control DLL file can also be distributed by itself if it has
compiled with built-in VLC plugins; check developer information for more
been compiled with built-in VLC plugins; check developer information for
information on built-in plugins.
more
information on built-in plugins.
V. Controlling the plugin
V. Controlling the plugin
1) Properties
1) Properties
the following public properties can be used to control the plugin from HTML,
The following public properties can be used to control the plugin
the property panel of Visual Basic and most ActiveX aware applications.
from HTML, the property panel of Visual Basic and most ActiveX aware
applications.
+==========+=========+===================================+===============+
+==========+=========+===================================+===============+
| Name: | Type: | Description: | Alias: |
| Name: | Type: | Description: | Alias: |
...
@@ -121,16 +133,16 @@ the property panel of Visual Basic and most ActiveX aware applications.
...
@@ -121,16 +133,16 @@ the property panel of Visual Basic and most ActiveX aware applications.
| toolbar | boolean | set/get visibility of the toolbar | |
| toolbar | boolean | set/get visibility of the toolbar | |
+----------+---------+-----------------------------------+---------------+
+----------+---------+-----------------------------------+---------------+
the alias column allows to specify an alternative <PARAM name> for the
The alias column shows an alternative <PARAM name> for the property in
property in internet explorer, which is useful to maintain compatibility
internet explorer, which is useful to maintain compatibility with HTML
with HTML
pages already leveraging Windows Media Player
pages already leveraging Windows Media Player
2) Programming APIs
2) Programming APIs
the MRL, Autoplay and Autoloop properties are only used to configure the initial
The MRL, Autoplay and Autoloop properties are only used to configure the
state of the ActiveX control,i.e before its activation; they are ignored afterward.
initial state of the ActiveX control,i.e before its activation; they are
Therefore, if some runtime control is required, the following APIs should be used
ignored afterward. Therefore, if some runtime control is required, the
within your programming environment:
following APIs should be used
within your programming environment:
Variables:
Variables:
...
@@ -161,8 +173,8 @@ Methods:
...
@@ -161,8 +173,8 @@ Methods:
UUID : 9BE31822-FDAD-461B-AD51-BE1D1C159921
UUID : 9BE31822-FDAD-461B-AD51-BE1D1C159921
defined in axvlc.idl as "coclass VLCPlugin2", "interface IVLCControl2"
defined in axvlc.idl as "coclass VLCPlugin2", "interface IVLCControl2"
This interface organize
API with several object (like .audio.mute)
This interface organize
s an API with several objects (like .audio.mute).
It is currently documented on videolan wiki (may change) at
It is currently documented on videolan wiki (
the url
may change) at
http://wiki.videolan.org/Documentation:Play_HowTo/Advanced_Use_of_VLC
http://wiki.videolan.org/Documentation:Play_HowTo/Advanced_Use_of_VLC
...
@@ -196,10 +208,13 @@ playSlower()
...
@@ -196,10 +208,13 @@ playSlower()
toggleMute()
toggleMute()
mute/unmute sound output
mute/unmute sound output
addTarget(MRL As String, Options as array of strings, Mode as enumeration, Position as integer)
addTarget(MRL As String, Options as array of strings,
Add MRL into the default playlist, you can also specify a list of playlist Options to attach
Mode as enumeration, Position as integer)
to this MRL or Null for no options. mode indicates the action taken by the playlist on MRL
Add an MRL into the default playlist, you can also specify a list
which is one the following:
of playlist options to attach to this MRL or Null for no options.
Mode indicates the action taken by the playlist on MRL and is one
the following:
VLCPlayListInsert = 1 (Insert MRL into playlist at Position)
VLCPlayListInsert = 1 (Insert MRL into playlist at Position)
VLCPlayListInsertAndGo = 9 (Insert MRL into playlist at Position and play it immediately)
VLCPlayListInsertAndGo = 9 (Insert MRL into playlist at Position and play it immediately)
VLCPlayListReplace = 2 (Replace MRL in playlist at Position)
VLCPlayListReplace = 2 (Replace MRL in playlist at Position)
...
@@ -207,13 +222,15 @@ addTarget(MRL As String, Options as array of strings, Mode as enumeration, Posit
...
@@ -207,13 +222,15 @@ addTarget(MRL As String, Options as array of strings, Mode as enumeration, Posit
VLCPlayListAppend = 4 (Append MRL in playlist after Position)
VLCPlayListAppend = 4 (Append MRL in playlist after Position)
VLCPlayListAppendAndGo = 12 (Append MRL in playlist after Position and play it immediately)
VLCPlayListAppendAndGo = 12 (Append MRL in playlist after Position and play it immediately)
VLCPlayListCheckInsert = 16 (Verify if MRL is in playlist)
VLCPlayListCheckInsert = 16 (Verify if MRL is in playlist)
Position can take the value of -666 as wildcard for the last element in playlist
Position can take the value of -666 as wildcard for the last element
in the playlist.
setVariable(Name as string, Value as object);
setVariable(Name as string, Value as object);
Set a value into a VLC variables
Set a value into a VLC variables
getVariable(
Name as string) as object
getVariable(Name as string) as object
Retrieve the value of a VLC variable.
Retrieve the value of a VLC variable.
Regards,
Regards,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment