]> git.sesse.net Git - vlc/blobdiff - activex/axvlc_idl.h
Use playlist loop libvlc facility
[vlc] / activex / axvlc_idl.h
index 589c2f6beb9a5acac366a511174c7eaf033e6a2b..3a6a7b6d987957c7e9cdc07596b04adaa63a1706 100644 (file)
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
-/* File created by MIDL compiler version 5.01.0164 */
-/* at Sun Aug 21 17:16:22 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(  )
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 440
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __axvlc_idl_h__
-#define __axvlc_idl_h__
+/*** Autogenerated by WIDL 0.9.20 from axvlc.idl - Do not edit ***/
+#include <rpc.h>
+#include <rpcndr.h>
 
+#ifndef __WIDL_AXVLC_IDL_H
+#define __WIDL_AXVLC_IDL_H
 #ifdef __cplusplus
-extern "C"{
-#endif 
+extern "C" {
+#endif
+#include <oaidl.h>
 
-/* Forward Declarations */ 
+DEFINE_GUID(LIBID_AXVLC, 0xdf2bbe39, 0x40a8, 0x433b, 0xa2,0x79, 0x07,0x3f,0x48,0xda,0x94,0xb6);
 
 #ifndef __IVLCControl_FWD_DEFINED__
 #define __IVLCControl_FWD_DEFINED__
 typedef interface IVLCControl IVLCControl;
-#endif         /* __IVLCControl_FWD_DEFINED__ */
-
-
-#ifndef __DVLCEvents_FWD_DEFINED__
-#define __DVLCEvents_FWD_DEFINED__
-typedef interface DVLCEvents DVLCEvents;
-#endif         /* __DVLCEvents_FWD_DEFINED__ */
-
-
-#ifndef __VLCPlugin_FWD_DEFINED__
-#define __VLCPlugin_FWD_DEFINED__
-
-#ifdef __cplusplus
-typedef class VLCPlugin VLCPlugin;
-#else
-typedef struct VLCPlugin VLCPlugin;
-#endif /* __cplusplus */
-
-#endif         /* __VLCPlugin_FWD_DEFINED__ */
-
-
-void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
-void __RPC_USER MIDL_user_free( void __RPC_FAR * ); 
-
-
-#ifndef __AXVLC_LIBRARY_DEFINED__
-#define __AXVLC_LIBRARY_DEFINED__
-
-/* library AXVLC */
-/* [helpstring][version][uuid] */ 
+#endif
 
+#ifndef __IVLCAudio_FWD_DEFINED__
+#define __IVLCAudio_FWD_DEFINED__
+typedef interface IVLCAudio IVLCAudio;
+#endif
 
+#ifndef __IVLCInput_FWD_DEFINED__
+#define __IVLCInput_FWD_DEFINED__
+typedef interface IVLCInput IVLCInput;
+#endif
 
+#ifndef __IVLCPlaylist_FWD_DEFINED__
+#define __IVLCPlaylist_FWD_DEFINED__
+typedef interface IVLCPlaylist IVLCPlaylist;
+#endif
 
-enum VLCPlaylistMode
-    {  VLCPlayListInsert       = 1,
-       VLCPlayListInsertAndGo  = 9,
-       VLCPlayListReplace      = 2,
-       VLCPlayListReplaceAndGo = 10,
-       VLCPlayListAppend       = 4,
-       VLCPlayListAppendAndGo  = 12,
-       VLCPlayListCheckInsert  = 16
-    };
-#define        VLCPlayListEnd  ( -666 )
+#ifndef __IVLCVideo_FWD_DEFINED__
+#define __IVLCVideo_FWD_DEFINED__
+typedef interface IVLCVideo IVLCVideo;
+#endif
 
-#define        DISPID_Visible  ( 100 )
+#ifndef __IVLCControl2_FWD_DEFINED__
+#define __IVLCControl2_FWD_DEFINED__
+typedef interface IVLCControl2 IVLCControl2;
+#endif
 
-#define        DISPID_Playing  ( 101 )
+#ifndef __DVLCEvents_FWD_DEFINED__
+#define __DVLCEvents_FWD_DEFINED__
+typedef interface DVLCEvents DVLCEvents;
+#endif
 
-#define        DISPID_Position ( 102 )
+typedef enum VLCPlaylistMode {
+    VLCPlayListInsert = 1,
+    VLCPlayListInsertAndGo = 9,
+    VLCPlayListReplace = 2,
+    VLCPlayListReplaceAndGo = 10,
+    VLCPlayListAppend = 4,
+    VLCPlayListAppendAndGo = 12,
+    VLCPlayListCheckInsert = 16
+} eVLCPlaylistMode;
+#define VLCPlayListEnd (-666)
 
-#define        DISPID_Time     ( 103 )
+#define DISPID_Visible (100)
 
-#define        DISPID_Length   ( 104 )
+#define DISPID_Playing (101)
 
-#define        DISPID_Volume   ( 105 )
+#define DISPID_Position (102)
 
-#define        DISPID_MRL      ( 106 )
+#define DISPID_Time (103)
 
-#define        DISPID_AutoPlay ( 107 )
+#define DISPID_Length (104)
 
-#define        DISPID_AutoLoop ( 108 )
+#define DISPID_Volume (105)
 
-#define        DISPID_PlayEvent        ( 100 )
+#define DISPID_MRL (106)
 
-#define        DISPID_PauseEvent       ( 101 )
+#define DISPID_AutoPlay (107)
 
-#define        DISPID_StopEvent        ( 102 )
+#define DISPID_AutoLoop (108)
 
+#define DISPID_StartTime (109)
 
-EXTERN_C const IID LIBID_AXVLC;
+#define DISPID_BaseURL (110)
 
+/*****************************************************************************
+ * IVLCControl interface
+ */
 #ifndef __IVLCControl_INTERFACE_DEFINED__
 #define __IVLCControl_INTERFACE_DEFINED__
 
-/* interface IVLCControl */
-/* [object][oleautomation][hidden][dual][helpstring][uuid] */ 
-
-
-EXTERN_C const IID IID_IVLCControl;
-
+DEFINE_GUID(IID_IVLCControl, 0xc2fa41d0, 0xb113, 0x476e, 0xac,0x8c, 0x9b,0xd1,0x49,0x99,0xc1,0xc1);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-    
-    MIDL_INTERFACE("C2FA41D0-B113-476e-AC8C-9BD14999C1C1")
-    IVLCControl : public IDispatch
-    {
-    public:
-        virtual /* [helpstring][bindable][propget][id] */ HRESULT STDMETHODCALLTYPE get_Visible( 
-            /* [retval][out] */ VARIANT_BOOL __RPC_FAR *visible) = 0;
-        
-        virtual /* [helpstring][bindable][propput][id] */ HRESULT STDMETHODCALLTYPE put_Visible( 
-            /* [in] */ VARIANT_BOOL visible) = 0;
-        
-        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE play( void) = 0;
-        
-        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE pause( void) = 0;
-        
-        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE stop( void) = 0;
-        
-        virtual /* [helpstring][propget][hidden][id] */ HRESULT STDMETHODCALLTYPE get_Playing( 
-            /* [retval][out] */ VARIANT_BOOL __RPC_FAR *isPlaying) = 0;
-        
-        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Position( 
-            /* [retval][out] */ float __RPC_FAR *position) = 0;
-        
-        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Position( 
-            /* [in] */ float position) = 0;
-        
-        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Time( 
-            /* [retval][out] */ int __RPC_FAR *seconds) = 0;
-        
-        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Time( 
-            /* [in] */ int seconds) = 0;
-        
-        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE shuttle( 
-            /* [in] */ int seconds) = 0;
-        
-        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE fullscreen( void) = 0;
-        
-        virtual /* [helpstring][hidden][propget][id] */ HRESULT STDMETHODCALLTYPE get_Length( 
-            /* [retval][out] */ int __RPC_FAR *seconds) = 0;
-        
-        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE playFaster( void) = 0;
-        
-        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE playSlower( void) = 0;
-        
-        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Volume( 
-            /* [retval][out] */ int __RPC_FAR *volume) = 0;
-        
-        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Volume( 
-            /* [in] */ int volume) = 0;
-        
-        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE toggleMute( void) = 0;
-        
-        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE setVariable( 
-            /* [in] */ BSTR name,
-            /* [in] */ VARIANT value) = 0;
-        
-        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE getVariable( 
-            /* [in] */ BSTR name,
-            /* [retval][out] */ VARIANT __RPC_FAR *value) = 0;
-        
-        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE addTarget( 
-            /* [in] */ BSTR uri,
-            /* [in] */ VARIANT options,
-            /* [in] */ enum VLCPlaylistMode mode,
-            /* [in] */ int position) = 0;
-        
-        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_PlaylistIndex( 
-            /* [retval][out] */ int __RPC_FAR *index) = 0;
-        
-        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_PlaylistCount( 
-            /* [retval][out] */ int __RPC_FAR *index) = 0;
-        
-        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE playlistNext( void) = 0;
-        
-        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE playlistPrev( void) = 0;
-        
-        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE playlistClear( void) = 0;
-        
-        virtual /* [helpstring][hidden][propget] */ HRESULT STDMETHODCALLTYPE get_VersionInfo( 
-            /* [retval][out] */ BSTR __RPC_FAR *version) = 0;
-        
-        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_MRL( 
-            /* [retval][out] */ BSTR __RPC_FAR *mrl) = 0;
-        
-        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_MRL( 
-            /* [in] */ BSTR mrl) = 0;
-        
-        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AutoPlay( 
-            /* [retval][out] */ VARIANT_BOOL __RPC_FAR *autoplay) = 0;
-        
-        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AutoPlay( 
-            /* [in] */ VARIANT_BOOL autoplay) = 0;
-        
-        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AutoLoop( 
-            /* [retval][out] */ VARIANT_BOOL __RPC_FAR *autoloop) = 0;
-        
-        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AutoLoop( 
-            /* [in] */ VARIANT_BOOL autoloop) = 0;
-        
-    };
-    
-#else  /* C style interface */
-
-    typedef struct IVLCControlVtbl
-    {
-        BEGIN_INTERFACE
-        
-        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
-            IVLCControl __RPC_FAR * This,
-            /* [in] */ REFIID riid,
-            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
-        
-        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
-            IVLCControl __RPC_FAR * This);
-        
-        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
-            IVLCControl __RPC_FAR * This);
-        
-        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfoCount )( 
-            IVLCControl __RPC_FAR * This,
-            /* [out] */ UINT __RPC_FAR *pctinfo);
-        
-        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfo )( 
-            IVLCControl __RPC_FAR * This,
-            /* [in] */ UINT iTInfo,
-            /* [in] */ LCID lcid,
-            /* [out] */ ITypeInfo __RPC_FAR *__RPC_FAR *ppTInfo);
-        
-        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetIDsOfNames )( 
-            IVLCControl __RPC_FAR * This,
-            /* [in] */ REFIID riid,
-            /* [size_is][in] */ LPOLESTR __RPC_FAR *rgszNames,
-            /* [in] */ UINT cNames,
-            /* [in] */ LCID lcid,
-            /* [size_is][out] */ DISPID __RPC_FAR *rgDispId);
-        
-        /* [local] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Invoke )( 
-            IVLCControl __RPC_FAR * This,
-            /* [in] */ DISPID dispIdMember,
-            /* [in] */ REFIID riid,
-            /* [in] */ LCID lcid,
-            /* [in] */ WORD wFlags,
-            /* [out][in] */ DISPPARAMS __RPC_FAR *pDispParams,
-            /* [out] */ VARIANT __RPC_FAR *pVarResult,
-            /* [out] */ EXCEPINFO __RPC_FAR *pExcepInfo,
-            /* [out] */ UINT __RPC_FAR *puArgErr);
-        
-        /* [helpstring][bindable][propget][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Visible )( 
-            IVLCControl __RPC_FAR * This,
-            /* [retval][out] */ VARIANT_BOOL __RPC_FAR *visible);
-        
-        /* [helpstring][bindable][propput][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *put_Visible )( 
-            IVLCControl __RPC_FAR * This,
-            /* [in] */ VARIANT_BOOL visible);
-        
-        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *play )( 
-            IVLCControl __RPC_FAR * This);
-        
-        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *pause )( 
-            IVLCControl __RPC_FAR * This);
-        
-        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *stop )( 
-            IVLCControl __RPC_FAR * This);
-        
-        /* [helpstring][propget][hidden][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Playing )( 
-            IVLCControl __RPC_FAR * This,
-            /* [retval][out] */ VARIANT_BOOL __RPC_FAR *isPlaying);
-        
-        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Position )( 
-            IVLCControl __RPC_FAR * This,
-            /* [retval][out] */ float __RPC_FAR *position);
-        
-        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *put_Position )( 
-            IVLCControl __RPC_FAR * This,
-            /* [in] */ float position);
-        
-        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Time )( 
-            IVLCControl __RPC_FAR * This,
-            /* [retval][out] */ int __RPC_FAR *seconds);
-        
-        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *put_Time )( 
-            IVLCControl __RPC_FAR * This,
-            /* [in] */ int seconds);
-        
-        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *shuttle )( 
-            IVLCControl __RPC_FAR * This,
-            /* [in] */ int seconds);
-        
-        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *fullscreen )( 
-            IVLCControl __RPC_FAR * This);
-        
-        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Length )( 
-            IVLCControl __RPC_FAR * This,
-            /* [retval][out] */ int __RPC_FAR *seconds);
-        
-        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *playFaster )( 
-            IVLCControl __RPC_FAR * This);
-        
-        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *playSlower )( 
-            IVLCControl __RPC_FAR * This);
-        
-        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Volume )( 
-            IVLCControl __RPC_FAR * This,
-            /* [retval][out] */ int __RPC_FAR *volume);
-        
-        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *put_Volume )( 
-            IVLCControl __RPC_FAR * This,
-            /* [in] */ int volume);
-        
-        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *toggleMute )( 
-            IVLCControl __RPC_FAR * This);
-        
-        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *setVariable )( 
-            IVLCControl __RPC_FAR * This,
-            /* [in] */ BSTR name,
-            /* [in] */ VARIANT value);
-        
-        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *getVariable )( 
-            IVLCControl __RPC_FAR * This,
-            /* [in] */ BSTR name,
-            /* [retval][out] */ VARIANT __RPC_FAR *value);
-        
-        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *addTarget )( 
-            IVLCControl __RPC_FAR * This,
-            /* [in] */ BSTR uri,
-            /* [in] */ VARIANT options,
-            /* [in] */ enum VLCPlaylistMode mode,
-            /* [in] */ int position);
-        
-        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_PlaylistIndex )( 
-            IVLCControl __RPC_FAR * This,
-            /* [retval][out] */ int __RPC_FAR *index);
-        
-        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_PlaylistCount )( 
-            IVLCControl __RPC_FAR * This,
-            /* [retval][out] */ int __RPC_FAR *index);
-        
-        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *playlistNext )( 
-            IVLCControl __RPC_FAR * This);
-        
-        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *playlistPrev )( 
-            IVLCControl __RPC_FAR * This);
-        
-        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *playlistClear )( 
-            IVLCControl __RPC_FAR * This);
-        
-        /* [helpstring][hidden][propget] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_VersionInfo )( 
-            IVLCControl __RPC_FAR * This,
-            /* [retval][out] */ BSTR __RPC_FAR *version);
-        
-        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_MRL )( 
-            IVLCControl __RPC_FAR * This,
-            /* [retval][out] */ BSTR __RPC_FAR *mrl);
-        
-        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *put_MRL )( 
-            IVLCControl __RPC_FAR * This,
-            /* [in] */ BSTR mrl);
-        
-        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_AutoPlay )( 
-            IVLCControl __RPC_FAR * This,
-            /* [retval][out] */ VARIANT_BOOL __RPC_FAR *autoplay);
-        
-        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *put_AutoPlay )( 
-            IVLCControl __RPC_FAR * This,
-            /* [in] */ VARIANT_BOOL autoplay);
-        
-        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_AutoLoop )( 
-            IVLCControl __RPC_FAR * This,
-            /* [retval][out] */ VARIANT_BOOL __RPC_FAR *autoloop);
-        
-        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *put_AutoLoop )( 
-            IVLCControl __RPC_FAR * This,
-            /* [in] */ VARIANT_BOOL autoloop);
-        
-        END_INTERFACE
-    } IVLCControlVtbl;
-
-    interface IVLCControl
-    {
-        CONST_VTBL struct IVLCControlVtbl __RPC_FAR *lpVtbl;
-    };
-
-    
-
-#ifdef COBJMACROS
-
-
-#define IVLCControl_QueryInterface(This,riid,ppvObject)        \
-    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+interface IVLCControl : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Visible(
+        VARIANT_BOOL* visible) = 0;
 
