Commit e1e2327f authored by Damien Fouilleul's avatar Damien Fouilleul

- miscelleanous fixes and improvements

- self registration (Internet installation now possible)
parent e9aab018
...@@ -38,21 +38,21 @@ SOURCES_activex = \ ...@@ -38,21 +38,21 @@ SOURCES_activex = \
plugin.h \ plugin.h \
axvlc_idl.c \ axvlc_idl.c \
axvlc_idl.h \ axvlc_idl.h \
$(NULL) $(NULL)
DIST_rsrc = \ DIST_rsrc = \
axvlc_rc.rc \ axvlc_rc.rc \
$(NULL) $(NULL)
DIST_misc = \ DIST_misc = \
README.TXT \ README.TXT \
axvlc.def \ axvlc.def \
axvlc.idl \ axvlc.idl \
axvlc.reg \ axvlc.reg \
axvlc.tlb \ axvlc.tlb \
inplace.bmp \ inplace.bmp \
test.html \ test.html \
$(NULL) $(NULL)
LIBRARIES_libvlc = $(top_builddir)/lib/libvlc.a LIBRARIES_libvlc = $(top_builddir)/lib/libvlc.a
...@@ -96,7 +96,7 @@ endif ...@@ -96,7 +96,7 @@ endif
DATA_axvlc_rc = $(noinst_axvlc_rc_DATA) DATA_axvlc_rc = $(noinst_axvlc_rc_DATA)
noinst_axvlc_rc_DATA = axvlc_rc.$(OBJEXT) noinst_axvlc_rc_DATA = axvlc_rc.$(OBJEXT)
noinst_axvlc_rcdir = $(libdir) noinst_axvlc_rcdir = $(libdir)
axvlc_rc.$(OBJEXT): axvlc_rc.rc inplace.bmp $(axvlc_tlb_DATA) axvlc_rc.$(OBJEXT): axvlc_rc.rc inplace.bmp axvlc.tlb
$(WINDRES) -DVERSION=$(VERSION) -DVERSION_NUMBER=`echo $(VERSION).0.0.0 | sed 's/\([0-9]*\)[^.]*\.*\([0-9]*\)[^.]*\.*\([0-9]*\)[^.]*\.*\([0-9]*\).*/\1,\2,\3,\4/'` --include-dir $(srcdir) -i $< -o $@ $(WINDRES) -DVERSION=$(VERSION) -DVERSION_NUMBER=`echo $(VERSION).0.0.0 | sed 's/\([0-9]*\)[^.]*\.*\([0-9]*\)[^.]*\.*\([0-9]*\)[^.]*\.*\([0-9]*\).*/\1,\2,\3,\4/'` --include-dir $(srcdir) -i $< -o $@
else else
......
...@@ -3,13 +3,16 @@ ...@@ -3,13 +3,16 @@
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 Explorer.
however it may also work with Visual Basic and/or .NET however it may also work with Visual Basic and/or .NET
Please note, that this code does not rely upon MFC/ATL, hence good compatibility Please note, that this code does not rely upon MFC/ATL, hence good compatibility
is not guaranteed is not guaranteed.
== Compiling == == Compiling ==
In order to script the ActiveX Control on Internet Explorer, a type library is required. The Active Control should compile without any glitches as long as you have the latest
version of mingw gcc and headers. However, In order to script the ActiveX Control
on Internet Explorer, a type library is required.
This type library is usually generated from an IDL file using Microsoft MIDL compiler. This type library is usually generated from an IDL file using Microsoft MIDL compiler.
However, for convenience I have checked in the output of the MIDL compiler in the Therefore, for convenience I have 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. repository so that you will only need the MIDL compiler if you change axvlc.idl.
the generated files are as follow: the generated files are as follow:
...@@ -28,18 +31,36 @@ export MIDL="midl" ...@@ -28,18 +31,36 @@ export MIDL="midl"
if you are cross-compiling on Linux, you may be able to use 'widl' which is part of if you are cross-compiling on Linux, you may be able to use 'widl' which is part of
the WINE project (http://www.winehq.com), however I have not tested it. the WINE project (http://www.winehq.com), however I have not tested it.
== Installing == == Local Install ==
The ActiveX control is built as axvlc.dll, which is the only file that needs be The ActiveX control is built as a DLL file, which is the only file that needs be
distributed and it may be installed anywhere on the target machine as long as distributed and it may be installed anywhere on the target machine as long as
its path is correct within the registry. its path is specified within your PATH environment variable. Typically, you would
the necessary registry settings are stored in axvlc.reg install it into your WINDOWS directory.
in order to use the plugin, you will need to VLC properly installed on your system if the control needs other VLC plugins, you will need to have VLC installed
otherwise make sure that the plugin path is set in the registry as indicated below on your system, otherwise make sure that the plugin path is set in the registry
as indicated below
[HKEY_LOCAL_MACHINE\Software\VideoLAN\VLC] [HKEY_LOCAL_MACHINE\Software\VideoLAN\VLC]
InstallDir="path\\dir\\" InstallDir="path\\dir\\"
WARNING: The plugins version must also match the ActiveX control version,
otherwise it may crash while attempting to load incompatible plugins
== Internet Install ==
The activex control may be installed from a remote through Internet 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
For convenience, I have provide a sample axvlc.INF file, which installs the ActiveX Control
into the WINDOWS directory, feel free to adapt it to your need.
WARNING: For remote install, the ActiveX Control should be built with all required VLC
plugins built-in.
regards, regards,
Damien Fouilleul <Damien dot Fouilleul at laposte dot net> Damien Fouilleul <Damien dot Fouilleul at laposte dot net>
...@@ -34,15 +34,27 @@ library AXVLC ...@@ -34,15 +34,27 @@ library AXVLC
dispinterface DVLCEvents; dispinterface DVLCEvents;
enum VLCPlaylistMode { enum VLCPlaylistMode {
VLCPlayListInsert = 1, VLCPlayListInsert = 1,
VLCPlayListReplace = 2, VLCPlayListReplace = 2,
VLCPlayListAppend = 4, VLCPlayListAppend = 4,
VLCPlayListGo = 8, VLCPlayListGo = 8,
VLCPlayListCheckInsert = 16 VLCPlayListCheckInsert = 16
}; };
// playlist target position // playlist target position
const int VLCPlayListEnd = -666; const int VLCPlayListEnd = -666;
// DISPID definitions
const int DISPID_Visible = 1;
const int DISPID_Playing = 2;
const int DISPID_Position = 3;
const int DISPID_Time = 4;
const int DISPID_Length = 5;
const int DISPID_Volume = 6;
const int DISPID_PlayEvent = 1;
const int DISPID_PauseEvent = 2;
const int DISPID_StopEvent = 3;
[ [
odl, odl,
...@@ -53,13 +65,14 @@ library AXVLC ...@@ -53,13 +65,14 @@ library AXVLC
oleautomation oleautomation
] ]
interface IVLCControl : IDispatch { interface IVLCControl : IDispatch {
[id(0), bindable, defaultbind, propget, helpstring("Specifies current target in playlist")] [id(0), bindable, defaultbind, propget, helpstring("Specifies current target in playlist")]
HRESULT Value([out, retval] VARIANT* pvarValue); HRESULT Value([out, retval] VARIANT* pvarValue);
[id(0), bindable, defaultbind, propput, helpstring("Specifies current target in playlist")] [id(0), bindable, defaultbind, propput, helpstring("Specifies current target in playlist")]
HRESULT Value([in] VARIANT pvarValue); HRESULT Value([in] VARIANT pvarValue);
[propget, bindable, helpstring("Shows or hides plugin.")] [id(DISPID_Visible), propget, bindable, helpstring("Shows or hides plugin.")]
HRESULT Visible([out, retval] VARIANT_BOOL* visible); HRESULT Visible([out, retval] VARIANT_BOOL* visible);
[propput, bindable, helpstring("Shows or hides plugin.")] [id(DISPID_Visible), propput, bindable, helpstring("Shows or hides plugin.")]
HRESULT Visible([in] VARIANT_BOOL visible); HRESULT Visible([in] VARIANT_BOOL visible);
[helpstring("Play current target in playlist.")] [helpstring("Play current target in playlist.")]
HRESULT play(); HRESULT play();
...@@ -67,31 +80,31 @@ library AXVLC ...@@ -67,31 +80,31 @@ library AXVLC
HRESULT pause(); HRESULT pause();
[helpstring("Stop playback.")] [helpstring("Stop playback.")]
HRESULT stop(); HRESULT stop();
[propget, helpstring("Specifies whether VLC is playing.")] [id(DISPID_Playing), bindable, propget, helpstring("Specifies whether VLC is playing.")]
HRESULT Playing([out, retval] VARIANT_BOOL* isPlaying); HRESULT Playing([out, retval] VARIANT_BOOL* isPlaying);
[propput, helpstring("Specifies whether VLC is playing.")] [id(DISPID_Playing), bindable, propput, helpstring("Specifies whether VLC is playing.")]
HRESULT Playing([in] VARIANT_BOOL isPlaying); HRESULT Playing([in] VARIANT_BOOL isPlaying);
[propget, helpstring("Specifies playback position within current target in playlist, position is a relative value ranging from 0.0 to 1.0.")] [id(DISPID_Position), bindable, propget, helpstring("Specifies playback position within current target in playlist, position is a relative value ranging from 0.0 to 1.0.")]
HRESULT Position([out, retval] float* position); HRESULT Position([out, retval] float* position);
[propput, helpstring("Specifies playback position within current target in playlist, position is a relative value ranging from 0.0 to 1.0.")] [id(DISPID_Position), bindable, propput, helpstring("Specifies playback position within current target in playlist, position is a relative value ranging from 0.0 to 1.0.")]
HRESULT Position([in] float position); HRESULT Position([in] float position);
[propget, helpstring("Specifies playback time relative to the start of current target in playlist.")] [id(DISPID_Time), bindable, propget, helpstring("Specifies playback time relative to the start of current target in playlist.")]
HRESULT Time([out, retval] int* seconds); HRESULT Time([out, retval] int* seconds);
[propput, helpstring("Specifies playback time relative to the start of current target in playlist.")] [id(DISPID_Time), bindable, propput, helpstring("Specifies playback time relative to the start of current target in playlist.")]
HRESULT Time([in] int seconds); HRESULT Time([in] int seconds);
[helpstring("Advance or backtrack playback time, relative to current time.")] [helpstring("Advance or backtrack playback time, relative to current time.")]
HRESULT shuttle([in] int seconds); HRESULT shuttle([in] int seconds);
[helpstring("Switch between normal and fullscreen video.")] [helpstring("Switch between normal and fullscreen video.")]
HRESULT fullscreen(); HRESULT fullscreen();
[propget, helpstring("Returns total length in seconds of current target in playlist, may be unknown.")] [id(DISPID_Length), bindable, propget, helpstring("Returns total length in seconds of current target in playlist, may be unknown.")]
HRESULT Length([out, retval] int* seconds); HRESULT Length([out, retval] int* seconds);
[helpstring("Increases playback speed, one of 1x, 2x, 4x, 8x.")] [helpstring("Increases playback speed, one of 1x, 2x, 4x, 8x.")]
HRESULT playFaster(); HRESULT playFaster();
[helpstring("Decreases playback speed, one of 1x, 2x, 4x, 8x.")] [helpstring("Decreases playback speed, one of 1x, 2x, 4x, 8x.")]
HRESULT playSlower(); HRESULT playSlower();
[propget, helpstring("Specifies playback sound volume, ranges from 0 to 200%.")] [id(DISPID_Volume), bindable, propget, helpstring("Specifies playback sound volume, ranges from 0 to 200%.")]
HRESULT Volume([out, retval] int* volume); HRESULT Volume([out, retval] int* volume);
[propput, helpstring("Specifies playback sound volume, ranges from 0 to 200%.")] [id(DISPID_Volume), bindable, propput, helpstring("Specifies playback sound volume, ranges from 0 to 200%.")]
HRESULT Volume([in] int volume); HRESULT Volume([in] int volume);
[helpstring("Mute/unmute playback sound volume.")] [helpstring("Mute/unmute playback sound volume.")]
HRESULT toggleMute(); HRESULT toggleMute();
...@@ -125,11 +138,11 @@ library AXVLC ...@@ -125,11 +138,11 @@ library AXVLC
dispinterface DVLCEvents { dispinterface DVLCEvents {
properties: properties:
methods: methods:
[id(1), helpstring("Playback in progress")] [id(DISPID_PlayEvent), helpstring("Playback in progress")]
void Play(); void Play();
[id(2), helpstring("Playback has paused")] [id(DISPID_PauseEvent), helpstring("Playback has paused")]
void Pause(); void Pause();
[id(3), helpstring("Playback has stopped")] [id(DISPID_StopEvent), helpstring("Playback has stopped")]
void Stop(); void Stop();
}; };
......
[version]
signature="$CHICAGO$"
AdvancedINF=2.0
[Add.Code]
axvlc.dll=axvlc.dll
[axvlc.dll]
file-win32-x86=thiscab
clsid={E23FE9C6-778E-49d4-B537-38FCDE4887D8}
FileVersion=0,8,2,0
DestDir=10
RegisterServer=yes
No preview for this file type
/***************************************************************************** /* this file contains the actual definitions of */
* axvlc_idl.c: ActiveX control for VLC /* the IIDs and CLSIDs */
*****************************************************************************
* Copyright (C) 2005 VideoLAN
*
* Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
/* link this file in with the server and any clients */
/* File created by MIDL compiler version 5.01.0164 */
/* at Thu Feb 17 09:25:54 2005
*/
/* Compiler settings for axvlc.idl:
Oicf (OptLev=i2), W1, Zp8, env=Win32, ms_ext, c_ext
error checks: allocation ref bounds_check enum stub_data
*/
//@@MIDL_FILE_HEADING( )
#ifdef __cplusplus #ifdef __cplusplus
extern "C"{ extern "C"{
#endif #endif
......
/***************************************************************************** /* this ALWAYS GENERATED file contains the definitions for the interfaces */
* axvlc_idl.h: ActiveX control for VLC
*****************************************************************************
* Copyright (C) 2005 VideoLAN /* File created by MIDL compiler version 5.01.0164 */
* /* at Thu Feb 17 09:25:54 2005
* Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net> */
* /* Compiler settings for axvlc.idl:
* This program is free software; you can redistribute it and/or modify Oicf (OptLev=i2), W1, Zp8, env=Win32, ms_ext, c_ext
* it under the terms of the GNU General Public License as published by error checks: allocation ref bounds_check enum stub_data
* the Free Software Foundation; either version 2 of the License, or */
* (at your option) any later version. //@@MIDL_FILE_HEADING( )
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
/* verify that the <rpcndr.h> version is high enough to compile this file*/ /* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__ #ifndef __REQUIRED_RPCNDR_H_VERSION__
...@@ -83,6 +74,24 @@ enum VLCPlaylistMode ...@@ -83,6 +74,24 @@ enum VLCPlaylistMode
}; };
#define VLCPlayListEnd ( -666 ) #define VLCPlayListEnd ( -666 )
#define DISPID_Visible ( 1 )
#define DISPID_Playing ( 2 )
#define DISPID_Position ( 3 )
#define DISPID_Time ( 4 )
#define DISPID_Length ( 5 )
#define DISPID_Volume ( 6 )
#define DISPID_PlayEvent ( 1 )
#define DISPID_PauseEvent ( 2 )
#define DISPID_StopEvent ( 3 )
EXTERN_C const IID LIBID_AXVLC; EXTERN_C const IID LIBID_AXVLC;
...@@ -107,10 +116,10 @@ EXTERN_C const IID IID_IVLCControl; ...@@ -107,10 +116,10 @@ EXTERN_C const IID IID_IVLCControl;
virtual /* [helpstring][propput][defaultbind][bindable][id] */ HRESULT STDMETHODCALLTYPE put_Value( virtual /* [helpstring][propput][defaultbind][bindable][id] */ HRESULT STDMETHODCALLTYPE put_Value(
/* [in] */ VARIANT pvarValue) = 0; /* [in] */ VARIANT pvarValue) = 0;
virtual /* [helpstring][bindable][propget] */ HRESULT STDMETHODCALLTYPE get_Visible( virtual /* [helpstring][bindable][propget][id] */ HRESULT STDMETHODCALLTYPE get_Visible(
/* [retval][out] */ VARIANT_BOOL __RPC_FAR *visible) = 0; /* [retval][out] */ VARIANT_BOOL __RPC_FAR *visible) = 0;
virtual /* [helpstring][bindable][propput] */ HRESULT STDMETHODCALLTYPE put_Visible( virtual /* [helpstring][bindable][propput][id] */ HRESULT STDMETHODCALLTYPE put_Visible(
/* [in] */ VARIANT_BOOL visible) = 0; /* [in] */ VARIANT_BOOL visible) = 0;
virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE play( void) = 0; virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE play( void) = 0;
...@@ -119,22 +128,22 @@ EXTERN_C const IID IID_IVLCControl; ...@@ -119,22 +128,22 @@ EXTERN_C const IID IID_IVLCControl;
virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE stop( void) = 0; virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE stop( void) = 0;
virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Playing( virtual /* [helpstring][propget][bindable][id] */ HRESULT STDMETHODCALLTYPE get_Playing(
/* [retval][out] */ VARIANT_BOOL __RPC_FAR *isPlaying) = 0; /* [retval][out] */ VARIANT_BOOL __RPC_FAR *isPlaying) = 0;
virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_Playing( virtual /* [helpstring][propput][bindable][id] */ HRESULT STDMETHODCALLTYPE put_Playing(
/* [in] */ VARIANT_BOOL isPlaying) = 0; /* [in] */ VARIANT_BOOL isPlaying) = 0;
virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Position( virtual /* [helpstring][propget][bindable][id] */ HRESULT STDMETHODCALLTYPE get_Position(
/* [retval][out] */ float __RPC_FAR *position) = 0; /* [retval][out] */ float __RPC_FAR *position) = 0;
virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_Position( virtual /* [helpstring][propput][bindable][id] */ HRESULT STDMETHODCALLTYPE put_Position(
/* [in] */ float position) = 0; /* [in] */ float position) = 0;
virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Time( virtual /* [helpstring][propget][bindable][id] */ HRESULT STDMETHODCALLTYPE get_Time(
/* [retval][out] */ int __RPC_FAR *seconds) = 0; /* [retval][out] */ int __RPC_FAR *seconds) = 0;
virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_Time( virtual /* [helpstring][propput][bindable][id] */ HRESULT STDMETHODCALLTYPE put_Time(
/* [in] */ int seconds) = 0; /* [in] */ int seconds) = 0;
virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE shuttle( virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE shuttle(
...@@ -142,17 +151,17 @@ EXTERN_C const IID IID_IVLCControl; ...@@ -142,17 +151,17 @@ EXTERN_C const IID IID_IVLCControl;
virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE fullscreen( void) = 0; virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE fullscreen( void) = 0;
virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Length( virtual /* [helpstring][propget][bindable][id] */ HRESULT STDMETHODCALLTYPE get_Length(
/* [retval][out] */ int __RPC_FAR *seconds) = 0; /* [retval][out] */ int __RPC_FAR *seconds) = 0;
virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE playFaster( void) = 0; virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE playFaster( void) = 0;
virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE playSlower( void) = 0; virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE playSlower( void) = 0;
virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Volume( virtual /* [helpstring][propget][bindable][id] */ HRESULT STDMETHODCALLTYPE get_Volume(
/* [retval][out] */ int __RPC_FAR *volume) = 0; /* [retval][out] */ int __RPC_FAR *volume) = 0;
virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_Volume( virtual /* [helpstring][propput][bindable][id] */ HRESULT STDMETHODCALLTYPE put_Volume(
/* [in] */ int volume) = 0; /* [in] */ int volume) = 0;
virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE toggleMute( void) = 0; virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE toggleMute( void) = 0;
...@@ -234,11 +243,11 @@ EXTERN_C const IID IID_IVLCControl; ...@@ -234,11 +243,11 @@ EXTERN_C const IID IID_IVLCControl;
IVLCControl __RPC_FAR * This, IVLCControl __RPC_FAR * This,
/* [in] */ VARIANT pvarValue); /* [in] */ VARIANT pvarValue);
/* [helpstring][bindable][propget] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Visible )( /* [helpstring][bindable][propget][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Visible )(
IVLCControl __RPC_FAR * This, IVLCControl __RPC_FAR * This,
/* [retval][out] */ VARIANT_BOOL __RPC_FAR *visible); /* [retval][out] */ VARIANT_BOOL __RPC_FAR *visible);
/* [helpstring][bindable][propput] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *put_Visible )( /* [helpstring][bindable][propput][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *put_Visible )(
IVLCControl __RPC_FAR * This, IVLCControl __RPC_FAR * This,
/* [in] */ VARIANT_BOOL visible); /* [in] */ VARIANT_BOOL visible);
...@@ -251,27 +260,27 @@ EXTERN_C const IID IID_IVLCControl; ...@@ -251,27 +260,27 @@ EXTERN_C const IID IID_IVLCControl;
/* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *stop )( /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *stop )(
IVLCControl __RPC_FAR * This); IVLCControl __RPC_FAR * This);
/* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Playing )( /* [helpstring][propget][bindable][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Playing )(
IVLCControl __RPC_FAR * This, IVLCControl __RPC_FAR * This,
/* [retval][out] */ VARIANT_BOOL __RPC_FAR *isPlaying); /* [retval][out] */ VARIANT_BOOL __RPC_FAR *isPlaying);
/* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *put_Playing )( /* [helpstring][propput][bindable][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *put_Playing )(
IVLCControl __RPC_FAR * This, IVLCControl __RPC_FAR * This,
/* [in] */ VARIANT_BOOL isPlaying); /* [in] */ VARIANT_BOOL isPlaying);
/* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Position )( /* [helpstring][propget][bindable][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Position )(
IVLCControl __RPC_FAR * This, IVLCControl __RPC_FAR * This,
/* [retval][out] */ float __RPC_FAR *position); /* [retval][out] */ float __RPC_FAR *position);
/* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *put_Position )( /* [helpstring][propput][bindable][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *put_Position )(
IVLCControl __RPC_FAR * This, IVLCControl __RPC_FAR * This,
/* [in] */ float position); /* [in] */ float position);
/* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Time )( /* [helpstring][propget][bindable][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Time )(
IVLCControl __RPC_FAR * This, IVLCControl __RPC_FAR * This,
/* [retval][out] */ int __RPC_FAR *seconds); /* [retval][out] */ int __RPC_FAR *seconds);
/* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *put_Time )( /* [helpstring][propput][bindable][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *put_Time )(
IVLCControl __RPC_FAR * This, IVLCControl __RPC_FAR * This,
/* [in] */ int seconds); /* [in] */ int seconds);
...@@ -282,7 +291,7 @@ EXTERN_C const IID IID_IVLCControl; ...@@ -282,7 +291,7 @@ EXTERN_C const IID IID_IVLCControl;
/* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *fullscreen )( /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *fullscreen )(
IVLCControl __RPC_FAR * This); IVLCControl __RPC_FAR * This);
/* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Length )( /* [helpstring][propget][bindable][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Length )(
IVLCControl __RPC_FAR * This, IVLCControl __RPC_FAR * This,
/* [retval][out] */ int __RPC_FAR *seconds); /* [retval][out] */ int __RPC_FAR *seconds);
...@@ -292,11 +301,11 @@ EXTERN_C const IID IID_IVLCControl; ...@@ -292,11 +301,11 @@ EXTERN_C const IID IID_IVLCControl;
/* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *playSlower )( /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *playSlower )(
IVLCControl __RPC_FAR * This); IVLCControl __RPC_FAR * This);
/* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Volume )( /* [helpstring][propget][bindable][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Volume )(
IVLCControl __RPC_FAR * This, IVLCControl __RPC_FAR * This,
/* [retval][out] */ int __RPC_FAR *volume); /* [retval][out] */ int __RPC_FAR *volume);
/* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *put_Volume )( /* [helpstring][propput][bindable][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *put_Volume )(
IVLCControl __RPC_FAR * This, IVLCControl __RPC_FAR * This,
/* [in] */ int volume); /* [in] */ int volume);
...@@ -482,7 +491,7 @@ void __RPC_STUB IVLCControl_put_Value_Stub( ...@@ -482,7 +491,7 @@ void __RPC_STUB IVLCControl_put_Value_Stub(
DWORD *_pdwStubPhase); DWORD *_pdwStubPhase);
/* [helpstring][bindable][propget] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_Visible_Proxy( /* [helpstring][bindable][propget][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_Visible_Proxy(
IVLCControl __RPC_FAR * This, IVLCControl __RPC_FAR * This,
/* [retval][out] */ VARIANT_BOOL __RPC_FAR *visible); /* [retval][out] */ VARIANT_BOOL __RPC_FAR *visible);
...@@ -494,7 +503,7 @@ void __RPC_STUB IVLCControl_get_Visible_Stub( ...@@ -494,7 +503,7 @@ void __RPC_STUB IVLCControl_get_Visible_Stub(
DWORD *_pdwStubPhase); DWORD *_pdwStubPhase);
/* [helpstring][bindable][propput] */ HRESULT STDMETHODCALLTYPE IVLCControl_put_Visible_Proxy( /* [helpstring][bindable][propput][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_put_Visible_Proxy(
IVLCControl __RPC_FAR * This, IVLCControl __RPC_FAR * This,
/* [in] */ VARIANT_BOOL visible); /* [in] */ VARIANT_BOOL visible);
...@@ -539,7 +548,7 @@ void __RPC_STUB IVLCControl_stop_Stub( ...@@ -539,7 +548,7 @@ void __RPC_STUB IVLCControl_stop_Stub(
DWORD *_pdwStubPhase); DWORD *_pdwStubPhase);
/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_Playing_Proxy( /* [helpstring][propget][bindable][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_Playing_Proxy(
IVLCControl __RPC_FAR * This, IVLCControl __RPC_FAR * This,
/* [retval][out] */ VARIANT_BOOL __RPC_FAR *isPlaying); /* [retval][out] */ VARIANT_BOOL __RPC_FAR *isPlaying);
...@@ -551,7 +560,7 @@ void __RPC_STUB IVLCControl_get_Playing_Stub( ...@@ -551,7 +560,7 @@ void __RPC_STUB IVLCControl_get_Playing_Stub(
DWORD *_pdwStubPhase); DWORD *_pdwStubPhase);
/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IVLCControl_put_Playing_Proxy( /* [helpstring][propput][bindable][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_put_Playing_Proxy(
IVLCControl __RPC_FAR * This, IVLCControl __RPC_FAR * This,
/* [in] */ VARIANT_BOOL isPlaying); /* [in] */ VARIANT_BOOL isPlaying);
...@@ -563,7 +572,7 @@ void __RPC_STUB IVLCControl_put_Playing_Stub( ...@@ -563,7 +572,7 @@ void __RPC_STUB IVLCControl_put_Playing_Stub(
DWORD *_pdwStubPhase); DWORD *_pdwStubPhase);
/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_Position_Proxy( /* [helpstring][propget][bindable][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_Position_Proxy(
IVLCControl __RPC_FAR * This, IVLCControl __RPC_FAR * This,