-#define IVLCControl_AddRef(This)       \
-    (This)->lpVtbl -> AddRef(This)
+    virtual HRESULT STDMETHODCALLTYPE put_Visible(
+        VARIANT_BOOL visible) = 0;
 
-#define IVLCControl_Release(This)      \
-    (This)->lpVtbl -> Release(This)
+    virtual HRESULT STDMETHODCALLTYPE play(
+        ) = 0;
 
+    virtual HRESULT STDMETHODCALLTYPE pause(
+        ) = 0;
 
-#define IVLCControl_GetTypeInfoCount(This,pctinfo)     \
-    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+    virtual HRESULT STDMETHODCALLTYPE stop(
+        ) = 0;
 
-#define IVLCControl_GetTypeInfo(This,iTInfo,lcid,ppTInfo)      \
-    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+    virtual HRESULT STDMETHODCALLTYPE get_Playing(
+        VARIANT_BOOL* isPlaying) = 0;
 
-#define IVLCControl_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)    \
-    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+    virtual HRESULT STDMETHODCALLTYPE get_Position(
+        float* position) = 0;
 
-#define IVLCControl_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)      \
-    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+    virtual HRESULT STDMETHODCALLTYPE put_Position(
+        float position) = 0;
 
+    virtual HRESULT STDMETHODCALLTYPE get_Time(
+        int* seconds) = 0;
 
-#define IVLCControl_get_Visible(This,visible)  \
-    (This)->lpVtbl -> get_Visible(This,visible)
+    virtual HRESULT STDMETHODCALLTYPE put_Time(
+        int seconds) = 0;
 
-#define IVLCControl_put_Visible(This,visible)  \
-    (This)->lpVtbl -> put_Visible(This,visible)
+    virtual HRESULT STDMETHODCALLTYPE shuttle(
+        int seconds) = 0;
 
-#define IVLCControl_play(This) \
-    (This)->lpVtbl -> play(This)
+    virtual HRESULT STDMETHODCALLTYPE fullscreen(
+        ) = 0;
 
-#define IVLCControl_pause(This)        \
-    (This)->lpVtbl -> pause(This)
+    virtual HRESULT STDMETHODCALLTYPE get_Length(
+        int* seconds) = 0;
 
-#define IVLCControl_stop(This) \
-    (This)->lpVtbl -> stop(This)
+    virtual HRESULT STDMETHODCALLTYPE playFaster(
+        ) = 0;
 
-#define IVLCControl_get_Playing(This,isPlaying)        \
-    (This)->lpVtbl -> get_Playing(This,isPlaying)
+    virtual HRESULT STDMETHODCALLTYPE playSlower(
+        ) = 0;
 
-#define IVLCControl_get_Position(This,position)        \
-    (This)->lpVtbl -> get_Position(This,position)
+    virtual HRESULT STDMETHODCALLTYPE get_Volume(
+        int* volume) = 0;
 
-#define IVLCControl_put_Position(This,position)        \
-    (This)->lpVtbl -> put_Position(This,position)
+    virtual HRESULT STDMETHODCALLTYPE put_Volume(
+        int volume) = 0;
 
-#define IVLCControl_get_Time(This,seconds)     \
-    (This)->lpVtbl -> get_Time(This,seconds)
+    virtual HRESULT STDMETHODCALLTYPE toggleMute(
+        ) = 0;
 
-#define IVLCControl_put_Time(This,seconds)     \
-    (This)->lpVtbl -> put_Time(This,seconds)
+    virtual HRESULT STDMETHODCALLTYPE setVariable(
+        BSTR name,
+        VARIANT value) = 0;
 
-#define IVLCControl_shuttle(This,seconds)      \
-    (This)->lpVtbl -> shuttle(This,seconds)
+    virtual HRESULT STDMETHODCALLTYPE getVariable(
+        BSTR name,
+        VARIANT* value) = 0;
 
-#define IVLCControl_fullscreen(This)   \
-    (This)->lpVtbl -> fullscreen(This)
+    virtual HRESULT STDMETHODCALLTYPE addTarget(
+        BSTR uri,
+        VARIANT options,
+        enum VLCPlaylistMode mode,
+        int position) = 0;
 
-#define IVLCControl_get_Length(This,seconds)   \
-    (This)->lpVtbl -> get_Length(This,seconds)
+    virtual HRESULT STDMETHODCALLTYPE get_PlaylistIndex(
+        int* index) = 0;
 
-#define IVLCControl_playFaster(This)   \
-    (This)->lpVtbl -> playFaster(This)
+    virtual HRESULT STDMETHODCALLTYPE get_PlaylistCount(
+        int* index) = 0;
 
-#define IVLCControl_playSlower(This)   \
-    (This)->lpVtbl -> playSlower(This)
+    virtual HRESULT STDMETHODCALLTYPE playlistNext(
+        ) = 0;
 
-#define IVLCControl_get_Volume(This,volume)    \
-    (This)->lpVtbl -> get_Volume(This,volume)
+    virtual HRESULT STDMETHODCALLTYPE playlistPrev(
+        ) = 0;
 
-#define IVLCControl_put_Volume(This,volume)    \
-    (This)->lpVtbl -> put_Volume(This,volume)
+    virtual HRESULT STDMETHODCALLTYPE playlistClear(
+        ) = 0;
 
-#define IVLCControl_toggleMute(This)   \
-    (This)->lpVtbl -> toggleMute(This)
+    virtual HRESULT STDMETHODCALLTYPE get_VersionInfo(
+        BSTR* version) = 0;
 
-#define IVLCControl_setVariable(This,name,value)       \
-    (This)->lpVtbl -> setVariable(This,name,value)
+    virtual HRESULT STDMETHODCALLTYPE get_MRL(
+        BSTR* mrl) = 0;
 
-#define IVLCControl_getVariable(This,name,value)       \
-    (This)->lpVtbl -> getVariable(This,name,value)
+    virtual HRESULT STDMETHODCALLTYPE put_MRL(
+        BSTR mrl) = 0;
 
-#define IVLCControl_addTarget(This,uri,options,mode,position)  \
-    (This)->lpVtbl -> addTarget(This,uri,options,mode,position)
+    virtual HRESULT STDMETHODCALLTYPE get_AutoPlay(
+        VARIANT_BOOL* autoplay) = 0;
 
-#define IVLCControl_get_PlaylistIndex(This,index)      \
-    (This)->lpVtbl -> get_PlaylistIndex(This,index)
+    virtual HRESULT STDMETHODCALLTYPE put_AutoPlay(
+        VARIANT_BOOL autoplay) = 0;
 
-#define IVLCControl_get_PlaylistCount(This,index)      \
-    (This)->lpVtbl -> get_PlaylistCount(This,index)
+    virtual HRESULT STDMETHODCALLTYPE get_AutoLoop(
+        VARIANT_BOOL* autoloop) = 0;
 
-#define IVLCControl_playlistNext(This) \
-    (This)->lpVtbl -> playlistNext(This)
+    virtual HRESULT STDMETHODCALLTYPE put_AutoLoop(
+        VARIANT_BOOL autoloop) = 0;
 
-#define IVLCControl_playlistPrev(This) \
-    (This)->lpVtbl -> playlistPrev(This)
-
-#define IVLCControl_playlistClear(This)        \
-    (This)->lpVtbl -> playlistClear(This)
-
-#define IVLCControl_get_VersionInfo(This,version)      \
-    (This)->lpVtbl -> get_VersionInfo(This,version)
-
-#define IVLCControl_get_MRL(This,mrl)  \
-    (This)->lpVtbl -> get_MRL(This,mrl)
+};
+#else
+typedef struct IVLCControlVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IVLCControl* This,
+        REFIID riid,
+        void** ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IVLCControl* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IVLCControl* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IVLCControl* This,
+        UINT* pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IVLCControl* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo** ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IVLCControl* This,
+        REFIID riid,
+        LPOLESTR* rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID* rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IVLCControl* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS* pDispParams,
+        VARIANT* pVarResult,
+        EXCEPINFO* pExcepInfo,
+        UINT* puArgErr);
+
+    /*** IVLCControl methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Visible)(
+        IVLCControl* This,
+        VARIANT_BOOL* visible);
+
+    HRESULT (STDMETHODCALLTYPE *put_Visible)(
+        IVLCControl* This,
+        VARIANT_BOOL visible);
+
+    HRESULT (STDMETHODCALLTYPE *play)(
+        IVLCControl* This);
+
+    HRESULT (STDMETHODCALLTYPE *pause)(
+        IVLCControl* This);
+
+    HRESULT (STDMETHODCALLTYPE *stop)(
+        IVLCControl* This);
+
+    HRESULT (STDMETHODCALLTYPE *get_Playing)(
+        IVLCControl* This,
+        VARIANT_BOOL* isPlaying);
+
+    HRESULT (STDMETHODCALLTYPE *get_Position)(
+        IVLCControl* This,
+        float* position);
+
+    HRESULT (STDMETHODCALLTYPE *put_Position)(
+        IVLCControl* This,
+        float position);
+
+    HRESULT (STDMETHODCALLTYPE *get_Time)(
+        IVLCControl* This,
+        int* seconds);
+
+    HRESULT (STDMETHODCALLTYPE *put_Time)(
+        IVLCControl* This,
+        int seconds);
+
+    HRESULT (STDMETHODCALLTYPE *shuttle)(
+        IVLCControl* This,
+        int seconds);
+
+    HRESULT (STDMETHODCALLTYPE *fullscreen)(
+        IVLCControl* This);
+
+    HRESULT (STDMETHODCALLTYPE *get_Length)(
+        IVLCControl* This,
+        int* seconds);
+
+    HRESULT (STDMETHODCALLTYPE *playFaster)(
+        IVLCControl* This);
+
+    HRESULT (STDMETHODCALLTYPE *playSlower)(
+        IVLCControl* This);
+
+    HRESULT (STDMETHODCALLTYPE *get_Volume)(
+        IVLCControl* This,
+        int* volume);
+
+    HRESULT (STDMETHODCALLTYPE *put_Volume)(
+        IVLCControl* This,
+        int volume);
+
+    HRESULT (STDMETHODCALLTYPE *toggleMute)(
+        IVLCControl* This);
+
+    HRESULT (STDMETHODCALLTYPE *setVariable)(
+        IVLCControl* This,
+        BSTR name,
+        VARIANT value);
+
+    HRESULT (STDMETHODCALLTYPE *getVariable)(
+        IVLCControl* This,
+        BSTR name,
+        VARIANT* value);
+
+    HRESULT (STDMETHODCALLTYPE *addTarget)(
+        IVLCControl* This,
+        BSTR uri,
+        VARIANT options,
+        enum VLCPlaylistMode mode,
+        int position);
+
+    HRESULT (STDMETHODCALLTYPE *get_PlaylistIndex)(
+        IVLCControl* This,
+        int* index);
+
+    HRESULT (STDMETHODCALLTYPE *get_PlaylistCount)(
+        IVLCControl* This,
+        int* index);
+
+    HRESULT (STDMETHODCALLTYPE *playlistNext)(
+        IVLCControl* This);
 
-#define IVLCControl_put_MRL(This,mrl)  \
-    (This)->lpVtbl -> put_MRL(This,mrl)
+    HRESULT (STDMETHODCALLTYPE *playlistPrev)(
+        IVLCControl* This);
 
-#define IVLCControl_get_AutoPlay(This,autoplay)        \
-    (This)->lpVtbl -> get_AutoPlay(This,autoplay)
+    HRESULT (STDMETHODCALLTYPE *playlistClear)(
+        IVLCControl* This);
 
-#define IVLCControl_put_AutoPlay(This,autoplay)        \
-    (This)->lpVtbl -> put_AutoPlay(This,autoplay)
+    HRESULT (STDMETHODCALLTYPE *get_VersionInfo)(
+        IVLCControl* This,
+        BSTR* version);
 
-#define IVLCControl_get_AutoLoop(This,autoloop)        \
-    (This)->lpVtbl -> get_AutoLoop(This,autoloop)
+    HRESULT (STDMETHODCALLTYPE *get_MRL)(
+        IVLCControl* This,
+        BSTR* mrl);
 
-#define IVLCControl_put_AutoLoop(This,autoloop)        \
-    (This)->lpVtbl -> put_AutoLoop(This,autoloop)
+    HRESULT (STDMETHODCALLTYPE *put_MRL)(
+        IVLCControl* This,
+        BSTR mrl);
 
-#endif /* COBJMACROS */
+    HRESULT (STDMETHODCALLTYPE *get_AutoPlay)(
+        IVLCControl* This,
+        VARIANT_BOOL* autoplay);
 
+    HRESULT (STDMETHODCALLTYPE *put_AutoPlay)(
+        IVLCControl* This,
+        VARIANT_BOOL autoplay);
 
-#endif         /* C style interface */
+    HRESULT (STDMETHODCALLTYPE *get_AutoLoop)(
+        IVLCControl* This,
+        VARIANT_BOOL* autoloop);
 
+    HRESULT (STDMETHODCALLTYPE *put_AutoLoop)(
+        IVLCControl* This,
+        VARIANT_BOOL autoloop);
 
+    END_INTERFACE
+} IVLCControlVtbl;
+interface IVLCControl {
+    const IVLCControlVtbl* lpVtbl;
+};
 
-/* [helpstring][bindable][propget][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_Visible_Proxy( 
-    IVLCControl __RPC_FAR * This,
-    /* [retval][out] */ VARIANT_BOOL __RPC_FAR *visible);
+#ifdef COBJMACROS
+/*** IUnknown methods ***/
+#define IVLCControl_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IVLCControl_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IVLCControl_Release(p) (p)->lpVtbl->Release(p)
+/*** IDispatch methods ***/
+#define IVLCControl_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
+#define IVLCControl_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
+#define IVLCControl_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
+#define IVLCControl_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
+/*** IVLCControl methods ***/
+#define IVLCControl_get_Visible(p,a) (p)->lpVtbl->get_Visible(p,a)
+#define IVLCControl_put_Visible(p,a) (p)->lpVtbl->put_Visible(p,a)
+#define IVLCControl_play(p) (p)->lpVtbl->play(p)
+#define IVLCControl_pause(p) (p)->lpVtbl->pause(p)
+#define IVLCControl_stop(p) (p)->lpVtbl->stop(p)
+#define IVLCControl_get_Playing(p,a) (p)->lpVtbl->get_Playing(p,a)
+#define IVLCControl_get_Position(p,a) (p)->lpVtbl->get_Position(p,a)
+#define IVLCControl_put_Position(p,a) (p)->lpVtbl->put_Position(p,a)
+#define IVLCControl_get_Time(p,a) (p)->lpVtbl->get_Time(p,a)
+#define IVLCControl_put_Time(p,a) (p)->lpVtbl->put_Time(p,a)
+#define IVLCControl_shuttle(p,a) (p)->lpVtbl->shuttle(p,a)
+#define IVLCControl_fullscreen(p) (p)->lpVtbl->fullscreen(p)
+#define IVLCControl_get_Length(p,a) (p)->lpVtbl->get_Length(p,a)
+#define IVLCControl_playFaster(p) (p)->lpVtbl->playFaster(p)
+#define IVLCControl_playSlower(p) (p)->lpVtbl->playSlower(p)
+#define IVLCControl_get_Volume(p,a) (p)->lpVtbl->get_Volume(p,a)
+#define IVLCControl_put_Volume(p,a) (p)->lpVtbl->put_Volume(p,a)
+#define IVLCControl_toggleMute(p) (p)->lpVtbl->toggleMute(p)
+#define IVLCControl_setVariable(p,a,b) (p)->lpVtbl->setVariable(p,a,b)
+#define IVLCControl_getVariable(p,a,b) (p)->lpVtbl->getVariable(p,a,b)
+#define IVLCControl_addTarget(p,a,b,c,d) (p)->lpVtbl->addTarget(p,a,b,c,d)
+#define IVLCControl_get_PlaylistIndex(p,a) (p)->lpVtbl->get_PlaylistIndex(p,a)
+#define IVLCControl_get_PlaylistCount(p,a) (p)->lpVtbl->get_PlaylistCount(p,a)
+#define IVLCControl_playlistNext(p) (p)->lpVtbl->playlistNext(p)
+#define IVLCControl_playlistPrev(p) (p)->lpVtbl->playlistPrev(p)
+#define IVLCControl_playlistClear(p) (p)->lpVtbl->playlistClear(p)
+#define IVLCControl_get_VersionInfo(p,a) (p)->lpVtbl->get_VersionInfo(p,a)
+#define IVLCControl_get_MRL(p,a) (p)->lpVtbl->get_MRL(p,a)
+#define IVLCControl_put_MRL(p,a) (p)->lpVtbl->put_MRL(p,a)
+#define IVLCControl_get_AutoPlay(p,a) (p)->lpVtbl->get_AutoPlay(p,a)
+#define IVLCControl_put_AutoPlay(p,a) (p)->lpVtbl->put_AutoPlay(p,a)
+#define IVLCControl_get_AutoLoop(p,a) (p)->lpVtbl->get_AutoLoop(p,a)
+#define IVLCControl_put_AutoLoop(p,a) (p)->lpVtbl->put_AutoLoop(p,a)
+#endif
 
+#endif
 
+HRESULT CALLBACK IVLCControl_get_Visible_Proxy(
+    IVLCControl* This,
+    VARIANT_BOOL* visible);
 void __RPC_STUB IVLCControl_get_Visible_Stub(
-    IRpcStubBuffer *This,
-    IRpcChannelBuffer *_pRpcChannelBuffer,
-    PRPC_MESSAGE _pRpcMessage,
-    DWORD *_pdwStubPhase);
-
-
-/* [helpstring][bindable][propput][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_put_Visible_Proxy( 
-    IVLCControl __RPC_FAR * This,
-    /* [in] */ VARIANT_BOOL visible);
-
-
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_put_Visible_Proxy(
+    IVLCControl* This,
+    VARIANT_BOOL visible);
 void __RPC_STUB IVLCControl_put_Visible_Stub(
-    IRpcStubBuffer *This,
-    IRpcChannelBuffer *_pRpcChannelBuffer,
-    PRPC_MESSAGE _pRpcMessage,
-    DWORD *_pdwStubPhase);
-
-
-/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_play_Proxy( 
-    IVLCControl __RPC_FAR * This);
-
-
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_play_Proxy(
+    IVLCControl* This);
 void __RPC_STUB IVLCControl_play_Stub(
-    IRpcStubBuffer *This,
-    IRpcChannelBuffer *_pRpcChannelBuffer,
-    PRPC_MESSAGE _pRpcMessage,
-    DWORD *_pdwStubPhase);
-
-
-/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_pause_Proxy( 
-    IVLCControl __RPC_FAR * This);
-
-
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_pause_Proxy(
+    IVLCControl* This);
 void __RPC_STUB IVLCControl_pause_Stub(
-    IRpcStubBuffer *This,
-    IRpcChannelBuffer *_pRpcChannelBuffer,
-    PRPC_MESSAGE _pRpcMessage,
-    DWORD *_pdwStubPhase);
-
-
-/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_stop_Proxy( 
-    IVLCControl __RPC_FAR * This);
-
-
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_stop_Proxy(
+    IVLCControl* This);
 void __RPC_STUB IVLCControl_stop_Stub(
-    IRpcStubBuffer *This,
-    IRpcChannelBuffer *_pRpcChannelBuffer,
-    PRPC_MESSAGE _pRpcMessage,
-    DWORD *_pdwStubPhase);
-
-
-/* [helpstring][propget][hidden][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_Playing_Proxy( 
-    IVLCControl __RPC_FAR * This,
-    /* [retval][out] */ VARIANT_BOOL __RPC_FAR *isPlaying);
-
-
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_get_Playing_Proxy(
+    IVLCControl* This,
+    VARIANT_BOOL* isPlaying);
 void __RPC_STUB IVLCControl_get_Playing_Stub(
-    IRpcStubBuffer *This,
-    IRpcChannelBuffer *_pRpcChannelBuffer,
-    PRPC_MESSAGE _pRpcMessage,
-    DWORD *_pdwStubPhase);
-
-
-/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_Position_Proxy( 
-    IVLCControl __RPC_FAR * This,
-    /* [retval][out] */ float __RPC_FAR *position);
-
-
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_get_Position_Proxy(
+    IVLCControl* This,
+    float* position);
 void __RPC_STUB IVLCControl_get_Position_Stub(
-    IRpcStubBuffer *This,
-    IRpcChannelBuffer *_pRpcChannelBuffer,
-    PRPC_MESSAGE _pRpcMessage,
-    DWORD *_pdwStubPhase);
-
-
-/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_put_Position_Proxy( 
-    IVLCControl __RPC_FAR * This,
-    /* [in] */ float position);
-
-
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_put_Position_Proxy(
+    IVLCControl* This,
+    float position);
 void __RPC_STUB IVLCControl_put_Position_Stub(
-    IRpcStubBuffer *This,
-    IRpcChannelBuffer *_pRpcChannelBuffer,
-    PRPC_MESSAGE _pRpcMessage,
-    DWORD *_pdwStubPhase);
-
-
-/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_Time_Proxy( 
-    IVLCControl __RPC_FAR * This,
-    /* [retval][out] */ int __RPC_FAR *seconds);
-
-
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_get_Time_Proxy(
+    IVLCControl* This,
+    int* seconds);
 void __RPC_STUB IVLCControl_get_Time_Stub(
-    IRpcStubBuffer *This,
-    IRpcChannelBuffer *_pRpcChannelBuffer,
-    PRPC_MESSAGE _pRpcMessage,
-    DWORD *_pdwStubPhase);
-
-
-/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_put_Time_Proxy( 
-    IVLCControl __RPC_FAR * This,
-    /* [in] */ int seconds);
-
-
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_put_Time_Proxy(
+    IVLCControl* This,
+    int seconds);
 void __RPC_STUB IVLCControl_put_Time_Stub(
-    IRpcStubBuffer *This,
-    IRpcChannelBuffer *_pRpcChannelBuffer,
-    PRPC_MESSAGE _pRpcMessage,
-    DWORD *_pdwStubPhase);
-
-
-/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_shuttle_Proxy( 
-    IVLCControl __RPC_FAR * This,
-    /* [in] */ int seconds);
-
-
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_shuttle_Proxy(
+    IVLCControl* This,
+    int seconds);
 void __RPC_STUB IVLCControl_shuttle_Stub(
-    IRpcStubBuffer *This,
-    IRpcChannelBuffer *_pRpcChannelBuffer,
-    PRPC_MESSAGE _pRpcMessage,
-    DWORD *_pdwStubPhase);
-
-
-/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_fullscreen_Proxy( 
-    IVLCControl __RPC_FAR * This);
-
-
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_fullscreen_Proxy(
+    IVLCControl* This);
 void __RPC_STUB IVLCControl_fullscreen_Stub(
-    IRpcStubBuffer *This,
-    IRpcChannelBuffer *_pRpcChannelBuffer,
-    PRPC_MESSAGE _pRpcMessage,
-    DWORD *_pdwStubPhase);
-
-
-/* [helpstring][hidden][propget][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_Length_Proxy( 
-    IVLCControl __RPC_FAR * This,
-    /* [retval][out] */ int __RPC_FAR *seconds);
-
-
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_get_Length_Proxy(
+    IVLCControl* This,
+    int* seconds);
 void __RPC_STUB IVLCControl_get_Length_Stub(
-    IRpcStubBuffer *This,
-    IRpcChannelBuffer *_pRpcChannelBuffer,
-    PRPC_MESSAGE _pRpcMessage,
-    DWORD *_pdwStubPhase);
-
-
-/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_playFaster_Proxy( 
-    IVLCControl __RPC_FAR * This);
-
-
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_playFaster_Proxy(
+    IVLCControl* This);
 void __RPC_STUB IVLCControl_playFaster_Stub(
-    IRpcStubBuffer *This,
-    IRpcChannelBuffer *_pRpcChannelBuffer,
-    PRPC_MESSAGE _pRpcMessage,
-    DWORD *_pdwStubPhase);
-
-
-/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_playSlower_Proxy( 
-    IVLCControl __RPC_FAR * This);
-
-
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_playSlower_Proxy(
+    IVLCControl* This);
 void __RPC_STUB IVLCControl_playSlower_Stub(
-    IRpcStubBuffer *This,
-    IRpcChannelBuffer *_pRpcChannelBuffer,
-    PRPC_MESSAGE _pRpcMessage,
-    DWORD *_pdwStubPhase);
-
-
-/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_Volume_Proxy( 
-    IVLCControl __RPC_FAR * This,
-    /* [retval][out] */ int __RPC_FAR *volume);
-
-
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_get_Volume_Proxy(
+    IVLCControl* This,
+    int* volume);
 void __RPC_STUB IVLCControl_get_Volume_Stub(
-    IRpcStubBuffer *This,
-    IRpcChannelBuffer *_pRpcChannelBuffer,
-    PRPC_MESSAGE _pRpcMessage,
-    DWORD *_pdwStubPhase);
-
-
-/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_put_Volume_Proxy( 
-    IVLCControl __RPC_FAR * This,
-    /* [in] */ int volume);
-
-
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_put_Volume_Proxy(
+    IVLCControl* This,
+    int volume);
 void __RPC_STUB IVLCControl_put_Volume_Stub(
-    IRpcStubBuffer *This,
-    IRpcChannelBuffer *_pRpcChannelBuffer,
-    PRPC_MESSAGE _pRpcMessage,
-    DWORD *_pdwStubPhase);
-
-
-/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_toggleMute_Proxy( 
-    IVLCControl __RPC_FAR * This);
-
-
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_toggleMute_Proxy(
+    IVLCControl* This);
 void __RPC_STUB IVLCControl_toggleMute_Stub(
-    IRpcStubBuffer *This,
-    IRpcChannelBuffer *_pRpcChannelBuffer,
-    PRPC_MESSAGE _pRpcMessage,
-    DWORD *_pdwStubPhase);
-
-
-/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_setVariable_Proxy( 
-    IVLCControl __RPC_FAR * This,
-    /* [in] */ BSTR name,
-    /* [in] */ VARIANT value);
-
-
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_setVariable_Proxy(
+    IVLCControl* This,
+    BSTR name,
+    VARIANT value);
 void __RPC_STUB IVLCControl_setVariable_Stub(
-    IRpcStubBuffer *This,
-    IRpcChannelBuffer *_pRpcChannelBuffer,
-    PRPC_MESSAGE _pRpcMessage,
-    DWORD *_pdwStubPhase);
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_getVariable_Proxy(
+    IVLCControl* This,
+    BSTR name,
+    VARIANT* value);
+void __RPC_STUB IVLCControl_getVariable_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_addTarget_Proxy(
+    IVLCControl* This,
+    BSTR uri,
+    VARIANT options,
+    enum VLCPlaylistMode mode,
+    int position);
+void __RPC_STUB IVLCControl_addTarget_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_get_PlaylistIndex_Proxy(
+    IVLCControl* This,
+    int* index);
+void __RPC_STUB IVLCControl_get_PlaylistIndex_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_get_PlaylistCount_Proxy(
+    IVLCControl* This,
+    int* index);
+void __RPC_STUB IVLCControl_get_PlaylistCount_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_playlistNext_Proxy(
+    IVLCControl* This);
+void __RPC_STUB IVLCControl_playlistNext_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_playlistPrev_Proxy(
+    IVLCControl* This);
+void __RPC_STUB IVLCControl_playlistPrev_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_playlistClear_Proxy(
+    IVLCControl* This);
+void __RPC_STUB IVLCControl_playlistClear_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_get_VersionInfo_Proxy(
+    IVLCControl* This,
+    BSTR* version);
+void __RPC_STUB IVLCControl_get_VersionInfo_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_get_MRL_Proxy(
+    IVLCControl* This,
+    BSTR* mrl);
+void __RPC_STUB IVLCControl_get_MRL_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_put_MRL_Proxy(
+    IVLCControl* This,
+    BSTR mrl);
+void __RPC_STUB IVLCControl_put_MRL_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_get_AutoPlay_Proxy(
+    IVLCControl* This,
+    VARIANT_BOOL* autoplay);
+void __RPC_STUB IVLCControl_get_AutoPlay_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_put_AutoPlay_Proxy(
+    IVLCControl* This,
+    VARIANT_BOOL autoplay);
+void __RPC_STUB IVLCControl_put_AutoPlay_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_get_AutoLoop_Proxy(
+    IVLCControl* This,
+    VARIANT_BOOL* autoloop);
+void __RPC_STUB IVLCControl_get_AutoLoop_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_put_AutoLoop_Proxy(
+    IVLCControl* This,
+    VARIANT_BOOL autoloop);
+void __RPC_STUB IVLCControl_put_AutoLoop_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
 
+#endif  /* __IVLCControl_INTERFACE_DEFINED__ */
 
-/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_getVariable_Proxy( 
-    IVLCControl __RPC_FAR * This,
-    /* [in] */ BSTR name,
-    /* [retval][out] */ VARIANT __RPC_FAR *value);
+#define DISPID_PlayEvent (100)
 
+#define DISPID_PauseEvent (101)
 
-void __RPC_STUB IVLCControl_getVariable_Stub(
-    IRpcStubBuffer *This,
-    IRpcChannelBuffer *_pRpcChannelBuffer,
-    PRPC_MESSAGE _pRpcMessage,
-    DWORD *_pdwStubPhase);
+#define DISPID_StopEvent (102)
 
+/*****************************************************************************
+ * DVLCEvents dispinterface
+ */
+#ifndef __DVLCEvents_DISPINTERFACE_DEFINED__
+#define __DVLCEvents_DISPINTERFACE_DEFINED__
 
-/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_addTarget_Proxy( 
-    IVLCControl __RPC_FAR * This,
-    /* [in] */ BSTR uri,
-    /* [in] */ VARIANT options,
-    /* [in] */ enum VLCPlaylistMode mode,
-    /* [in] */ int position);
+DEFINE_GUID(DIID_DVLCEvents, 0xdf48072f, 0x5ef8, 0x434e, 0x9b,0x40, 0xe2,0xf3,0xae,0x75,0x9b,0x5f);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+interface DVLCEvents : public IDispatch
+{
+};
+#else
+typedef struct DVLCEventsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        DVLCEvents* This,
+        REFIID riid,
+        void** ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        DVLCEvents* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        DVLCEvents* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        DVLCEvents* This,
+        UINT* pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        DVLCEvents* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo** ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        DVLCEvents* This,
+        REFIID riid,
+        LPOLESTR* rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID* rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        DVLCEvents* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS* pDispParams,
+        VARIANT* pVarResult,
+        EXCEPINFO* pExcepInfo,
+        UINT* puArgErr);
+
+    END_INTERFACE
+} DVLCEventsVtbl;
+interface DVLCEvents {
+    const DVLCEventsVtbl* lpVtbl;
+};
 
+#ifdef COBJMACROS
+/*** IUnknown methods ***/
+#define DVLCEvents_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define DVLCEvents_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define DVLCEvents_Release(p) (p)->lpVtbl->Release(p)
+/*** IDispatch methods ***/
+#define DVLCEvents_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
+#define DVLCEvents_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
+#define DVLCEvents_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
+#define DVLCEvents_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
+#endif
 
-void __RPC_STUB IVLCControl_addTarget_Stub(
-    IRpcStubBuffer *This,
-    IRpcChannelBuffer *_pRpcChannelBuffer,
-    PRPC_MESSAGE _pRpcMessage,
-    DWORD *_pdwStubPhase);
+#endif
 
+#endif  /* __DVLCEvents_DISPINTERFACE_DEFINED__ */
 
-/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_PlaylistIndex_Proxy( 
-    IVLCControl __RPC_FAR * This,
-    /* [retval][out] */ int __RPC_FAR *index);
+/*****************************************************************************
+ * IVLCAudio interface
+ */
+#ifndef __IVLCAudio_INTERFACE_DEFINED__
+#define __IVLCAudio_INTERFACE_DEFINED__
 
+DEFINE_GUID(IID_IVLCAudio, 0x9e0bd17b, 0x2d3c, 0x4656, 0xb9,0x4d, 0x03,0x08,0x4f,0x3f,0xd9,0xd4);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+interface IVLCAudio : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_mute(
+        VARIANT_BOOL* muted) = 0;
 
-void __RPC_STUB IVLCControl_get_PlaylistIndex_Stub(
-    IRpcStubBuffer *This,
-    IRpcChannelBuffer *_pRpcChannelBuffer,
-    PRPC_MESSAGE _pRpcMessage,
-    DWORD *_pdwStubPhase);
+    virtual HRESULT STDMETHODCALLTYPE put_mute(
+        VARIANT_BOOL muted) = 0;
 
+    virtual HRESULT STDMETHODCALLTYPE get_volume(
+        int* volume) = 0;
 
-/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_PlaylistCount_Proxy( 
-    IVLCControl __RPC_FAR * This,
-    /* [retval][out] */ int __RPC_FAR *index);
+    virtual HRESULT STDMETHODCALLTYPE put_volume(
+        int volume) = 0;
 
+    virtual HRESULT STDMETHODCALLTYPE toggleMute(
+        ) = 0;
 
-void __RPC_STUB IVLCControl_get_PlaylistCount_Stub(
-    IRpcStubBuffer *This,
-    IRpcChannelBuffer *_pRpcChannelBuffer,
-    PRPC_MESSAGE _pRpcMessage,
-    DWORD *_pdwStubPhase);
+};
+#else
+typedef struct IVLCAudioVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IVLCAudio* This,
+        REFIID riid,
+        void** ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IVLCAudio* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IVLCAudio* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IVLCAudio* This,
+        UINT* pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IVLCAudio* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo** ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IVLCAudio* This,
+        REFIID riid,
+        LPOLESTR* rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID* rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IVLCAudio* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS* pDispParams,
+        VARIANT* pVarResult,
+        EXCEPINFO* pExcepInfo,
+        UINT* puArgErr);
+
+    /*** IVLCAudio methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_mute)(
+        IVLCAudio* This,
+        VARIANT_BOOL* muted);
+
+    HRESULT (STDMETHODCALLTYPE *put_mute)(
+        IVLCAudio* This,
+        VARIANT_BOOL muted);
+
+    HRESULT (STDMETHODCALLTYPE *get_volume)(
+        IVLCAudio* This,
+        int* volume);
+
+    HRESULT (STDMETHODCALLTYPE *put_volume)(
+        IVLCAudio* This,
+        int volume);
+
+    HRESULT (STDMETHODCALLTYPE *toggleMute)(
+        IVLCAudio* This);
+
+    END_INTERFACE
+} IVLCAudioVtbl;
+interface IVLCAudio {
+    const IVLCAudioVtbl* lpVtbl;
+};
 
+#ifdef COBJMACROS
+/*** IUnknown methods ***/
+#define IVLCAudio_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IVLCAudio_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IVLCAudio_Release(p) (p)->lpVtbl->Release(p)
+/*** IDispatch methods ***/
+#define IVLCAudio_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
+#define IVLCAudio_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
+#define IVLCAudio_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
+#define IVLCAudio_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
+/*** IVLCAudio methods ***/
+#define IVLCAudio_get_mute(p,a) (p)->lpVtbl->get_mute(p,a)
+#define IVLCAudio_put_mute(p,a) (p)->lpVtbl->put_mute(p,a)
+#define IVLCAudio_get_volume(p,a) (p)->lpVtbl->get_volume(p,a)
+#define IVLCAudio_put_volume(p,a) (p)->lpVtbl->put_volume(p,a)
+#define IVLCAudio_toggleMute(p) (p)->lpVtbl->toggleMute(p)
+#endif
 
-/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_playlistNext_Proxy( 
-    IVLCControl __RPC_FAR * This);
+#endif
 
+HRESULT CALLBACK IVLCAudio_get_mute_Proxy(
+    IVLCAudio* This,
+    VARIANT_BOOL* muted);
+void __RPC_STUB IVLCAudio_get_mute_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCAudio_put_mute_Proxy(
+    IVLCAudio* This,
+    VARIANT_BOOL muted);
+void __RPC_STUB IVLCAudio_put_mute_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCAudio_get_volume_Proxy(
+    IVLCAudio* This,
+    int* volume);
+void __RPC_STUB IVLCAudio_get_volume_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCAudio_put_volume_Proxy(
+    IVLCAudio* This,
+    int volume);
+void __RPC_STUB IVLCAudio_put_volume_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCAudio_toggleMute_Proxy(
+    IVLCAudio* This);
+void __RPC_STUB IVLCAudio_toggleMute_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IVLCAudio_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVLCInput interface
+ */
+#ifndef __IVLCInput_INTERFACE_DEFINED__
+#define __IVLCInput_INTERFACE_DEFINED__
 
-void __RPC_STUB IVLCControl_playlistNext_Stub(
-    IRpcStubBuffer *This,
-    IRpcChannelBuffer *_pRpcChannelBuffer,
-    PRPC_MESSAGE _pRpcMessage,
-    DWORD *_pdwStubPhase);
+DEFINE_GUID(IID_IVLCInput, 0x49e0dbd1, 0x9440, 0x466c, 0x9c,0x97, 0x95,0xc6,0x71,0x90,0xc6,0x03);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+interface IVLCInput : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_length(
+        double* length) = 0;
 
+    virtual HRESULT STDMETHODCALLTYPE get_position(
+        float* position) = 0;
 
-/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_playlistPrev_Proxy( 
-    IVLCControl __RPC_FAR * This);
+    virtual HRESULT STDMETHODCALLTYPE put_position(
+        float position) = 0;
 
+    virtual HRESULT STDMETHODCALLTYPE get_time(
+        double* time) = 0;
 
-void __RPC_STUB IVLCControl_playlistPrev_Stub(
-    IRpcStubBuffer *This,
-    IRpcChannelBuffer *_pRpcChannelBuffer,
-    PRPC_MESSAGE _pRpcMessage,
-    DWORD *_pdwStubPhase);
+    virtual HRESULT STDMETHODCALLTYPE put_time(
+        double time) = 0;
 
+    virtual HRESULT STDMETHODCALLTYPE get_state(
+        int* state) = 0;
 
-/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_playlistClear_Proxy( 
-    IVLCControl __RPC_FAR * This);
+    virtual HRESULT STDMETHODCALLTYPE get_rate(
+        float* rate) = 0;
 
+    virtual HRESULT STDMETHODCALLTYPE put_rate(
+        float rate) = 0;
 
-void __RPC_STUB IVLCControl_playlistClear_Stub(
-    IRpcStubBuffer *This,
-    IRpcChannelBuffer *_pRpcChannelBuffer,
-    PRPC_MESSAGE _pRpcMessage,
-    DWORD *_pdwStubPhase);
+    virtual HRESULT STDMETHODCALLTYPE get_fps(
+        float* fps) = 0;
 
+    virtual HRESULT STDMETHODCALLTYPE get_hasVout(
+        VARIANT_BOOL* hasVout) = 0;
 
-/* [helpstring][hidden][propget] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_VersionInfo_Proxy( 
-    IVLCControl __RPC_FAR * This,
-    /* [retval][out] */ BSTR __RPC_FAR *version);
+};
+#else
+typedef struct IVLCInputVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IVLCInput* This,
+        REFIID riid,
+        void** ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IVLCInput* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IVLCInput* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IVLCInput* This,
+        UINT* pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IVLCInput* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo** ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IVLCInput* This,
+        REFIID riid,
+        LPOLESTR* rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID* rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IVLCInput* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS* pDispParams,
+        VARIANT* pVarResult,
+        EXCEPINFO* pExcepInfo,
+        UINT* puArgErr);
+
+    /*** IVLCInput methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_length)(
+        IVLCInput* This,
+        double* length);
+
+    HRESULT (STDMETHODCALLTYPE *get_position)(
+        IVLCInput* This,
+        float* position);
+
+    HRESULT (STDMETHODCALLTYPE *put_position)(
+        IVLCInput* This,
+        float position);
+
+    HRESULT (STDMETHODCALLTYPE *get_time)(
+        IVLCInput* This,
+        double* time);
+
+    HRESULT (STDMETHODCALLTYPE *put_time)(
+        IVLCInput* This,
+        double time);
+
+    HRESULT (STDMETHODCALLTYPE *get_state)(
+        IVLCInput* This,
+        int* state);
+
+    HRESULT (STDMETHODCALLTYPE *get_rate)(
+        IVLCInput* This,
+        float* rate);
+
+    HRESULT (STDMETHODCALLTYPE *put_rate)(
+        IVLCInput* This,
+        float rate);
+
+    HRESULT (STDMETHODCALLTYPE *get_fps)(
+        IVLCInput* This,
+        float* fps);
+
+    HRESULT (STDMETHODCALLTYPE *get_hasVout)(
+        IVLCInput* This,
+        VARIANT_BOOL* hasVout);
+
+    END_INTERFACE
+} IVLCInputVtbl;
+interface IVLCInput {
+    const IVLCInputVtbl* lpVtbl;
+};
 
+#ifdef COBJMACROS
+/*** IUnknown methods ***/
+#define IVLCInput_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IVLCInput_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IVLCInput_Release(p) (p)->lpVtbl->Release(p)
+/*** IDispatch methods ***/
+#define IVLCInput_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
+#define IVLCInput_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
+#define IVLCInput_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
+#define IVLCInput_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
+/*** IVLCInput methods ***/
+#define IVLCInput_get_length(p,a) (p)->lpVtbl->get_length(p,a)
+#define IVLCInput_get_position(p,a) (p)->lpVtbl->get_position(p,a)
+#define IVLCInput_put_position(p,a) (p)->lpVtbl->put_position(p,a)
+#define IVLCInput_get_time(p,a) (p)->lpVtbl->get_time(p,a)
+#define IVLCInput_put_time(p,a) (p)->lpVtbl->put_time(p,a)
+#define IVLCInput_get_state(p,a) (p)->lpVtbl->get_state(p,a)
+#define IVLCInput_get_rate(p,a) (p)->lpVtbl->get_rate(p,a)
+#define IVLCInput_put_rate(p,a) (p)->lpVtbl->put_rate(p,a)
+#define IVLCInput_get_fps(p,a) (p)->lpVtbl->get_fps(p,a)
+#define IVLCInput_get_hasVout(p,a) (p)->lpVtbl->get_hasVout(p,a)
+#endif
 
-void __RPC_STUB IVLCControl_get_VersionInfo_Stub(
-    IRpcStubBuffer *This,
-    IRpcChannelBuffer *_pRpcChannelBuffer,
-    PRPC_MESSAGE _pRpcMessage,
-    DWORD *_pdwStubPhase);
+#endif
 
+HRESULT CALLBACK IVLCInput_get_length_Proxy(
+    IVLCInput* This,
+    double* length);
+void __RPC_STUB IVLCInput_get_length_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCInput_get_position_Proxy(
+    IVLCInput* This,
+    float* position);
+void __RPC_STUB IVLCInput_get_position_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCInput_put_position_Proxy(
+    IVLCInput* This,
+    float position);
+void __RPC_STUB IVLCInput_put_position_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCInput_get_time_Proxy(
+    IVLCInput* This,
+    double* time);
+void __RPC_STUB IVLCInput_get_time_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCInput_put_time_Proxy(
+    IVLCInput* This,
+    double time);
+void __RPC_STUB IVLCInput_put_time_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCInput_get_state_Proxy(
+    IVLCInput* This,
+    int* state);
+void __RPC_STUB IVLCInput_get_state_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCInput_get_rate_Proxy(
+    IVLCInput* This,
+    float* rate);
+void __RPC_STUB IVLCInput_get_rate_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCInput_put_rate_Proxy(
+    IVLCInput* This,
+    float rate);
+void __RPC_STUB IVLCInput_put_rate_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCInput_get_fps_Proxy(
+    IVLCInput* This,
+    float* fps);
+void __RPC_STUB IVLCInput_get_fps_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCInput_get_hasVout_Proxy(
+    IVLCInput* This,
+    VARIANT_BOOL* hasVout);
+void __RPC_STUB IVLCInput_get_hasVout_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IVLCInput_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVLCPlaylist interface
+ */
+#ifndef __IVLCPlaylist_INTERFACE_DEFINED__
+#define __IVLCPlaylist_INTERFACE_DEFINED__
 
-/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_MRL_Proxy( 
-    IVLCControl __RPC_FAR * This,
-    /* [retval][out] */ BSTR __RPC_FAR *mrl);
+DEFINE_GUID(IID_IVLCPlaylist, 0x54613049, 0x40bf, 0x4035, 0x9e,0x70, 0x0a,0x93,0x12,0xc0,0x18,0x8d);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+interface IVLCPlaylist : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_itemCount(
+        int* count) = 0;
 
+    virtual HRESULT STDMETHODCALLTYPE get_isPlaying(
+        VARIANT_BOOL* playing) = 0;
 
-void __RPC_STUB IVLCControl_get_MRL_Stub(
-    IRpcStubBuffer *This,
-    IRpcChannelBuffer *_pRpcChannelBuffer,
-    PRPC_MESSAGE _pRpcMessage,
-    DWORD *_pdwStubPhase);
+    virtual HRESULT STDMETHODCALLTYPE add(
+        BSTR uri,
+        VARIANT name,
+        VARIANT options,
+        int* item) = 0;
 
+    virtual HRESULT STDMETHODCALLTYPE play(
+        ) = 0;
 
-/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_put_MRL_Proxy( 
-    IVLCControl __RPC_FAR * This,
-    /* [in] */ BSTR mrl);
+    virtual HRESULT STDMETHODCALLTYPE playItem(
+        int item) = 0;
 
+    virtual HRESULT STDMETHODCALLTYPE togglePause(
+        ) = 0;
 
-void __RPC_STUB IVLCControl_put_MRL_Stub(
-    IRpcStubBuffer *This,
-    IRpcChannelBuffer *_pRpcChannelBuffer,
-    PRPC_MESSAGE _pRpcMessage,
-    DWORD *_pdwStubPhase);
+    virtual HRESULT STDMETHODCALLTYPE stop(
+        ) = 0;
 
+    virtual HRESULT STDMETHODCALLTYPE next(
+        ) = 0;
 
-/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_AutoPlay_Proxy( 
-    IVLCControl __RPC_FAR * This,
-    /* [retval][out] */ VARIANT_BOOL __RPC_FAR *autoplay);
+    virtual HRESULT STDMETHODCALLTYPE prev(
+        ) = 0;
 
+    virtual HRESULT STDMETHODCALLTYPE clear(
+        ) = 0;
 
-void __RPC_STUB IVLCControl_get_AutoPlay_Stub(
-    IRpcStubBuffer *This,
-    IRpcChannelBuffer *_pRpcChannelBuffer,
-    PRPC_MESSAGE _pRpcMessage,
-    DWORD *_pdwStubPhase);
+    virtual HRESULT STDMETHODCALLTYPE removeItem(
+        int item) = 0;
 
+};
+#else
+typedef struct IVLCPlaylistVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IVLCPlaylist* This,
+        REFIID riid,
+        void** ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IVLCPlaylist* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IVLCPlaylist* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IVLCPlaylist* This,
+        UINT* pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IVLCPlaylist* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo** ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IVLCPlaylist* This,
+        REFIID riid,
+        LPOLESTR* rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID* rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IVLCPlaylist* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS* pDispParams,
+        VARIANT* pVarResult,
+        EXCEPINFO* pExcepInfo,
+        UINT* puArgErr);
+
+    /*** IVLCPlaylist methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_itemCount)(
+        IVLCPlaylist* This,
+        int* count);
+
+    HRESULT (STDMETHODCALLTYPE *get_isPlaying)(
+        IVLCPlaylist* This,
+        VARIANT_BOOL* playing);
+
+    HRESULT (STDMETHODCALLTYPE *add)(
+        IVLCPlaylist* This,
+        BSTR uri,
+        VARIANT name,
+        VARIANT options,
+        int* item);
+
+    HRESULT (STDMETHODCALLTYPE *play)(
+        IVLCPlaylist* This);
+
+    HRESULT (STDMETHODCALLTYPE *playItem)(
+        IVLCPlaylist* This,
+        int item);
+
+    HRESULT (STDMETHODCALLTYPE *togglePause)(
+        IVLCPlaylist* This);
+
+    HRESULT (STDMETHODCALLTYPE *stop)(
+        IVLCPlaylist* This);
+
+    HRESULT (STDMETHODCALLTYPE *next)(
+        IVLCPlaylist* This);
+
+    HRESULT (STDMETHODCALLTYPE *prev)(
+        IVLCPlaylist* This);
+
+    HRESULT (STDMETHODCALLTYPE *clear)(
+        IVLCPlaylist* This);
+
+    HRESULT (STDMETHODCALLTYPE *removeItem)(
+        IVLCPlaylist* This,
+        int item);
+
+    END_INTERFACE
+} IVLCPlaylistVtbl;
+interface IVLCPlaylist {
+    const IVLCPlaylistVtbl* lpVtbl;
+};
 
-/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_put_AutoPlay_Proxy( 
-    IVLCControl __RPC_FAR * This,
-    /* [in] */ VARIANT_BOOL autoplay);
+#ifdef COBJMACROS
+/*** IUnknown methods ***/
+#define IVLCPlaylist_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IVLCPlaylist_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IVLCPlaylist_Release(p) (p)->lpVtbl->Release(p)
+/*** IDispatch methods ***/
+#define IVLCPlaylist_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
+#define IVLCPlaylist_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
+#define IVLCPlaylist_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
+#define IVLCPlaylist_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
+/*** IVLCPlaylist methods ***/
+#define IVLCPlaylist_get_itemCount(p,a) (p)->lpVtbl->get_itemCount(p,a)
+#define IVLCPlaylist_get_isPlaying(p,a) (p)->lpVtbl->get_isPlaying(p,a)
+#define IVLCPlaylist_add(p,a,b,c,d) (p)->lpVtbl->add(p,a,b,c,d)
+#define IVLCPlaylist_play(p) (p)->lpVtbl->play(p)
+#define IVLCPlaylist_playItem(p,a) (p)->lpVtbl->playItem(p,a)
+#define IVLCPlaylist_togglePause(p) (p)->lpVtbl->togglePause(p)
+#define IVLCPlaylist_stop(p) (p)->lpVtbl->stop(p)
+#define IVLCPlaylist_next(p) (p)->lpVtbl->next(p)
+#define IVLCPlaylist_prev(p) (p)->lpVtbl->prev(p)
+#define IVLCPlaylist_clear(p) (p)->lpVtbl->clear(p)
+#define IVLCPlaylist_removeItem(p,a) (p)->lpVtbl->removeItem(p,a)
+#endif
 
+#endif
 
-void __RPC_STUB IVLCControl_put_AutoPlay_Stub(
-    IRpcStubBuffer *This,
-    IRpcChannelBuffer *_pRpcChannelBuffer,
-    PRPC_MESSAGE _pRpcMessage,
-    DWORD *_pdwStubPhase);
+HRESULT CALLBACK IVLCPlaylist_get_itemCount_Proxy(
+    IVLCPlaylist* This,
+    int* count);
+void __RPC_STUB IVLCPlaylist_get_itemCount_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCPlaylist_get_isPlaying_Proxy(
+    IVLCPlaylist* This,
+    VARIANT_BOOL* playing);
+void __RPC_STUB IVLCPlaylist_get_isPlaying_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCPlaylist_add_Proxy(
+    IVLCPlaylist* This,
+    BSTR uri,
+    VARIANT name,
+    VARIANT options,
+    int* item);
+void __RPC_STUB IVLCPlaylist_add_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCPlaylist_play_Proxy(
+    IVLCPlaylist* This);
+void __RPC_STUB IVLCPlaylist_play_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCPlaylist_playItem_Proxy(
+    IVLCPlaylist* This,
+    int item);
+void __RPC_STUB IVLCPlaylist_playItem_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCPlaylist_togglePause_Proxy(
+    IVLCPlaylist* This);
+void __RPC_STUB IVLCPlaylist_togglePause_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCPlaylist_stop_Proxy(
+    IVLCPlaylist* This);
+void __RPC_STUB IVLCPlaylist_stop_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCPlaylist_next_Proxy(
+    IVLCPlaylist* This);
+void __RPC_STUB IVLCPlaylist_next_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCPlaylist_prev_Proxy(
+    IVLCPlaylist* This);
+void __RPC_STUB IVLCPlaylist_prev_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCPlaylist_clear_Proxy(
+    IVLCPlaylist* This);
+void __RPC_STUB IVLCPlaylist_clear_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCPlaylist_removeItem_Proxy(
+    IVLCPlaylist* This,
+    int item);
+void __RPC_STUB IVLCPlaylist_removeItem_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IVLCPlaylist_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVLCVideo interface
+ */
+#ifndef __IVLCVideo_INTERFACE_DEFINED__
+#define __IVLCVideo_INTERFACE_DEFINED__
 
+DEFINE_GUID(IID_IVLCVideo, 0x0aaedf0b, 0xd333, 0x4b27, 0xa0,0xc6, 0xbb,0xf3,0x14,0x13,0xa4,0x2e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+interface IVLCVideo : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_fullscreen(
+        VARIANT_BOOL* fullscreen) = 0;
 
-/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_AutoLoop_Proxy( 
-    IVLCControl __RPC_FAR * This,
-    /* [retval][out] */ VARIANT_BOOL __RPC_FAR *autoloop);
+    virtual HRESULT STDMETHODCALLTYPE put_fullscreen(
+        VARIANT_BOOL fullscreen) = 0;
 
+    virtual HRESULT STDMETHODCALLTYPE get_width(
+        int* width) = 0;
 
-void __RPC_STUB IVLCControl_get_AutoLoop_Stub(
-    IRpcStubBuffer *This,
-    IRpcChannelBuffer *_pRpcChannelBuffer,
-    PRPC_MESSAGE _pRpcMessage,
-    DWORD *_pdwStubPhase);
+    virtual HRESULT STDMETHODCALLTYPE get_height(
+        int* height) = 0;
 
+    virtual HRESULT STDMETHODCALLTYPE toggleFullscreen(
+        ) = 0;
 
-/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_put_AutoLoop_Proxy( 
-    IVLCControl __RPC_FAR * This,
-    /* [in] */ VARIANT_BOOL autoloop);
+};
+#else
+typedef struct IVLCVideoVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IVLCVideo* This,
+        REFIID riid,
+        void** ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IVLCVideo* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IVLCVideo* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IVLCVideo* This,
+        UINT* pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IVLCVideo* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo** ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IVLCVideo* This,
+        REFIID riid,
+        LPOLESTR* rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID* rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IVLCVideo* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS* pDispParams,
+        VARIANT* pVarResult,
+        EXCEPINFO* pExcepInfo,
+        UINT* puArgErr);
+
+    /*** IVLCVideo methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_fullscreen)(
+        IVLCVideo* This,
+        VARIANT_BOOL* fullscreen);
+
+    HRESULT (STDMETHODCALLTYPE *put_fullscreen)(
+        IVLCVideo* This,
+        VARIANT_BOOL fullscreen);
+
+    HRESULT (STDMETHODCALLTYPE *get_width)(
+        IVLCVideo* This,
+        int* width);
+
+    HRESULT (STDMETHODCALLTYPE *get_height)(
+        IVLCVideo* This,
+        int* height);
+
+    HRESULT (STDMETHODCALLTYPE *toggleFullscreen)(
+        IVLCVideo* This);
+
+    END_INTERFACE
+} IVLCVideoVtbl;
+interface IVLCVideo {
+    const IVLCVideoVtbl* lpVtbl;
+};
 
+#ifdef COBJMACROS
+/*** IUnknown methods ***/
+#define IVLCVideo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IVLCVideo_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IVLCVideo_Release(p) (p)->lpVtbl->Release(p)
+/*** IDispatch methods ***/
+#define IVLCVideo_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
+#define IVLCVideo_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
+#define IVLCVideo_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
+#define IVLCVideo_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
+/*** IVLCVideo methods ***/
+#define IVLCVideo_get_fullscreen(p,a) (p)->lpVtbl->get_fullscreen(p,a)
+#define IVLCVideo_put_fullscreen(p,a) (p)->lpVtbl->put_fullscreen(p,a)
+#define IVLCVideo_get_width(p,a) (p)->lpVtbl->get_width(p,a)
+#define IVLCVideo_get_height(p,a) (p)->lpVtbl->get_height(p,a)
+#define IVLCVideo_toggleFullscreen(p) (p)->lpVtbl->toggleFullscreen(p)
+#endif
 
-void __RPC_STUB IVLCControl_put_AutoLoop_Stub(
-    IRpcStubBuffer *This,
-    IRpcChannelBuffer *_pRpcChannelBuffer,
-    PRPC_MESSAGE _pRpcMessage,
-    DWORD *_pdwStubPhase);
+#endif
 
+HRESULT CALLBACK IVLCVideo_get_fullscreen_Proxy(
+    IVLCVideo* This,
+    VARIANT_BOOL* fullscreen);
+void __RPC_STUB IVLCVideo_get_fullscreen_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCVideo_put_fullscreen_Proxy(
+    IVLCVideo* This,
+    VARIANT_BOOL fullscreen);
+void __RPC_STUB IVLCVideo_put_fullscreen_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCVideo_get_width_Proxy(
+    IVLCVideo* This,
+    int* width);
+void __RPC_STUB IVLCVideo_get_width_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCVideo_get_height_Proxy(
+    IVLCVideo* This,
+    int* height);
+void __RPC_STUB IVLCVideo_get_height_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCVideo_toggleFullscreen_Proxy(
+    IVLCVideo* This);
+void __RPC_STUB IVLCVideo_toggleFullscreen_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IVLCVideo_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVLCControl2 interface
+ */
+#ifndef __IVLCControl2_INTERFACE_DEFINED__
+#define __IVLCControl2_INTERFACE_DEFINED__
 
+DEFINE_GUID(IID_IVLCControl2, 0x2d719729, 0x5333, 0x406c, 0xbf,0x12, 0x8d,0xe7,0x87,0xfd,0x65,0xe3);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+interface IVLCControl2 : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_AutoLoop(
+        VARIANT_BOOL* autoloop) = 0;
 
-#endif         /* __IVLCControl_INTERFACE_DEFINED__ */
+    virtual HRESULT STDMETHODCALLTYPE put_AutoLoop(
+        VARIANT_BOOL autoloop) = 0;
 
+    virtual HRESULT STDMETHODCALLTYPE get_AutoPlay(
+        VARIANT_BOOL* autoplay) = 0;
 
-#ifndef __DVLCEvents_DISPINTERFACE_DEFINED__
-#define __DVLCEvents_DISPINTERFACE_DEFINED__
+    virtual HRESULT STDMETHODCALLTYPE put_AutoPlay(
+        VARIANT_BOOL autoplay) = 0;
 
-/* dispinterface DVLCEvents */
-/* [hidden][helpstring][uuid] */ 
+    virtual HRESULT STDMETHODCALLTYPE get_BaseURL(
+        BSTR* url) = 0;
 
+    virtual HRESULT STDMETHODCALLTYPE put_BaseURL(
+        BSTR url) = 0;
 
-EXTERN_C const IID DIID_DVLCEvents;
+    virtual HRESULT STDMETHODCALLTYPE get_StartTime(
+        int* seconds) = 0;
 
-#if defined(__cplusplus) && !defined(CINTERFACE)
+    virtual HRESULT STDMETHODCALLTYPE put_StartTime(
+        int seconds) = 0;
 
-    MIDL_INTERFACE("DF48072F-5EF8-434e-9B40-E2F3AE759B5F")
-    DVLCEvents : public IDispatch
-    {
-    };
-    
-#else  /* C style interface */
-
-    typedef struct DVLCEventsVtbl
-    {
-        BEGIN_INTERFACE
-        
-        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
-            DVLCEvents __RPC_FAR * This,
-            /* [in] */ REFIID riid,
-            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
-        
-        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
-            DVLCEvents __RPC_FAR * This);
-        
-        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
-            DVLCEvents __RPC_FAR * This);
-        
-        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfoCount )( 
-            DVLCEvents __RPC_FAR * This,
-            /* [out] */ UINT __RPC_FAR *pctinfo);
-        
-        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfo )( 
-            DVLCEvents __RPC_FAR * This,
-            /* [in] */ UINT iTInfo,
-            /* [in] */ LCID lcid,
-            /* [out] */ ITypeInfo __RPC_FAR *__RPC_FAR *ppTInfo);
-        
-        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetIDsOfNames )( 
-            DVLCEvents __RPC_FAR * This,
-            /* [in] */ REFIID riid,
-            /* [size_is][in] */ LPOLESTR __RPC_FAR *rgszNames,
-            /* [in] */ UINT cNames,
-            /* [in] */ LCID lcid,
-            /* [size_is][out] */ DISPID __RPC_FAR *rgDispId);
-        
-        /* [local] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Invoke )( 
-            DVLCEvents __RPC_FAR * This,
-            /* [in] */ DISPID dispIdMember,
-            /* [in] */ REFIID riid,
-            /* [in] */ LCID lcid,
-            /* [in] */ WORD wFlags,
-            /* [out][in] */ DISPPARAMS __RPC_FAR *pDispParams,
-            /* [out] */ VARIANT __RPC_FAR *pVarResult,
-            /* [out] */ EXCEPINFO __RPC_FAR *pExcepInfo,
-            /* [out] */ UINT __RPC_FAR *puArgErr);
-        
-        END_INTERFACE
-    } DVLCEventsVtbl;
-
-    interface DVLCEvents
-    {
-        CONST_VTBL struct DVLCEventsVtbl __RPC_FAR *lpVtbl;
-    };
-
-    
+    virtual HRESULT STDMETHODCALLTYPE get_MRL(
+        BSTR* mrl) = 0;
 
-#ifdef COBJMACROS
+    virtual HRESULT STDMETHODCALLTYPE put_MRL(
+        BSTR mrl) = 0;
 
+    virtual HRESULT STDMETHODCALLTYPE get_VersionInfo(
+        BSTR* version) = 0;
 
-#define DVLCEvents_QueryInterface(This,riid,ppvObject) \
-    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+    virtual HRESULT STDMETHODCALLTYPE get_Visible(
+        VARIANT_BOOL* visible) = 0;
 
-#define DVLCEvents_AddRef(This)        \
-    (This)->lpVtbl -> AddRef(This)
+    virtual HRESULT STDMETHODCALLTYPE put_Visible(
+        VARIANT_BOOL visible) = 0;
 
-#define DVLCEvents_Release(This)       \
-    (This)->lpVtbl -> Release(This)
+    virtual HRESULT STDMETHODCALLTYPE get_Volume(
+        int* volume) = 0;
 
+    virtual HRESULT STDMETHODCALLTYPE put_Volume(
+        int volume) = 0;
 
-#define DVLCEvents_GetTypeInfoCount(This,pctinfo)      \
-    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+    virtual HRESULT STDMETHODCALLTYPE get_audio(
+        IVLCAudio** obj) = 0;
 
-#define DVLCEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo)       \
-    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+    virtual HRESULT STDMETHODCALLTYPE get_input(
+        IVLCInput** obj) = 0;
 
-#define DVLCEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)     \
-    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+    virtual HRESULT STDMETHODCALLTYPE get_playlist(
+        IVLCPlaylist** obj) = 0;
 
-#define DVLCEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)       \
-    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+    virtual HRESULT STDMETHODCALLTYPE get_video(
+        IVLCVideo** obj) = 0;
 
-#endif /* COBJMACROS */
+};
+#else
+typedef struct IVLCControl2Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IVLCControl2* This,
+        REFIID riid,
+        void** ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IVLCControl2* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IVLCControl2* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IVLCControl2* This,
+        UINT* pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IVLCControl2* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo** ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IVLCControl2* This,
+        REFIID riid,
+        LPOLESTR* rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID* rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IVLCControl2* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS* pDispParams,
+        VARIANT* pVarResult,
+        EXCEPINFO* pExcepInfo,
+        UINT* puArgErr);
+
+    /*** IVLCControl2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_AutoLoop)(
+        IVLCControl2* This,
+        VARIANT_BOOL* autoloop);
+
+    HRESULT (STDMETHODCALLTYPE *put_AutoLoop)(
+        IVLCControl2* This,
+        VARIANT_BOOL autoloop);
+
+    HRESULT (STDMETHODCALLTYPE *get_AutoPlay)(
+        IVLCControl2* This,
+        VARIANT_BOOL* autoplay);
+
+    HRESULT (STDMETHODCALLTYPE *put_AutoPlay)(
+        IVLCControl2* This,
+        VARIANT_BOOL autoplay);
+
+    HRESULT (STDMETHODCALLTYPE *get_BaseURL)(
+        IVLCControl2* This,
+        BSTR* url);
+
+    HRESULT (STDMETHODCALLTYPE *put_BaseURL)(
+        IVLCControl2* This,
+        BSTR url);
+
+    HRESULT (STDMETHODCALLTYPE *get_StartTime)(
+        IVLCControl2* This,
+        int* seconds);
+
+    HRESULT (STDMETHODCALLTYPE *put_StartTime)(
+        IVLCControl2* This,
+        int seconds);
+
+    HRESULT (STDMETHODCALLTYPE *get_MRL)(
+        IVLCControl2* This,
+        BSTR* mrl);
+
+    HRESULT (STDMETHODCALLTYPE *put_MRL)(
+        IVLCControl2* This,
+        BSTR mrl);
+
+    HRESULT (STDMETHODCALLTYPE *get_VersionInfo)(
+        IVLCControl2* This,
+        BSTR* version);
+
+    HRESULT (STDMETHODCALLTYPE *get_Visible)(
+        IVLCControl2* This,
+        VARIANT_BOOL* visible);
+
+    HRESULT (STDMETHODCALLTYPE *put_Visible)(
+        IVLCControl2* This,
+        VARIANT_BOOL visible);
+
+    HRESULT (STDMETHODCALLTYPE *get_Volume)(
+        IVLCControl2* This,
+        int* volume);
+
+    HRESULT (STDMETHODCALLTYPE *put_Volume)(
+        IVLCControl2* This,
+        int volume);
+
+    HRESULT (STDMETHODCALLTYPE *get_audio)(
+        IVLCControl2* This,
+        IVLCAudio** obj);
+
+    HRESULT (STDMETHODCALLTYPE *get_input)(
+        IVLCControl2* This,
+        IVLCInput** obj);
+
+    HRESULT (STDMETHODCALLTYPE *get_playlist)(
+        IVLCControl2* This,
+        IVLCPlaylist** obj);
+
+    HRESULT (STDMETHODCALLTYPE *get_video)(
+        IVLCControl2* This,
+        IVLCVideo** obj);
+
+    END_INTERFACE
+} IVLCControl2Vtbl;
+interface IVLCControl2 {
+    const IVLCControl2Vtbl* lpVtbl;
+};
 
+#ifdef COBJMACROS
+/*** IUnknown methods ***/
+#define IVLCControl2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IVLCControl2_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IVLCControl2_Release(p) (p)->lpVtbl->Release(p)
+/*** IDispatch methods ***/
+#define IVLCControl2_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
+#define IVLCControl2_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
+#define IVLCControl2_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
+#define IVLCControl2_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
+/*** IVLCControl2 methods ***/
+#define IVLCControl2_get_AutoLoop(p,a) (p)->lpVtbl->get_AutoLoop(p,a)
+#define IVLCControl2_put_AutoLoop(p,a) (p)->lpVtbl->put_AutoLoop(p,a)
+#define IVLCControl2_get_AutoPlay(p,a) (p)->lpVtbl->get_AutoPlay(p,a)
+#define IVLCControl2_put_AutoPlay(p,a) (p)->lpVtbl->put_AutoPlay(p,a)
+#define IVLCControl2_get_BaseURL(p,a) (p)->lpVtbl->get_BaseURL(p,a)
+#define IVLCControl2_put_BaseURL(p,a) (p)->lpVtbl->put_BaseURL(p,a)
+#define IVLCControl2_get_StartTime(p,a) (p)->lpVtbl->get_StartTime(p,a)
+#define IVLCControl2_put_StartTime(p,a) (p)->lpVtbl->put_StartTime(p,a)
+#define IVLCControl2_get_MRL(p,a) (p)->lpVtbl->get_MRL(p,a)
+#define IVLCControl2_put_MRL(p,a) (p)->lpVtbl->put_MRL(p,a)
+#define IVLCControl2_get_VersionInfo(p,a) (p)->lpVtbl->get_VersionInfo(p,a)
+#define IVLCControl2_get_Visible(p,a) (p)->lpVtbl->get_Visible(p,a)
+#define IVLCControl2_put_Visible(p,a) (p)->lpVtbl->put_Visible(p,a)
+#define IVLCControl2_get_Volume(p,a) (p)->lpVtbl->get_Volume(p,a)
+#define IVLCControl2_put_Volume(p,a) (p)->lpVtbl->put_Volume(p,a)
+#define IVLCControl2_get_audio(p,a) (p)->lpVtbl->get_audio(p,a)
+#define IVLCControl2_get_input(p,a) (p)->lpVtbl->get_input(p,a)
+#define IVLCControl2_get_playlist(p,a) (p)->lpVtbl->get_playlist(p,a)
+#define IVLCControl2_get_video(p,a) (p)->lpVtbl->get_video(p,a)
+#endif
+
+#endif
 
-#endif         /* C style interface */
+HRESULT CALLBACK IVLCControl2_get_AutoLoop_Proxy(
+    IVLCControl2* This,
+    VARIANT_BOOL* autoloop);
+void __RPC_STUB IVLCControl2_get_AutoLoop_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl2_put_AutoLoop_Proxy(
+    IVLCControl2* This,
+    VARIANT_BOOL autoloop);
+void __RPC_STUB IVLCControl2_put_AutoLoop_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl2_get_AutoPlay_Proxy(
+    IVLCControl2* This,
+    VARIANT_BOOL* autoplay);
+void __RPC_STUB IVLCControl2_get_AutoPlay_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl2_put_AutoPlay_Proxy(
+    IVLCControl2* This,
+    VARIANT_BOOL autoplay);
+void __RPC_STUB IVLCControl2_put_AutoPlay_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl2_get_BaseURL_Proxy(
+    IVLCControl2* This,
+    BSTR* url);
+void __RPC_STUB IVLCControl2_get_BaseURL_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl2_put_BaseURL_Proxy(
+    IVLCControl2* This,
+    BSTR url);
+void __RPC_STUB IVLCControl2_put_BaseURL_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl2_get_StartTime_Proxy(
+    IVLCControl2* This,
+    int* seconds);
+void __RPC_STUB IVLCControl2_get_StartTime_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl2_put_StartTime_Proxy(
+    IVLCControl2* This,
+    int seconds);
+void __RPC_STUB IVLCControl2_put_StartTime_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl2_get_MRL_Proxy(
+    IVLCControl2* This,
+    BSTR* mrl);
+void __RPC_STUB IVLCControl2_get_MRL_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl2_put_MRL_Proxy(
+    IVLCControl2* This,
+    BSTR mrl);
+void __RPC_STUB IVLCControl2_put_MRL_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl2_get_VersionInfo_Proxy(
+    IVLCControl2* This,
+    BSTR* version);
+void __RPC_STUB IVLCControl2_get_VersionInfo_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl2_get_Visible_Proxy(
+    IVLCControl2* This,
+    VARIANT_BOOL* visible);
+void __RPC_STUB IVLCControl2_get_Visible_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl2_put_Visible_Proxy(
+    IVLCControl2* This,
+    VARIANT_BOOL visible);
+void __RPC_STUB IVLCControl2_put_Visible_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl2_get_Volume_Proxy(
+    IVLCControl2* This,
+    int* volume);
+void __RPC_STUB IVLCControl2_get_Volume_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl2_put_Volume_Proxy(
+    IVLCControl2* This,
+    int volume);
+void __RPC_STUB IVLCControl2_put_Volume_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl2_get_audio_Proxy(
+    IVLCControl2* This,
+    IVLCAudio** obj);
+void __RPC_STUB IVLCControl2_get_audio_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl2_get_input_Proxy(
+    IVLCControl2* This,
+    IVLCInput** obj);
+void __RPC_STUB IVLCControl2_get_input_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl2_get_playlist_Proxy(
+    IVLCControl2* This,
+    IVLCPlaylist** obj);
+void __RPC_STUB IVLCControl2_get_playlist_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl2_get_video_Proxy(
+    IVLCControl2* This,
+    IVLCVideo** obj);
+void __RPC_STUB IVLCControl2_get_video_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IVLCControl2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * VLCPlugin coclass
+ */
 
+DEFINE_GUID(CLSID_VLCPlugin, 0xe23fe9c6, 0x778e, 0x49d4, 0xb5,0x37, 0x38,0xfc,0xde,0x48,0x87,0xd8);
 
-#endif         /* __DVLCEvents_DISPINTERFACE_DEFINED__ */
+#ifndef __VLCPlugin_FWD_DEFINED__
+#define __VLCPlugin_FWD_DEFINED__
+typedef struct VLCPlugin VLCPlugin;
+#endif /* defined __VLCPlugin_FWD_DEFINED__ */
 
+/*****************************************************************************
+ * VLCPlugin2 coclass
+ */
 
-EXTERN_C const CLSID CLSID_VLCPlugin;
+DEFINE_GUID(CLSID_VLCPlugin2, 0x9be31822, 0xfdad, 0x461b, 0xad,0x51, 0xbe,0x1d,0x1c,0x15,0x99,0x21);
 
-#ifdef __cplusplus
+#ifndef __VLCPlugin2_FWD_DEFINED__
+#define __VLCPlugin2_FWD_DEFINED__
+typedef struct VLCPlugin2 VLCPlugin2;
+#endif /* defined __VLCPlugin2_FWD_DEFINED__ */
 
-class DECLSPEC_UUID("E23FE9C6-778E-49D4-B537-38FCDE4887D8")
-VLCPlugin;
-#endif
-#endif /* __AXVLC_LIBRARY_DEFINED__ */
+/* Begin additional prototypes for all interfaces */
 
-/* Additional Prototypes for ALL interfaces */
+unsigned long   __RPC_USER VARIANT_UserSize     (unsigned long *, unsigned long,   VARIANT *);
+unsigned char * __RPC_USER VARIANT_UserMarshal  (unsigned long *, unsigned char *, VARIANT *);
+unsigned char * __RPC_USER VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT *);
+void            __RPC_USER VARIANT_UserFree     (unsigned long *, VARIANT *);
+unsigned long   __RPC_USER BSTR_UserSize     (unsigned long *, unsigned long,   BSTR *);
+unsigned char * __RPC_USER BSTR_UserMarshal  (unsigned long *, unsigned char *, BSTR *);
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR *);
+void            __RPC_USER BSTR_UserFree     (unsigned long *, BSTR *);
 
-/* end of Additional Prototypes */
+/* End additional prototypes */
 
 #ifdef __cplusplus
 }
 #endif
-
-#endif
+#endif /* __WIDL_AXVLC_IDL_H */