]> git.sesse.net Git - vlc/commitdiff
activex: remove logo when control runs in usermode and fill canvas with background...
authorDamien Fouilleul <damienf@videolan.org>
Tue, 26 Jun 2007 17:53:05 +0000 (17:53 +0000)
committerDamien Fouilleul <damienf@videolan.org>
Tue, 26 Jun 2007 17:53:05 +0000 (17:53 +0000)
activex/axvlc.idl
activex/axvlc.tlb
activex/axvlc_idl.c
activex/axvlc_idl.h
activex/persistpropbag.cpp
activex/plugin.cpp
activex/plugin.h
activex/vlccontrol2.cpp
activex/vlccontrol2.h

index ada8e8c8fa56a7203b895816e09c0e4e086a3ca5..ed6edc83fb21bb80f88bd1057362290f3b83cb96 100644 (file)
@@ -63,6 +63,8 @@ library AXVLC
     const int VLCPlayListEnd    = -666;\r
 \r
     // DISPID definitions\r
+    const int DISPID_BackColor  = -501;\r
+\r
     const int DISPID_Visible    = 100;\r
     const int DISPID_Playing    = 101;\r
     const int DISPID_Position   = 102;\r
@@ -486,6 +488,11 @@ library AXVLC
         [id(DISPID_Volume), propput, helpstring("Returns/sets default audio volume.")]\r
         HRESULT Volume([in] long volume);\r
 \r
+        [id(DISPID_BackColor), propget, helpstring("Returns/sets background color.")]\r
+        HRESULT BackColor([out, retval] OLE_COLOR* backcolor);\r
+        [id(DISPID_BackColor), propput, helpstring("Returns/sets background color.")]\r
+        HRESULT BackColor([in] OLE_COLOR backcolor);\r
+\r
         [propget, helpstring("Returns the audio object.")]\r
         HRESULT audio([out, retval] IVLCAudio** obj);\r
 \r
index 7be8d5d84404d3c8a418974f5e490364adf4b07a..a61182de2f3eb2dc2fc13a08b448b79ae56f1967 100644 (file)
Binary files a/activex/axvlc.tlb and b/activex/axvlc.tlb differ
index 17b6b830cc50268faa6077ff59f875211fa4e5aa..dcb6a542cc8cfa6f26a5d8498b830cc71bfcdb1d 100644 (file)
-/*** Autogenerated by WIDL 0.9.27 from axvlc.idl - Do not edit ***/
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 6.00.0361 */
+/* at Mon Jun 25 12:18:49 2007
+ */
+/* Compiler settings for axvlc.idl:
+    Oicf, W1, Zp8, env=Win32 (32b run)
+    protocol : dce , ms_ext, c_ext, robust
+    error checks: allocation ref bounds_check enum stub_data 
+    VC __declspec() decoration level: 
+         __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+         DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+//@@MIDL_FILE_HEADING(  )
+
+#if !defined(_M_IA64) && !defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 )  /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif 
+
 
 #include <rpc.h>
 #include <rpcndr.h>
 
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
 #define INITGUID
 #include <guiddef.h>
-
-#ifdef __cplusplus
-extern "C" {
+#undef INITGUID
+#else
+#include <guiddef.h>
 #endif
 
-DEFINE_GUID(LIBID_AXVLC, 0xdf2bbe39, 0x40a8, 0x433b, 0xa2,0x79, 0x07,0x3f,0x48,0xda,0x94,0xb6);
-DEFINE_GUID(IID_IVLCControl, 0xc2fa41d0, 0xb113, 0x476e, 0xac,0x8c, 0x9b,0xd1,0x49,0x99,0xc1,0xc1);
-DEFINE_GUID(DIID_DVLCEvents, 0xdf48072f, 0x5ef8, 0x434e, 0x9b,0x40, 0xe2,0xf3,0xae,0x75,0x9b,0x5f);
-DEFINE_GUID(IID_IVLCAudio, 0x9e0bd17b, 0x2d3c, 0x4656, 0xb9,0x4d, 0x03,0x08,0x4f,0x3f,0xd9,0xd4);
-DEFINE_GUID(IID_IVLCInput, 0x49e0dbd1, 0x9440, 0x466c, 0x9c,0x97, 0x95,0xc6,0x71,0x90,0xc6,0x03);
-DEFINE_GUID(IID_IVLCMessage, 0x9ed00afa, 0x7bcd, 0x4fff, 0x8d,0x48, 0x7d,0xd4,0xdb,0x2c,0x80,0x0d);
-DEFINE_GUID(IID_IVLCMessageIterator, 0x15179cd8, 0xcc12, 0x4242, 0xa5,0x8e, 0xe4,0x12,0x21,0x7f,0xf3,0x43);
-DEFINE_GUID(IID_IVLCMessages, 0x6c5ce55d, 0x2d6c, 0x4aad, 0x82,0x99, 0xc6,0x2d,0x23,0x71,0xf1,0x06);
-DEFINE_GUID(IID_IVLCLog, 0x8e3bc3d9, 0x62e9, 0x48fb, 0x8a,0x6d, 0x99,0x3f,0x9a,0xbc,0x4a,0x0a);
-DEFINE_GUID(IID_IVLCPlaylistItems, 0xfd37fe32, 0x82bc, 0x4a25, 0xb0,0x56, 0x31,0x5f,0x4d,0xbb,0x19,0x4d);
-DEFINE_GUID(IID_IVLCPlaylist, 0x54613049, 0x40bf, 0x4035, 0x9e,0x70, 0x0a,0x93,0x12,0xc0,0x18,0x8d);
-DEFINE_GUID(IID_IVLCVideo, 0x0aaedf0b, 0xd333, 0x4b27, 0xa0,0xc6, 0xbb,0xf3,0x14,0x13,0xa4,0x2e);
-DEFINE_GUID(IID_IVLCControl2, 0x2d719729, 0x5333, 0x406c, 0xbf,0x12, 0x8d,0xe7,0x87,0xfd,0x65,0xe3);
-DEFINE_GUID(CLSID_VLCPlugin, 0xe23fe9c6, 0x778e, 0x49d4, 0xb5,0x37, 0x38,0xfc,0xde,0x48,0x87,0xd8);
-DEFINE_GUID(CLSID_VLCPlugin2, 0x9be31822, 0xfdad, 0x461b, 0xad,0x51, 0xbe,0x1d,0x1c,0x15,0x99,0x21);
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+        DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+    unsigned long x;
+    unsigned short s1;
+    unsigned short s2;
+    unsigned char  c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+        const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, LIBID_AXVLC,0xDF2BBE39,0x40A8,0x433b,0xA2,0x79,0x07,0x3F,0x48,0xDA,0x94,0xB6);
+
+
+MIDL_DEFINE_GUID(IID, IID_IVLCControl,0xC2FA41D0,0xB113,0x476e,0xAC,0x8C,0x9B,0xD1,0x49,0x99,0xC1,0xC1);
+
+
+MIDL_DEFINE_GUID(IID, IID_IVLCAudio,0x9E0BD17B,0x2D3C,0x4656,0xB9,0x4D,0x03,0x08,0x4F,0x3F,0xD9,0xD4);
+
+
+MIDL_DEFINE_GUID(IID, IID_IVLCInput,0x49E0DBD1,0x9440,0x466C,0x9C,0x97,0x95,0xC6,0x71,0x90,0xC6,0x03);
+
+
+MIDL_DEFINE_GUID(IID, IID_IVLCLog,0x8E3BC3D9,0x62E9,0x48FB,0x8A,0x6D,0x99,0x3F,0x9A,0xBC,0x4A,0x0A);
+
+
+MIDL_DEFINE_GUID(IID, IID_IVLCMessage,0x9ED00AFA,0x7BCD,0x4FFF,0x8D,0x48,0x7D,0xD4,0xDB,0x2C,0x80,0x0D);
+
+
+MIDL_DEFINE_GUID(IID, IID_IVLCMessageIterator,0x15179CD8,0xCC12,0x4242,0xA5,0x8E,0xE4,0x12,0x21,0x7F,0xF3,0x43);
+
+
+MIDL_DEFINE_GUID(IID, IID_IVLCMessages,0x6C5CE55D,0x2D6C,0x4AAD,0x82,0x99,0xC6,0x2D,0x23,0x71,0xF1,0x06);
+
+
+MIDL_DEFINE_GUID(IID, IID_IVLCPlaylist,0x54613049,0x40BF,0x4035,0x9E,0x70,0x0A,0x93,0x12,0xC0,0x18,0x8D);
+
+
+MIDL_DEFINE_GUID(IID, IID_IVLCVideo,0x0AAEDF0B,0xD333,0x4B27,0xA0,0xC6,0xBB,0xF3,0x14,0x13,0xA4,0x2E);
+
+
+MIDL_DEFINE_GUID(IID, IID_IVLCControl2,0x2D719729,0x5333,0x406C,0xBF,0x12,0x8D,0xE7,0x87,0xFD,0x65,0xE3);
+
+
+MIDL_DEFINE_GUID(IID, DIID_DVLCEvents,0xDF48072F,0x5EF8,0x434e,0x9B,0x40,0xE2,0xF3,0xAE,0x75,0x9B,0x5F);
+
+
+MIDL_DEFINE_GUID(IID, IID_IVLCPlaylistItems,0xFD37FE32,0x82BC,0x4A25,0xB0,0x56,0x31,0x5F,0x4D,0xBB,0x19,0x4D);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_VLCPlugin,0xE23FE9C6,0x778E,0x49D4,0xB5,0x37,0x38,0xFC,0xDE,0x48,0x87,0xD8);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_VLCPlugin2,0x9BE31822,0xFDAD,0x461B,0xAD,0x51,0xBE,0x1D,0x1C,0x15,0x99,0x21);
+
+#undef MIDL_DEFINE_GUID
 
 #ifdef __cplusplus
 }
 #endif
+
+
+
+#endif /* !defined(_M_IA64) && !defined(_M_AMD64)*/
+
index f35b6feac6bce58bd5c5c097516d6ad118a4f667..df94974e3c95be394f419ef7530a752a29ba394b 100644 (file)
-/*** Autogenerated by WIDL 0.9.27 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" {
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 6.00.0361 */
+/* at Mon Jun 25 12:18:49 2007
+ */
+/* Compiler settings for axvlc.idl:
+    Oicf, W1, Zp8, env=Win32 (32b run)
+    protocol : dce , ms_ext, c_ext, robust
+    error checks: allocation ref bounds_check enum stub_data 
+    VC __declspec() decoration level: 
+         __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+         DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+//@@MIDL_FILE_HEADING(  )
+
+#pragma warning( disable: 4049 )  /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+
+#ifndef __axvlc_idl_h__
+#define __axvlc_idl_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
 #endif
-#include <ocidl.h>
 
-DEFINE_GUID(LIBID_AXVLC, 0xdf2bbe39, 0x40a8, 0x433b, 0xa2,0x79, 0x07,0x3f,0x48,0xda,0x94,0xb6);
+/* Forward Declarations */ 
 
 #ifndef __IVLCControl_FWD_DEFINED__
 #define __IVLCControl_FWD_DEFINED__
 typedef interface IVLCControl IVLCControl;
-#endif
+#endif         /* __IVLCControl_FWD_DEFINED__ */
+
 
 #ifndef __IVLCAudio_FWD_DEFINED__
 #define __IVLCAudio_FWD_DEFINED__
 typedef interface IVLCAudio IVLCAudio;
-#endif
+#endif         /* __IVLCAudio_FWD_DEFINED__ */
+
 
 #ifndef __IVLCInput_FWD_DEFINED__
 #define __IVLCInput_FWD_DEFINED__
 typedef interface IVLCInput IVLCInput;
-#endif
+#endif         /* __IVLCInput_FWD_DEFINED__ */
+
 
 #ifndef __IVLCLog_FWD_DEFINED__
 #define __IVLCLog_FWD_DEFINED__
 typedef interface IVLCLog IVLCLog;
-#endif
+#endif         /* __IVLCLog_FWD_DEFINED__ */
+
 
 #ifndef __IVLCMessage_FWD_DEFINED__
 #define __IVLCMessage_FWD_DEFINED__
 typedef interface IVLCMessage IVLCMessage;
-#endif
+#endif         /* __IVLCMessage_FWD_DEFINED__ */
+
 
 #ifndef __IVLCMessageIterator_FWD_DEFINED__
 #define __IVLCMessageIterator_FWD_DEFINED__
 typedef interface IVLCMessageIterator IVLCMessageIterator;
-#endif
+#endif         /* __IVLCMessageIterator_FWD_DEFINED__ */
+
 
 #ifndef __IVLCMessages_FWD_DEFINED__
 #define __IVLCMessages_FWD_DEFINED__
 typedef interface IVLCMessages IVLCMessages;
-#endif
+#endif         /* __IVLCMessages_FWD_DEFINED__ */
+
 
 #ifndef __IVLCPlaylist_FWD_DEFINED__
 #define __IVLCPlaylist_FWD_DEFINED__
 typedef interface IVLCPlaylist IVLCPlaylist;
-#endif
+#endif         /* __IVLCPlaylist_FWD_DEFINED__ */
+
 
 #ifndef __IVLCVideo_FWD_DEFINED__
 #define __IVLCVideo_FWD_DEFINED__
 typedef interface IVLCVideo IVLCVideo;
-#endif
+#endif         /* __IVLCVideo_FWD_DEFINED__ */
+
 
 #ifndef __IVLCControl2_FWD_DEFINED__
 #define __IVLCControl2_FWD_DEFINED__
 typedef interface IVLCControl2 IVLCControl2;
-#endif
+#endif         /* __IVLCControl2_FWD_DEFINED__ */
+
 
 #ifndef __DVLCEvents_FWD_DEFINED__
 #define __DVLCEvents_FWD_DEFINED__
 typedef interface DVLCEvents DVLCEvents;
-#endif
+#endif         /* __DVLCEvents_FWD_DEFINED__ */
 
-typedef enum VLCPlaylistMode {
-    VLCPlayListInsert = 1,
-    VLCPlayListInsertAndGo = 9,
-    VLCPlayListReplace = 2,
-    VLCPlayListReplaceAndGo = 10,
-    VLCPlayListAppend = 4,
-    VLCPlayListAppendAndGo = 12,
-    VLCPlayListCheckInsert = 16
-} eVLCPlaylistMode;
-#define VLCPlayListEnd (-666)
 
-#define DISPID_Visible (100)
+#ifndef __IVLCPlaylistItems_FWD_DEFINED__
+#define __IVLCPlaylistItems_FWD_DEFINED__
+typedef interface IVLCPlaylistItems IVLCPlaylistItems;
+#endif         /* __IVLCPlaylistItems_FWD_DEFINED__ */
 
-#define DISPID_Playing (101)
 
-#define DISPID_Position (102)
+#ifndef __VLCPlugin_FWD_DEFINED__
+#define __VLCPlugin_FWD_DEFINED__
 
-#define DISPID_Time (103)
+#ifdef __cplusplus
+typedef class VLCPlugin VLCPlugin;
+#else
+typedef struct VLCPlugin VLCPlugin;
+#endif /* __cplusplus */
 
-#define DISPID_Length (104)
+#endif         /* __VLCPlugin_FWD_DEFINED__ */
 
-#define DISPID_Volume (105)
 
-#define DISPID_MRL (106)
+#ifndef __VLCPlugin2_FWD_DEFINED__
+#define __VLCPlugin2_FWD_DEFINED__
 
-#define DISPID_AutoPlay (107)
+#ifdef __cplusplus
+typedef class VLCPlugin2 VLCPlugin2;
+#else
+typedef struct VLCPlugin2 VLCPlugin2;
+#endif /* __cplusplus */
 
-#define DISPID_AutoLoop (108)
+#endif         /* __VLCPlugin2_FWD_DEFINED__ */
 
-#define DISPID_StartTime (109)
 
-#define DISPID_BaseURL (110)
+/* header files for imported files */
+#include "ocidl.h"
 
-/*****************************************************************************
- * IVLCControl interface
- */
-#ifndef __IVLCControl_INTERFACE_DEFINED__
-#define __IVLCControl_INTERFACE_DEFINED__
+#ifdef __cplusplus
+extern "C"{
+#endif 
 
-DEFINE_GUID(IID_IVLCControl, 0xc2fa41d0, 0xb113, 0x476e, 0xac,0x8c, 0x9b,0xd1,0x49,0x99,0xc1,0xc1);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface IVLCControl : public IDispatch
-{
-    virtual HRESULT STDMETHODCALLTYPE get_Visible(
-        VARIANT_BOOL* visible) = 0;
+void * __RPC_USER MIDL_user_allocate(size_t);
+void __RPC_USER MIDL_user_free( void * ); 
 
-    virtual HRESULT STDMETHODCALLTYPE put_Visible(
-        VARIANT_BOOL visible) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE play(
-        ) = 0;
+#ifndef __AXVLC_LIBRARY_DEFINED__
+#define __AXVLC_LIBRARY_DEFINED__
 
-    virtual HRESULT STDMETHODCALLTYPE pause(
-        ) = 0;
+/* library AXVLC */
+/* [helpstring][version][uuid] */ 
 
-    virtual HRESULT STDMETHODCALLTYPE stop(
-        ) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE get_Playing(
-        VARIANT_BOOL* isPlaying) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE get_Position(
-        float* position) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE put_Position(
-        float position) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE get_Time(
-        int* seconds) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE put_Time(
-        int seconds) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE shuttle(
-        int seconds) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE fullscreen(
-        ) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE get_Length(
-        int* seconds) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE playFaster(
-        ) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE playSlower(
-        ) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE get_Volume(
-        int* volume) = 0;
+typedef /* [public] */ 
+enum VLCPlaylistMode
+    {  VLCPlayListInsert       = 1,
+       VLCPlayListInsertAndGo  = 9,
+       VLCPlayListReplace      = 2,
+       VLCPlayListReplaceAndGo = 10,
+       VLCPlayListAppend       = 4,
+       VLCPlayListAppendAndGo  = 12,
+       VLCPlayListCheckInsert  = 16
+    }  eVLCPlaylistMode;
 
-    virtual HRESULT STDMETHODCALLTYPE put_Volume(
-        int volume) = 0;
+#define        VLCPlayListEnd  ( -666 )
 
-    virtual HRESULT STDMETHODCALLTYPE toggleMute(
-        ) = 0;
+#define        DISPID_BackColor        ( -501 )
 
-    virtual HRESULT STDMETHODCALLTYPE setVariable(
-        BSTR name,
-        VARIANT value) = 0;
+#define        DISPID_Visible  ( 100 )
 
-    virtual HRESULT STDMETHODCALLTYPE getVariable(
-        BSTR name,
-        VARIANT* value) = 0;
+#define        DISPID_Playing  ( 101 )
 
-    virtual HRESULT STDMETHODCALLTYPE addTarget(
-        BSTR uri,
-        VARIANT options,
-        enum VLCPlaylistMode mode,
-        int position) = 0;
+#define        DISPID_Position ( 102 )
 
-    virtual HRESULT STDMETHODCALLTYPE get_PlaylistIndex(
-        int* index) = 0;
+#define        DISPID_Time     ( 103 )
 
-    virtual HRESULT STDMETHODCALLTYPE get_PlaylistCount(
-        int* index) = 0;
+#define        DISPID_Length   ( 104 )
 
-    virtual HRESULT STDMETHODCALLTYPE playlistNext(
-        ) = 0;
+#define        DISPID_Volume   ( 105 )
 
-    virtual HRESULT STDMETHODCALLTYPE playlistPrev(
-        ) = 0;
+#define        DISPID_MRL      ( 106 )
 
-    virtual HRESULT STDMETHODCALLTYPE playlistClear(
-        ) = 0;
+#define        DISPID_AutoPlay ( 107 )
 
-    virtual HRESULT STDMETHODCALLTYPE get_VersionInfo(
-        BSTR* version) = 0;
+#define        DISPID_AutoLoop ( 108 )
 
-    virtual HRESULT STDMETHODCALLTYPE get_MRL(
-        BSTR* mrl) = 0;
+#define        DISPID_StartTime        ( 109 )
 
-    virtual HRESULT STDMETHODCALLTYPE put_MRL(
-        BSTR mrl) = 0;
+#define        DISPID_BaseURL  ( 110 )
 
-    virtual HRESULT STDMETHODCALLTYPE get_AutoPlay(
-        VARIANT_BOOL* autoplay) = 0;
+#define        DISPID_PlayEvent        ( 100 )
 
-    virtual HRESULT STDMETHODCALLTYPE put_AutoPlay(
-        VARIANT_BOOL autoplay) = 0;
+#define        DISPID_PauseEvent       ( 101 )
 
-    virtual HRESULT STDMETHODCALLTYPE get_AutoLoop(
-        VARIANT_BOOL* autoloop) = 0;
+#define        DISPID_StopEvent        ( 102 )
 
-    virtual HRESULT STDMETHODCALLTYPE put_AutoLoop(
-        VARIANT_BOOL autoloop) = 0;
 
-};
-#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);
+EXTERN_C const IID LIBID_AXVLC;
 
-    HRESULT (STDMETHODCALLTYPE *playlistPrev)(
-        IVLCControl* This);
+#ifndef __IVLCControl_INTERFACE_DEFINED__
+#define __IVLCControl_INTERFACE_DEFINED__
 
-    HRESULT (STDMETHODCALLTYPE *playlistClear)(
-        IVLCControl* This);
+/* interface IVLCControl */
+/* [object][oleautomation][dual][helpstring][uuid] */ 
 
-    HRESULT (STDMETHODCALLTYPE *get_VersionInfo)(
-        IVLCControl* This,
-        BSTR* version);
 
-    HRESULT (STDMETHODCALLTYPE *get_MRL)(
-        IVLCControl* This,
-        BSTR* mrl);
+EXTERN_C const IID IID_IVLCControl;
 
-    HRESULT (STDMETHODCALLTYPE *put_MRL)(
-        IVLCControl* This,
-        BSTR mrl);
+#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 *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 *isPlaying) = 0;
+        
+        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Position( 
+            /* [retval][out] */ float *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 *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 *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 *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 *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 *index) = 0;
+        
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_PlaylistCount( 
+            /* [retval][out] */ int *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 *version) = 0;
+        
+        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_MRL( 
+            /* [retval][out] */ BSTR *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 *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 *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 *QueryInterface )( 
+            IVLCControl * This,
+            /* [in] */ REFIID riid,
+            /* [iid_is][out] */ void **ppvObject);
+        
+        ULONG ( STDMETHODCALLTYPE *AddRef )( 
+            IVLCControl * This);
+        
+        ULONG ( STDMETHODCALLTYPE *Release )( 
+            IVLCControl * This);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
+            IVLCControl * This,
+            /* [out] */ UINT *pctinfo);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
+            IVLCControl * This,
+            /* [in] */ UINT iTInfo,
+            /* [in] */ LCID lcid,
+            /* [out] */ ITypeInfo **ppTInfo);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
+            IVLCControl * This,
+            /* [in] */ REFIID riid,
+            /* [size_is][in] */ LPOLESTR *rgszNames,
+            /* [in] */ UINT cNames,
+            /* [in] */ LCID lcid,
+            /* [size_is][out] */ DISPID *rgDispId);
+        
+        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
+            IVLCControl * This,
+            /* [in] */ DISPID dispIdMember,
+            /* [in] */ REFIID riid,
+            /* [in] */ LCID lcid,
+            /* [in] */ WORD wFlags,
+            /* [out][in] */ DISPPARAMS *pDispParams,
+            /* [out] */ VARIANT *pVarResult,
+            /* [out] */ EXCEPINFO *pExcepInfo,
+            /* [out] */ UINT *puArgErr);
+        
+        /* [helpstring][bindable][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
+            IVLCControl * This,
+            /* [retval][out] */ VARIANT_BOOL *visible);
+        
+        /* [helpstring][bindable][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
+            IVLCControl * This,
+            /* [in] */ VARIANT_BOOL visible);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *play )( 
+            IVLCControl * This);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *pause )( 
+            IVLCControl * This);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *stop )( 
+            IVLCControl * This);
+        
+        /* [helpstring][propget][hidden][id] */ HRESULT ( STDMETHODCALLTYPE *get_Playing )( 
+            IVLCControl * This,
+            /* [retval][out] */ VARIANT_BOOL *isPlaying);
+        
+        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Position )( 
+            IVLCControl * This,
+            /* [retval][out] */ float *position);
+        
+        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Position )( 
+            IVLCControl * This,
+            /* [in] */ float position);
+        
+        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Time )( 
+            IVLCControl * This,
+            /* [retval][out] */ int *seconds);
+        
+        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Time )( 
+            IVLCControl * This,
+            /* [in] */ int seconds);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *shuttle )( 
+            IVLCControl * This,
+            /* [in] */ int seconds);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *fullscreen )( 
+            IVLCControl * This);
+        
+        /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Length )( 
+            IVLCControl * This,
+            /* [retval][out] */ int *seconds);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *playFaster )( 
+            IVLCControl * This);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *playSlower )( 
+            IVLCControl * This);
+        
+        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Volume )( 
+            IVLCControl * This,
+            /* [retval][out] */ int *volume);
+        
+        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Volume )( 
+            IVLCControl * This,
+            /* [in] */ int volume);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *toggleMute )( 
+            IVLCControl * This);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *setVariable )( 
+            IVLCControl * This,
+            /* [in] */ BSTR name,
+            /* [in] */ VARIANT value);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *getVariable )( 
+            IVLCControl * This,
+            /* [in] */ BSTR name,
+            /* [retval][out] */ VARIANT *value);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *addTarget )( 
+            IVLCControl * This,
+            /* [in] */ BSTR uri,
+            /* [in] */ VARIANT options,
+            /* [in] */ enum VLCPlaylistMode mode,
+            /* [in] */ int position);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PlaylistIndex )( 
+            IVLCControl * This,
+            /* [retval][out] */ int *index);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PlaylistCount )( 
+            IVLCControl * This,
+            /* [retval][out] */ int *index);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *playlistNext )( 
+            IVLCControl * This);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *playlistPrev )( 
+            IVLCControl * This);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *playlistClear )( 
+            IVLCControl * This);
+        
+        /* [helpstring][hidden][propget] */ HRESULT ( STDMETHODCALLTYPE *get_VersionInfo )( 
+            IVLCControl * This,
+            /* [retval][out] */ BSTR *version);
+        
+        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MRL )( 
+            IVLCControl * This,
+            /* [retval][out] */ BSTR *mrl);
+        
+        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MRL )( 
+            IVLCControl * This,
+            /* [in] */ BSTR mrl);
+        
+        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AutoPlay )( 
+            IVLCControl * This,
+            /* [retval][out] */ VARIANT_BOOL *autoplay);
+        
+        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AutoPlay )( 
+            IVLCControl * This,
+            /* [in] */ VARIANT_BOOL autoplay);
+        
+        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AutoLoop )( 
+            IVLCControl * This,
+            /* [retval][out] */ VARIANT_BOOL *autoloop);
+        
+        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AutoLoop )( 
+            IVLCControl * This,
+            /* [in] */ VARIANT_BOOL autoloop);
+        
+        END_INTERFACE
+    } IVLCControlVtbl;
+
+    interface IVLCControl
+    {
+        CONST_VTBL struct IVLCControlVtbl *lpVtbl;
+    };
+
+    
 
-    HRESULT (STDMETHODCALLTYPE *get_AutoPlay)(
-        IVLCControl* This,
-        VARIANT_BOOL* autoplay);
+#ifdef COBJMACROS
 
-    HRESULT (STDMETHODCALLTYPE *put_AutoPlay)(
-        IVLCControl* This,
-        VARIANT_BOOL autoplay);
 
-    HRESULT (STDMETHODCALLTYPE *get_AutoLoop)(
-        IVLCControl* This,
-        VARIANT_BOOL* autoloop);
+#define IVLCControl_QueryInterface(This,riid,ppvObject)        \
+    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
 
-    HRESULT (STDMETHODCALLTYPE *put_AutoLoop)(
-        IVLCControl* This,
-        VARIANT_BOOL autoloop);
+#define IVLCControl_AddRef(This)       \
+    (This)->lpVtbl -> AddRef(This)
 
-    END_INTERFACE
-} IVLCControlVtbl;
-interface IVLCControl {
-    CONST_VTBL IVLCControlVtbl* lpVtbl;
-};
+#define IVLCControl_Release(This)      \
+    (This)->lpVtbl -> Release(This)
 
-#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
+#define IVLCControl_GetTypeInfoCount(This,pctinfo)     \
+    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
 
-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);
-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);
-HRESULT CALLBACK IVLCControl_play_Proxy(
-    IVLCControl* This);
-void __RPC_STUB IVLCControl_play_Stub(
-    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);
-HRESULT CALLBACK IVLCControl_stop_Proxy(
-    IVLCControl* This);
-void __RPC_STUB IVLCControl_stop_Stub(
-    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);
-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);
-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);
-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);
-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);
-HRESULT CALLBACK IVLCControl_shuttle_Proxy(
-    IVLCControl* This,
-    int seconds);
-void __RPC_STUB IVLCControl_shuttle_Stub(
-    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);
-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);
-HRESULT CALLBACK IVLCControl_playFaster_Proxy(
-    IVLCControl* This);
-void __RPC_STUB IVLCControl_playFaster_Stub(
-    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);
-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);
-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);
-HRESULT CALLBACK IVLCControl_toggleMute_Proxy(
-    IVLCControl* This);
-void __RPC_STUB IVLCControl_toggleMute_Stub(
-    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);
-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);
+#define IVLCControl_GetTypeInfo(This,iTInfo,lcid,ppTInfo)      \
+    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 
-#endif  /* __IVLCControl_INTERFACE_DEFINED__ */
+#define IVLCControl_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)    \
+    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 
-#define DISPID_PlayEvent (100)
+#define IVLCControl_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)      \
+    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
 
-#define DISPID_PauseEvent (101)
 
-#define DISPID_StopEvent (102)
+#define IVLCControl_get_Visible(This,visible)  \
+    (This)->lpVtbl -> get_Visible(This,visible)
 
-/*****************************************************************************
- * DVLCEvents dispinterface
- */
-#ifndef __DVLCEvents_DISPINTERFACE_DEFINED__
-#define __DVLCEvents_DISPINTERFACE_DEFINED__
+#define IVLCControl_put_Visible(This,visible)  \
+    (This)->lpVtbl -> put_Visible(This,visible)
 
-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_VTBL DVLCEventsVtbl* lpVtbl;
-};
+#define IVLCControl_play(This) \
+    (This)->lpVtbl -> play(This)
 
-#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
+#define IVLCControl_pause(This)        \
+    (This)->lpVtbl -> pause(This)
 
-#endif
+#define IVLCControl_stop(This) \
+    (This)->lpVtbl -> stop(This)
 
-#endif  /* __DVLCEvents_DISPINTERFACE_DEFINED__ */
+#define IVLCControl_get_Playing(This,isPlaying)        \
+    (This)->lpVtbl -> get_Playing(This,isPlaying)
 
-/*****************************************************************************
- * IVLCAudio interface
- */
-#ifndef __IVLCAudio_INTERFACE_DEFINED__
-#define __IVLCAudio_INTERFACE_DEFINED__
+#define IVLCControl_get_Position(This,position)        \
+    (This)->lpVtbl -> get_Position(This,position)
 
-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;
+#define IVLCControl_put_Position(This,position)        \
+    (This)->lpVtbl -> put_Position(This,position)
 
-    virtual HRESULT STDMETHODCALLTYPE put_mute(
-        VARIANT_BOOL muted) = 0;
+#define IVLCControl_get_Time(This,seconds)     \
+    (This)->lpVtbl -> get_Time(This,seconds)
 
-    virtual HRESULT STDMETHODCALLTYPE get_volume(
-        long* volume) = 0;
+#define IVLCControl_put_Time(This,seconds)     \
+    (This)->lpVtbl -> put_Time(This,seconds)
 
-    virtual HRESULT STDMETHODCALLTYPE put_volume(
-        long volume) = 0;
+#define IVLCControl_shuttle(This,seconds)      \
+    (This)->lpVtbl -> shuttle(This,seconds)
 
-    virtual HRESULT STDMETHODCALLTYPE toggleMute(
-        ) = 0;
+#define IVLCControl_fullscreen(This)   \
+    (This)->lpVtbl -> fullscreen(This)
 
-    virtual HRESULT STDMETHODCALLTYPE get_track(
-        long* track) = 0;
+#define IVLCControl_get_Length(This,seconds)   \
+    (This)->lpVtbl -> get_Length(This,seconds)
 
-    virtual HRESULT STDMETHODCALLTYPE put_track(
-        long track) = 0;
+#define IVLCControl_playFaster(This)   \
+    (This)->lpVtbl -> playFaster(This)
 
-    virtual HRESULT STDMETHODCALLTYPE get_channel(
-        long* channel) = 0;
+#define IVLCControl_playSlower(This)   \
+    (This)->lpVtbl -> playSlower(This)
 
-    virtual HRESULT STDMETHODCALLTYPE put_channel(
-        long channel) = 0;
+#define IVLCControl_get_Volume(This,volume)    \
+    (This)->lpVtbl -> get_Volume(This,volume)
 
-};
-#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,
-        long* volume);
-
-    HRESULT (STDMETHODCALLTYPE *put_volume)(
-        IVLCAudio* This,
-        long volume);
-
-    HRESULT (STDMETHODCALLTYPE *toggleMute)(
-        IVLCAudio* This);
-
-    HRESULT (STDMETHODCALLTYPE *get_track)(
-        IVLCAudio* This,
-        long* track);
-
-    HRESULT (STDMETHODCALLTYPE *put_track)(
-        IVLCAudio* This,
-        long track);
-
-    HRESULT (STDMETHODCALLTYPE *get_channel)(
-        IVLCAudio* This,
-        long* channel);
-
-    HRESULT (STDMETHODCALLTYPE *put_channel)(
-        IVLCAudio* This,
-        long channel);
-
-    END_INTERFACE
-} IVLCAudioVtbl;
-interface IVLCAudio {
-    CONST_VTBL IVLCAudioVtbl* lpVtbl;
-};
+#define IVLCControl_put_Volume(This,volume)    \
+    (This)->lpVtbl -> put_Volume(This,volume)
 
-#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)
-#define IVLCAudio_get_track(p,a) (p)->lpVtbl->get_track(p,a)
-#define IVLCAudio_put_track(p,a) (p)->lpVtbl->put_track(p,a)
-#define IVLCAudio_get_channel(p,a) (p)->lpVtbl->get_channel(p,a)
-#define IVLCAudio_put_channel(p,a) (p)->lpVtbl->put_channel(p,a)
-#endif
+#define IVLCControl_toggleMute(This)   \
+    (This)->lpVtbl -> toggleMute(This)
 
-#endif
+#define IVLCControl_setVariable(This,name,value)       \
+    (This)->lpVtbl -> setVariable(This,name,value)
 
-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,
-    long* 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,
-    long 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);
-HRESULT CALLBACK IVLCAudio_get_track_Proxy(
-    IVLCAudio* This,
-    long* track);
-void __RPC_STUB IVLCAudio_get_track_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IVLCAudio_put_track_Proxy(
-    IVLCAudio* This,
-    long track);
-void __RPC_STUB IVLCAudio_put_track_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IVLCAudio_get_channel_Proxy(
-    IVLCAudio* This,
-    long* channel);
-void __RPC_STUB IVLCAudio_get_channel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IVLCAudio_put_channel_Proxy(
-    IVLCAudio* This,
-    long channel);
-void __RPC_STUB IVLCAudio_put_channel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
+#define IVLCControl_getVariable(This,name,value)       \
+    (This)->lpVtbl -> getVariable(This,name,value)
 
-#endif  /* __IVLCAudio_INTERFACE_DEFINED__ */
+#define IVLCControl_addTarget(This,uri,options,mode,position)  \
+    (This)->lpVtbl -> addTarget(This,uri,options,mode,position)
 
-/*****************************************************************************
- * IVLCInput interface
- */
-#ifndef __IVLCInput_INTERFACE_DEFINED__
-#define __IVLCInput_INTERFACE_DEFINED__
+#define IVLCControl_get_PlaylistIndex(This,index)      \
+    (This)->lpVtbl -> get_PlaylistIndex(This,index)
 
-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;
+#define IVLCControl_get_PlaylistCount(This,index)      \
+    (This)->lpVtbl -> get_PlaylistCount(This,index)
 
-    virtual HRESULT STDMETHODCALLTYPE get_position(
-        double* position) = 0;
+#define IVLCControl_playlistNext(This) \
+    (This)->lpVtbl -> playlistNext(This)
 
-    virtual HRESULT STDMETHODCALLTYPE put_position(
-        double position) = 0;
+#define IVLCControl_playlistPrev(This) \
+    (This)->lpVtbl -> playlistPrev(This)
 
-    virtual HRESULT STDMETHODCALLTYPE get_time(
-        double* time) = 0;
+#define IVLCControl_playlistClear(This)        \
+    (This)->lpVtbl -> playlistClear(This)
 
-    virtual HRESULT STDMETHODCALLTYPE put_time(
-        double time) = 0;
+#define IVLCControl_get_VersionInfo(This,version)      \
+    (This)->lpVtbl -> get_VersionInfo(This,version)
 
-    virtual HRESULT STDMETHODCALLTYPE get_state(
-        long* state) = 0;
+#define IVLCControl_get_MRL(This,mrl)  \
+    (This)->lpVtbl -> get_MRL(This,mrl)
 
-    virtual HRESULT STDMETHODCALLTYPE get_rate(
-        double* rate) = 0;
+#define IVLCControl_put_MRL(This,mrl)  \
+    (This)->lpVtbl -> put_MRL(This,mrl)
 
-    virtual HRESULT STDMETHODCALLTYPE put_rate(
-        double rate) = 0;
+#define IVLCControl_get_AutoPlay(This,autoplay)        \
+    (This)->lpVtbl -> get_AutoPlay(This,autoplay)
 
-    virtual HRESULT STDMETHODCALLTYPE get_fps(
-        double* fps) = 0;
+#define IVLCControl_put_AutoPlay(This,autoplay)        \
+    (This)->lpVtbl -> put_AutoPlay(This,autoplay)
 
-    virtual HRESULT STDMETHODCALLTYPE get_hasVout(
-        VARIANT_BOOL* hasVout) = 0;
+#define IVLCControl_get_AutoLoop(This,autoloop)        \
+    (This)->lpVtbl -> get_AutoLoop(This,autoloop)
 
-};
-#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,
-        double* position);
-
-    HRESULT (STDMETHODCALLTYPE *put_position)(
-        IVLCInput* This,
-        double position);
-
-    HRESULT (STDMETHODCALLTYPE *get_time)(
-        IVLCInput* This,
-        double* time);
-
-    HRESULT (STDMETHODCALLTYPE *put_time)(
-        IVLCInput* This,
-        double time);
-
-    HRESULT (STDMETHODCALLTYPE *get_state)(
-        IVLCInput* This,
-        long* state);
-
-    HRESULT (STDMETHODCALLTYPE *get_rate)(
-        IVLCInput* This,
-        double* rate);
-
-    HRESULT (STDMETHODCALLTYPE *put_rate)(
-        IVLCInput* This,
-        double rate);
-
-    HRESULT (STDMETHODCALLTYPE *get_fps)(
-        IVLCInput* This,
-        double* fps);
-
-    HRESULT (STDMETHODCALLTYPE *get_hasVout)(
-        IVLCInput* This,
-        VARIANT_BOOL* hasVout);
-
-    END_INTERFACE
-} IVLCInputVtbl;
-interface IVLCInput {
-    CONST_VTBL IVLCInputVtbl* lpVtbl;
-};
+#define IVLCControl_put_AutoLoop(This,autoloop)        \
+    (This)->lpVtbl -> put_AutoLoop(This,autoloop)
 
-#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
+#endif /* COBJMACROS */
 
-#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,
-    double* 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,
-    double 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,
-    long* 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,
-    double* 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,
-    double 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,
-    double* 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         /* C style interface */
 
-#endif  /* __IVLCInput_INTERFACE_DEFINED__ */
 
-/*****************************************************************************
- * IVLCMessage interface
- */
-#ifndef __IVLCMessage_INTERFACE_DEFINED__
-#define __IVLCMessage_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_IVLCMessage, 0x9ed00afa, 0x7bcd, 0x4fff, 0x8d,0x48, 0x7d,0xd4,0xdb,0x2c,0x80,0x0d);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface IVLCMessage : public IDispatch
-{
-    virtual HRESULT STDMETHODCALLTYPE get__Value(
-        VARIANT* message) = 0;
+/* [helpstring][bindable][propget][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_Visible_Proxy( 
+    IVLCControl * This,
+    /* [retval][out] */ VARIANT_BOOL *visible);
 
-    virtual HRESULT STDMETHODCALLTYPE get_severity(
-        long* level) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE get_type(
-        BSTR* type) = 0;
+void __RPC_STUB IVLCControl_get_Visible_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
 
-    virtual HRESULT STDMETHODCALLTYPE get_name(
-        BSTR* name) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE get_header(
-        BSTR* header) = 0;
+/* [helpstring][bindable][propput][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_put_Visible_Proxy( 
+    IVLCControl * This,
+    /* [in] */ VARIANT_BOOL visible);
 
-    virtual HRESULT STDMETHODCALLTYPE get_message(
-        BSTR* message) = 0;
 
-};
-#else
-typedef struct IVLCMessageVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IVLCMessage* This,
-        REFIID riid,
-        void** ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        IVLCMessage* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        IVLCMessage* This);
-
-    /*** IDispatch methods ***/
-    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IVLCMessage* This,
-        UINT* pctinfo);
-
-    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IVLCMessage* This,
-        UINT iTInfo,
-        LCID lcid,
-        ITypeInfo** ppTInfo);
-
-    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IVLCMessage* This,
-        REFIID riid,
-        LPOLESTR* rgszNames,
-        UINT cNames,
-        LCID lcid,
-        DISPID* rgDispId);
-
-    HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IVLCMessage* This,
-        DISPID dispIdMember,
-        REFIID riid,
-        LCID lcid,
-        WORD wFlags,
-        DISPPARAMS* pDispParams,
-        VARIANT* pVarResult,
-        EXCEPINFO* pExcepInfo,
-        UINT* puArgErr);
-
-    /*** IVLCMessage methods ***/
-    HRESULT (STDMETHODCALLTYPE *get__Value)(
-        IVLCMessage* This,
-        VARIANT* message);
-
-    HRESULT (STDMETHODCALLTYPE *get_severity)(
-        IVLCMessage* This,
-        long* level);
-
-    HRESULT (STDMETHODCALLTYPE *get_type)(
-        IVLCMessage* This,
-        BSTR* type);
-
-    HRESULT (STDMETHODCALLTYPE *get_name)(
-        IVLCMessage* This,
-        BSTR* name);
-
-    HRESULT (STDMETHODCALLTYPE *get_header)(
-        IVLCMessage* This,
-        BSTR* header);
-
-    HRESULT (STDMETHODCALLTYPE *get_message)(
-        IVLCMessage* This,
-        BSTR* message);
-
-    END_INTERFACE
-} IVLCMessageVtbl;
-interface IVLCMessage {
-    CONST_VTBL IVLCMessageVtbl* lpVtbl;
-};
+void __RPC_STUB IVLCControl_put_Visible_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
 
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define IVLCMessage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IVLCMessage_AddRef(p) (p)->lpVtbl->AddRef(p)
-#define IVLCMessage_Release(p) (p)->lpVtbl->Release(p)
-/*** IDispatch methods ***/
-#define IVLCMessage_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
-#define IVLCMessage_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
-#define IVLCMessage_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
-#define IVLCMessage_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
-/*** IVLCMessage methods ***/
-#define IVLCMessage_get__Value(p,a) (p)->lpVtbl->get__Value(p,a)
-#define IVLCMessage_get_severity(p,a) (p)->lpVtbl->get_severity(p,a)
-#define IVLCMessage_get_type(p,a) (p)->lpVtbl->get_type(p,a)
-#define IVLCMessage_get_name(p,a) (p)->lpVtbl->get_name(p,a)
-#define IVLCMessage_get_header(p,a) (p)->lpVtbl->get_header(p,a)
-#define IVLCMessage_get_message(p,a) (p)->lpVtbl->get_message(p,a)
-#endif
 
-#endif
+/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_play_Proxy( 
+    IVLCControl * This);
 
-HRESULT CALLBACK IVLCMessage_get__Value_Proxy(
-    IVLCMessage* This,
-    VARIANT* message);
-void __RPC_STUB IVLCMessage_get__Value_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IVLCMessage_get_severity_Proxy(
-    IVLCMessage* This,
-    long* level);
-void __RPC_STUB IVLCMessage_get_severity_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IVLCMessage_get_type_Proxy(
-    IVLCMessage* This,
-    BSTR* type);
-void __RPC_STUB IVLCMessage_get_type_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IVLCMessage_get_name_Proxy(
-    IVLCMessage* This,
-    BSTR* name);
-void __RPC_STUB IVLCMessage_get_name_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IVLCMessage_get_header_Proxy(
-    IVLCMessage* This,
-    BSTR* header);
-void __RPC_STUB IVLCMessage_get_header_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IVLCMessage_get_message_Proxy(
-    IVLCMessage* This,
-    BSTR* message);
-void __RPC_STUB IVLCMessage_get_message_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
-#endif  /* __IVLCMessage_INTERFACE_DEFINED__ */
+void __RPC_STUB IVLCControl_play_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
 
-/*****************************************************************************
- * IVLCMessageIterator interface
- */
-#ifndef __IVLCMessageIterator_INTERFACE_DEFINED__
-#define __IVLCMessageIterator_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_IVLCMessageIterator, 0x15179cd8, 0xcc12, 0x4242, 0xa5,0x8e, 0xe4,0x12,0x21,0x7f,0xf3,0x43);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface IVLCMessageIterator : public IDispatch
-{
-    virtual HRESULT STDMETHODCALLTYPE get_hasNext(
-        VARIANT_BOOL* hasNext) = 0;
+/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_pause_Proxy( 
+    IVLCControl * This);
 
-    virtual HRESULT STDMETHODCALLTYPE next(
-        IVLCMessage** msg) = 0;
 
-};
-#else
-typedef struct IVLCMessageIteratorVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IVLCMessageIterator* This,
-        REFIID riid,
-        void** ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        IVLCMessageIterator* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        IVLCMessageIterator* This);
-
-    /*** IDispatch methods ***/
-    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IVLCMessageIterator* This,
-        UINT* pctinfo);
-
-    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IVLCMessageIterator* This,
-        UINT iTInfo,
-        LCID lcid,
-        ITypeInfo** ppTInfo);
-
-    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IVLCMessageIterator* This,
-        REFIID riid,
-        LPOLESTR* rgszNames,
-        UINT cNames,
-        LCID lcid,
-        DISPID* rgDispId);
-
-    HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IVLCMessageIterator* This,
-        DISPID dispIdMember,
-        REFIID riid,
-        LCID lcid,
-        WORD wFlags,
-        DISPPARAMS* pDispParams,
-        VARIANT* pVarResult,
-        EXCEPINFO* pExcepInfo,
-        UINT* puArgErr);
-
-    /*** IVLCMessageIterator methods ***/
-    HRESULT (STDMETHODCALLTYPE *get_hasNext)(
-        IVLCMessageIterator* This,
-        VARIANT_BOOL* hasNext);
-
-    HRESULT (STDMETHODCALLTYPE *next)(
-        IVLCMessageIterator* This,
-        IVLCMessage** msg);
-
-    END_INTERFACE
-} IVLCMessageIteratorVtbl;
-interface IVLCMessageIterator {
-    CONST_VTBL IVLCMessageIteratorVtbl* lpVtbl;
-};
+void __RPC_STUB IVLCControl_pause_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
 
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define IVLCMessageIterator_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IVLCMessageIterator_AddRef(p) (p)->lpVtbl->AddRef(p)
-#define IVLCMessageIterator_Release(p) (p)->lpVtbl->Release(p)
-/*** IDispatch methods ***/
-#define IVLCMessageIterator_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
-#define IVLCMessageIterator_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
-#define IVLCMessageIterator_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
-#define IVLCMessageIterator_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
-/*** IVLCMessageIterator methods ***/
-#define IVLCMessageIterator_get_hasNext(p,a) (p)->lpVtbl->get_hasNext(p,a)
-#define IVLCMessageIterator_next(p,a) (p)->lpVtbl->next(p,a)
-#endif
 
-#endif
+/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_stop_Proxy( 
+    IVLCControl * This);
 
-HRESULT CALLBACK IVLCMessageIterator_get_hasNext_Proxy(
-    IVLCMessageIterator* This,
-    VARIANT_BOOL* hasNext);
-void __RPC_STUB IVLCMessageIterator_get_hasNext_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IVLCMessageIterator_next_Proxy(
-    IVLCMessageIterator* This,
-    IVLCMessage** msg);
-void __RPC_STUB IVLCMessageIterator_next_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
-#endif  /* __IVLCMessageIterator_INTERFACE_DEFINED__ */
+void __RPC_STUB IVLCControl_stop_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
 
-/*****************************************************************************
- * IVLCMessages interface
- */
-#ifndef __IVLCMessages_INTERFACE_DEFINED__
-#define __IVLCMessages_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_IVLCMessages, 0x6c5ce55d, 0x2d6c, 0x4aad, 0x82,0x99, 0xc6,0x2d,0x23,0x71,0xf1,0x06);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface IVLCMessages : public IDispatch
-{
-    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
-        IUnknown** _NewEnum) = 0;
+/* [helpstring][propget][hidden][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_Playing_Proxy( 
+    IVLCControl * This,
+    /* [retval][out] */ VARIANT_BOOL *isPlaying);
 
-    virtual HRESULT STDMETHODCALLTYPE clear(
-        ) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE get_count(
-        long* count) = 0;
+void __RPC_STUB IVLCControl_get_Playing_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
 
-    virtual HRESULT STDMETHODCALLTYPE iterator(
-        IVLCMessageIterator** iter) = 0;
 
-};
-#else
-typedef struct IVLCMessagesVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IVLCMessages* This,
-        REFIID riid,
-        void** ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        IVLCMessages* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        IVLCMessages* This);
-
-    /*** IDispatch methods ***/
-    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IVLCMessages* This,
-        UINT* pctinfo);
-
-    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IVLCMessages* This,
-        UINT iTInfo,
-        LCID lcid,
-        ITypeInfo** ppTInfo);
-
-    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IVLCMessages* This,
-        REFIID riid,
-        LPOLESTR* rgszNames,
-        UINT cNames,
-        LCID lcid,
-        DISPID* rgDispId);
-
-    HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IVLCMessages* This,
-        DISPID dispIdMember,
-        REFIID riid,
-        LCID lcid,
-        WORD wFlags,
-        DISPPARAMS* pDispParams,
-        VARIANT* pVarResult,
-        EXCEPINFO* pExcepInfo,
-        UINT* puArgErr);
-
-    /*** IVLCMessages methods ***/
-    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
-        IVLCMessages* This,
-        IUnknown** _NewEnum);
-
-    HRESULT (STDMETHODCALLTYPE *clear)(
-        IVLCMessages* This);
-
-    HRESULT (STDMETHODCALLTYPE *get_count)(
-        IVLCMessages* This,
-        long* count);
-
-    HRESULT (STDMETHODCALLTYPE *iterator)(
-        IVLCMessages* This,
-        IVLCMessageIterator** iter);
-
-    END_INTERFACE
-} IVLCMessagesVtbl;
-interface IVLCMessages {
-    CONST_VTBL IVLCMessagesVtbl* lpVtbl;
-};
+/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_Position_Proxy( 
+    IVLCControl * This,
+    /* [retval][out] */ float *position);
 
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define IVLCMessages_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IVLCMessages_AddRef(p) (p)->lpVtbl->AddRef(p)
-#define IVLCMessages_Release(p) (p)->lpVtbl->Release(p)
-/*** IDispatch methods ***/
-#define IVLCMessages_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
-#define IVLCMessages_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
-#define IVLCMessages_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
-#define IVLCMessages_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
-/*** IVLCMessages methods ***/
-#define IVLCMessages_get__NewEnum(p,a) (p)->lpVtbl->get__NewEnum(p,a)
-#define IVLCMessages_clear(p) (p)->lpVtbl->clear(p)
-#define IVLCMessages_get_count(p,a) (p)->lpVtbl->get_count(p,a)
-#define IVLCMessages_iterator(p,a) (p)->lpVtbl->iterator(p,a)
-#endif
 
-#endif
+void __RPC_STUB IVLCControl_get_Position_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
 
-HRESULT CALLBACK IVLCMessages_get__NewEnum_Proxy(
-    IVLCMessages* This,
-    IUnknown** _NewEnum);
-void __RPC_STUB IVLCMessages_get__NewEnum_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IVLCMessages_clear_Proxy(
-    IVLCMessages* This);
-void __RPC_STUB IVLCMessages_clear_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IVLCMessages_get_count_Proxy(
-    IVLCMessages* This,
-    long* count);
-void __RPC_STUB IVLCMessages_get_count_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IVLCMessages_iterator_Proxy(
-    IVLCMessages* This,
-    IVLCMessageIterator** iter);
-void __RPC_STUB IVLCMessages_iterator_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
-#endif  /* __IVLCMessages_INTERFACE_DEFINED__ */
+/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_put_Position_Proxy( 
+    IVLCControl * This,
+    /* [in] */ float position);
 
-/*****************************************************************************
- * IVLCLog interface
- */
-#ifndef __IVLCLog_INTERFACE_DEFINED__
-#define __IVLCLog_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_IVLCLog, 0x8e3bc3d9, 0x62e9, 0x48fb, 0x8a,0x6d, 0x99,0x3f,0x9a,0xbc,0x4a,0x0a);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface IVLCLog : public IDispatch
-{
-    virtual HRESULT STDMETHODCALLTYPE get_messages(
-        IVLCMessages** iter) = 0;
+void __RPC_STUB IVLCControl_put_Position_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
 
-    virtual HRESULT STDMETHODCALLTYPE get_verbosity(
-        long* level) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE put_verbosity(
-        long level) = 0;
+/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_Time_Proxy( 
+    IVLCControl * This,
+    /* [retval][out] */ int *seconds);
 
-};
-#else
-typedef struct IVLCLogVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IVLCLog* This,
-        REFIID riid,
-        void** ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        IVLCLog* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        IVLCLog* This);
-
-    /*** IDispatch methods ***/
-    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IVLCLog* This,
-        UINT* pctinfo);
-
-    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IVLCLog* This,
-        UINT iTInfo,
-        LCID lcid,
-        ITypeInfo** ppTInfo);
-
-    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IVLCLog* This,
-        REFIID riid,
-        LPOLESTR* rgszNames,
-        UINT cNames,
-        LCID lcid,
-        DISPID* rgDispId);
-
-    HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IVLCLog* This,
-        DISPID dispIdMember,
-        REFIID riid,
-        LCID lcid,
-        WORD wFlags,
-        DISPPARAMS* pDispParams,
-        VARIANT* pVarResult,
-        EXCEPINFO* pExcepInfo,
-        UINT* puArgErr);
-
-    /*** IVLCLog methods ***/
-    HRESULT (STDMETHODCALLTYPE *get_messages)(
-        IVLCLog* This,
-        IVLCMessages** iter);
-
-    HRESULT (STDMETHODCALLTYPE *get_verbosity)(
-        IVLCLog* This,
-        long* level);
-
-    HRESULT (STDMETHODCALLTYPE *put_verbosity)(
-        IVLCLog* This,
-        long level);
-
-    END_INTERFACE
-} IVLCLogVtbl;
-interface IVLCLog {
-    CONST_VTBL IVLCLogVtbl* lpVtbl;
-};
 
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define IVLCLog_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IVLCLog_AddRef(p) (p)->lpVtbl->AddRef(p)
-#define IVLCLog_Release(p) (p)->lpVtbl->Release(p)
-/*** IDispatch methods ***/
-#define IVLCLog_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
-#define IVLCLog_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
-#define IVLCLog_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
-#define IVLCLog_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
-/*** IVLCLog methods ***/
-#define IVLCLog_get_messages(p,a) (p)->lpVtbl->get_messages(p,a)
-#define IVLCLog_get_verbosity(p,a) (p)->lpVtbl->get_verbosity(p,a)
-#define IVLCLog_put_verbosity(p,a) (p)->lpVtbl->put_verbosity(p,a)
-#endif
+void __RPC_STUB IVLCControl_get_Time_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
 
-#endif
 
-HRESULT CALLBACK IVLCLog_get_messages_Proxy(
-    IVLCLog* This,
-    IVLCMessages** iter);
-void __RPC_STUB IVLCLog_get_messages_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IVLCLog_get_verbosity_Proxy(
-    IVLCLog* This,
-    long* level);
-void __RPC_STUB IVLCLog_get_verbosity_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IVLCLog_put_verbosity_Proxy(
-    IVLCLog* This,
-    long level);
-void __RPC_STUB IVLCLog_put_verbosity_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
+/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_put_Time_Proxy( 
+    IVLCControl * This,
+    /* [in] */ int seconds);
 
-#endif  /* __IVLCLog_INTERFACE_DEFINED__ */
 
-#ifndef __IVLCPlaylistItems_FWD_DEFINED__
-#define __IVLCPlaylistItems_FWD_DEFINED__
-typedef interface IVLCPlaylistItems IVLCPlaylistItems;
-#endif
+void __RPC_STUB IVLCControl_put_Time_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
 
-/*****************************************************************************
- * IVLCPlaylistItems interface
- */
-#ifndef __IVLCPlaylistItems_INTERFACE_DEFINED__
-#define __IVLCPlaylistItems_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_IVLCPlaylistItems, 0xfd37fe32, 0x82bc, 0x4a25, 0xb0,0x56, 0x31,0x5f,0x4d,0xbb,0x19,0x4d);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface IVLCPlaylistItems : public IDispatch
-{
-    virtual HRESULT STDMETHODCALLTYPE get_count(
-        long* count) = 0;
+/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_shuttle_Proxy( 
+    IVLCControl * This,
+    /* [in] */ int seconds);
 
-    virtual HRESULT STDMETHODCALLTYPE clear(
-        ) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE remove(
-        long itemId) = 0;
+void __RPC_STUB IVLCControl_shuttle_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
 
-};
-#else
-typedef struct IVLCPlaylistItemsVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IVLCPlaylistItems* This,
-        REFIID riid,
-        void** ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        IVLCPlaylistItems* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        IVLCPlaylistItems* This);
-
-    /*** IDispatch methods ***/
-    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IVLCPlaylistItems* This,
-        UINT* pctinfo);
-
-    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IVLCPlaylistItems* This,
-        UINT iTInfo,
-        LCID lcid,
-        ITypeInfo** ppTInfo);
-
-    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IVLCPlaylistItems* This,
-        REFIID riid,
-        LPOLESTR* rgszNames,
-        UINT cNames,
-        LCID lcid,
-        DISPID* rgDispId);
-
-    HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IVLCPlaylistItems* This,
-        DISPID dispIdMember,
-        REFIID riid,
-        LCID lcid,
-        WORD wFlags,
-        DISPPARAMS* pDispParams,
-        VARIANT* pVarResult,
-        EXCEPINFO* pExcepInfo,
-        UINT* puArgErr);
-
-    /*** IVLCPlaylistItems methods ***/
-    HRESULT (STDMETHODCALLTYPE *get_count)(
-        IVLCPlaylistItems* This,
-        long* count);
-
-    HRESULT (STDMETHODCALLTYPE *clear)(
-        IVLCPlaylistItems* This);
-
-    HRESULT (STDMETHODCALLTYPE *remove)(
-        IVLCPlaylistItems* This,
-        long itemId);
-
-    END_INTERFACE
-} IVLCPlaylistItemsVtbl;
-interface IVLCPlaylistItems {
-    CONST_VTBL IVLCPlaylistItemsVtbl* lpVtbl;
-};
 
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define IVLCPlaylistItems_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IVLCPlaylistItems_AddRef(p) (p)->lpVtbl->AddRef(p)
-#define IVLCPlaylistItems_Release(p) (p)->lpVtbl->Release(p)
-/*** IDispatch methods ***/
-#define IVLCPlaylistItems_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
-#define IVLCPlaylistItems_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
-#define IVLCPlaylistItems_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
-#define IVLCPlaylistItems_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
-/*** IVLCPlaylistItems methods ***/
-#define IVLCPlaylistItems_get_count(p,a) (p)->lpVtbl->get_count(p,a)
-#define IVLCPlaylistItems_clear(p) (p)->lpVtbl->clear(p)
-#define IVLCPlaylistItems_remove(p,a) (p)->lpVtbl->remove(p,a)
-#endif
+/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_fullscreen_Proxy( 
+    IVLCControl * This);
 
-#endif
 
-HRESULT CALLBACK IVLCPlaylistItems_get_count_Proxy(
-    IVLCPlaylistItems* This,
-    long* count);
-void __RPC_STUB IVLCPlaylistItems_get_count_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IVLCPlaylistItems_clear_Proxy(
-    IVLCPlaylistItems* This);
-void __RPC_STUB IVLCPlaylistItems_clear_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IVLCPlaylistItems_remove_Proxy(
-    IVLCPlaylistItems* This,
-    long itemId);
-void __RPC_STUB IVLCPlaylistItems_remove_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
+void __RPC_STUB IVLCControl_fullscreen_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
 
-#endif  /* __IVLCPlaylistItems_INTERFACE_DEFINED__ */
 
-/*****************************************************************************
- * IVLCPlaylist interface
- */
-#ifndef __IVLCPlaylist_INTERFACE_DEFINED__
-#define __IVLCPlaylist_INTERFACE_DEFINED__
+/* [helpstring][hidden][propget][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_Length_Proxy( 
+    IVLCControl * This,
+    /* [retval][out] */ int *seconds);
 
-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(
-        long* count) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE get_isPlaying(
-        VARIANT_BOOL* playing) = 0;
+void __RPC_STUB IVLCControl_get_Length_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
 
-    virtual HRESULT STDMETHODCALLTYPE add(
-        BSTR uri,
-        VARIANT name,
-        VARIANT options,
-        long* itemId) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE play(
-        ) = 0;
+/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_playFaster_Proxy( 
+    IVLCControl * This);
 
-    virtual HRESULT STDMETHODCALLTYPE playItem(
-        long itemId) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE togglePause(
-        ) = 0;
+void __RPC_STUB IVLCControl_playFaster_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
 
-    virtual HRESULT STDMETHODCALLTYPE stop(
-        ) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE next(
-        ) = 0;
+/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_playSlower_Proxy( 
+    IVLCControl * This);
 
-    virtual HRESULT STDMETHODCALLTYPE prev(
-        ) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE clear(
-        ) = 0;
+void __RPC_STUB IVLCControl_playSlower_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
 
-    virtual HRESULT STDMETHODCALLTYPE removeItem(
-        long item) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE get_items(
-        IVLCPlaylistItems** obj) = 0;
+/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_Volume_Proxy( 
+    IVLCControl * This,
+    /* [retval][out] */ int *volume);
 
-};
-#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,
-        long* count);
-
-    HRESULT (STDMETHODCALLTYPE *get_isPlaying)(
-        IVLCPlaylist* This,
-        VARIANT_BOOL* playing);
-
-    HRESULT (STDMETHODCALLTYPE *add)(
-        IVLCPlaylist* This,
-        BSTR uri,
-        VARIANT name,
-        VARIANT options,
-        long* itemId);
-
-    HRESULT (STDMETHODCALLTYPE *play)(
-        IVLCPlaylist* This);
-
-    HRESULT (STDMETHODCALLTYPE *playItem)(
-        IVLCPlaylist* This,
-        long itemId);
-
-    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,
-        long item);
-
-    HRESULT (STDMETHODCALLTYPE *get_items)(
-        IVLCPlaylist* This,
-        IVLCPlaylistItems** obj);
-
-    END_INTERFACE
-} IVLCPlaylistVtbl;
-interface IVLCPlaylist {
-    CONST_VTBL IVLCPlaylistVtbl* lpVtbl;
-};
 
-#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)
-#define IVLCPlaylist_get_items(p,a) (p)->lpVtbl->get_items(p,a)
-#endif
+void __RPC_STUB IVLCControl_get_Volume_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
 
-#endif
 
-HRESULT CALLBACK IVLCPlaylist_get_itemCount_Proxy(
-    IVLCPlaylist* This,
-    long* 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,
-    long* itemId);
-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,
-    long itemId);
-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,
-    long item);
-void __RPC_STUB IVLCPlaylist_removeItem_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IVLCPlaylist_get_items_Proxy(
-    IVLCPlaylist* This,
-    IVLCPlaylistItems** obj);
-void __RPC_STUB IVLCPlaylist_get_items_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
+/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_put_Volume_Proxy( 
+    IVLCControl * This,
+    /* [in] */ int volume);
 
-#endif  /* __IVLCPlaylist_INTERFACE_DEFINED__ */
 
-/*****************************************************************************
- * IVLCVideo interface
- */
-#ifndef __IVLCVideo_INTERFACE_DEFINED__
-#define __IVLCVideo_INTERFACE_DEFINED__
+void __RPC_STUB IVLCControl_put_Volume_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
 
-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;
 
-    virtual HRESULT STDMETHODCALLTYPE put_fullscreen(
-        VARIANT_BOOL fullscreen) = 0;
+/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_toggleMute_Proxy( 
+    IVLCControl * This);
 
-    virtual HRESULT STDMETHODCALLTYPE get_width(
-        long* width) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE get_height(
-        long* height) = 0;
+void __RPC_STUB IVLCControl_toggleMute_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
 
-    virtual HRESULT STDMETHODCALLTYPE get_aspectRatio(
-        BSTR* aspect) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE put_aspectRatio(
-        BSTR aspect) = 0;
+/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_setVariable_Proxy( 
+    IVLCControl * This,
+    /* [in] */ BSTR name,
+    /* [in] */ VARIANT value);
 
-    virtual HRESULT STDMETHODCALLTYPE get_subtitle(
-        long* spu) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE put_subtitle(
-        long spu) = 0;
+void __RPC_STUB IVLCControl_setVariable_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
 
-    virtual HRESULT STDMETHODCALLTYPE get_crop(
-        BSTR* geometry) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE put_crop(
-        BSTR geometry) = 0;
+/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_getVariable_Proxy( 
+    IVLCControl * This,
+    /* [in] */ BSTR name,
+    /* [retval][out] */ VARIANT *value);
 
-    virtual HRESULT STDMETHODCALLTYPE toggleFullscreen(
-        ) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE takeSnapshot(
-        IPictureDisp** picture) = 0;
+void __RPC_STUB IVLCControl_getVariable_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
 
-};
-#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,
-        long* width);
-
-    HRESULT (STDMETHODCALLTYPE *get_height)(
-        IVLCVideo* This,
-        long* height);
-
-    HRESULT (STDMETHODCALLTYPE *get_aspectRatio)(
-        IVLCVideo* This,
-        BSTR* aspect);
-
-    HRESULT (STDMETHODCALLTYPE *put_aspectRatio)(
-        IVLCVideo* This,
-        BSTR aspect);
-
-    HRESULT (STDMETHODCALLTYPE *get_subtitle)(
-        IVLCVideo* This,
-        long* spu);
-
-    HRESULT (STDMETHODCALLTYPE *put_subtitle)(
-        IVLCVideo* This,
-        long spu);
-
-    HRESULT (STDMETHODCALLTYPE *get_crop)(
-        IVLCVideo* This,
-        BSTR* geometry);
-
-    HRESULT (STDMETHODCALLTYPE *put_crop)(
-        IVLCVideo* This,
-        BSTR geometry);
-
-    HRESULT (STDMETHODCALLTYPE *toggleFullscreen)(
-        IVLCVideo* This);
-
-    HRESULT (STDMETHODCALLTYPE *takeSnapshot)(
-        IVLCVideo* This,
-        IPictureDisp** picture);
-
-    END_INTERFACE
-} IVLCVideoVtbl;
-interface IVLCVideo {
-    CONST_VTBL 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_get_aspectRatio(p,a) (p)->lpVtbl->get_aspectRatio(p,a)
-#define IVLCVideo_put_aspectRatio(p,a) (p)->lpVtbl->put_aspectRatio(p,a)
-#define IVLCVideo_get_subtitle(p,a) (p)->lpVtbl->get_subtitle(p,a)
-#define IVLCVideo_put_subtitle(p,a) (p)->lpVtbl->put_subtitle(p,a)
-#define IVLCVideo_get_crop(p,a) (p)->lpVtbl->get_crop(p,a)
-#define IVLCVideo_put_crop(p,a) (p)->lpVtbl->put_crop(p,a)
-#define IVLCVideo_toggleFullscreen(p) (p)->lpVtbl->toggleFullscreen(p)
-#define IVLCVideo_takeSnapshot(p,a) (p)->lpVtbl->takeSnapshot(p,a)
-#endif
+/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_addTarget_Proxy( 
+    IVLCControl * This,
+    /* [in] */ BSTR uri,
+    /* [in] */ VARIANT options,
+    /* [in] */ enum VLCPlaylistMode mode,
+    /* [in] */ int position);
 
-#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,
-    long* 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,
-    long* height);
-void __RPC_STUB IVLCVideo_get_height_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IVLCVideo_get_aspectRatio_Proxy(
-    IVLCVideo* This,
-    BSTR* aspect);
-void __RPC_STUB IVLCVideo_get_aspectRatio_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IVLCVideo_put_aspectRatio_Proxy(
-    IVLCVideo* This,
-    BSTR aspect);
-void __RPC_STUB IVLCVideo_put_aspectRatio_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IVLCVideo_get_subtitle_Proxy(
-    IVLCVideo* This,
-    long* spu);
-void __RPC_STUB IVLCVideo_get_subtitle_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IVLCVideo_put_subtitle_Proxy(
-    IVLCVideo* This,
-    long spu);
-void __RPC_STUB IVLCVideo_put_subtitle_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IVLCVideo_get_crop_Proxy(
-    IVLCVideo* This,
-    BSTR* geometry);
-void __RPC_STUB IVLCVideo_get_crop_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IVLCVideo_put_crop_Proxy(
-    IVLCVideo* This,
-    BSTR geometry);
-void __RPC_STUB IVLCVideo_put_crop_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);
-HRESULT CALLBACK IVLCVideo_takeSnapshot_Proxy(
-    IVLCVideo* This,
-    IPictureDisp** picture);
-void __RPC_STUB IVLCVideo_takeSnapshot_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
+void __RPC_STUB IVLCControl_addTarget_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_PlaylistIndex_Proxy( 
+    IVLCControl * This,
+    /* [retval][out] */ int *index);
+
+
+void __RPC_STUB IVLCControl_get_PlaylistIndex_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_PlaylistCount_Proxy( 
+    IVLCControl * This,
+    /* [retval][out] */ int *index);
+
+
+void __RPC_STUB IVLCControl_get_PlaylistCount_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_playlistNext_Proxy( 
+    IVLCControl * This);
+
+
+void __RPC_STUB IVLCControl_playlistNext_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_playlistPrev_Proxy( 
+    IVLCControl * This);
+
+
+void __RPC_STUB IVLCControl_playlistPrev_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_playlistClear_Proxy( 
+    IVLCControl * This);
+
+
+void __RPC_STUB IVLCControl_playlistClear_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][hidden][propget] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_VersionInfo_Proxy( 
+    IVLCControl * This,
+    /* [retval][out] */ BSTR *version);
+
+
+void __RPC_STUB IVLCControl_get_VersionInfo_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_MRL_Proxy( 
+    IVLCControl * This,
+    /* [retval][out] */ BSTR *mrl);
+
+
+void __RPC_STUB IVLCControl_get_MRL_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_put_MRL_Proxy( 
+    IVLCControl * This,
+    /* [in] */ BSTR mrl);
+
+
+void __RPC_STUB IVLCControl_put_MRL_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_AutoPlay_Proxy( 
+    IVLCControl * This,
+    /* [retval][out] */ VARIANT_BOOL *autoplay);
+
+
+void __RPC_STUB IVLCControl_get_AutoPlay_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_put_AutoPlay_Proxy( 
+    IVLCControl * This,
+    /* [in] */ VARIANT_BOOL autoplay);
+
+
+void __RPC_STUB IVLCControl_put_AutoPlay_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_AutoLoop_Proxy( 
+    IVLCControl * This,
+    /* [retval][out] */ VARIANT_BOOL *autoloop);
+
+
+void __RPC_STUB IVLCControl_get_AutoLoop_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_put_AutoLoop_Proxy( 
+    IVLCControl * This,
+    /* [in] */ VARIANT_BOOL autoloop);
+
+
+void __RPC_STUB IVLCControl_put_AutoLoop_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+
+#endif         /* __IVLCControl_INTERFACE_DEFINED__ */
+
+
+#ifndef __IVLCAudio_INTERFACE_DEFINED__
+#define __IVLCAudio_INTERFACE_DEFINED__
+
+/* interface IVLCAudio */
+/* [object][oleautomation][dual][helpstring][uuid] */ 
+
+
+EXTERN_C const IID IID_IVLCAudio;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+    
+    MIDL_INTERFACE("9E0BD17B-2D3C-4656-B94D-03084F3FD9D4")
+    IVLCAudio : public IDispatch
+    {
+    public:
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_mute( 
+            /* [retval][out] */ VARIANT_BOOL *muted) = 0;
+        
+        virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_mute( 
+            /* [in] */ VARIANT_BOOL muted) = 0;
+        
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_volume( 
+            /* [retval][out] */ long *volume) = 0;
+        
+        virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_volume( 
+            /* [in] */ long volume) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE toggleMute( void) = 0;
+        
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_track( 
+            /* [retval][out] */ long *track) = 0;
+        
+        virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_track( 
+            /* [in] */ long track) = 0;
+        
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_channel( 
+            /* [retval][out] */ long *channel) = 0;
+        
+        virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_channel( 
+            /* [in] */ long channel) = 0;
+        
+    };
+    
+#else  /* C style interface */
+
+    typedef struct IVLCAudioVtbl
+    {
+        BEGIN_INTERFACE
+        
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
+            IVLCAudio * This,
+            /* [in] */ REFIID riid,
+            /* [iid_is][out] */ void **ppvObject);
+        
+        ULONG ( STDMETHODCALLTYPE *AddRef )( 
+            IVLCAudio * This);
+        
+        ULONG ( STDMETHODCALLTYPE *Release )( 
+            IVLCAudio * This);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
+            IVLCAudio * This,
+            /* [out] */ UINT *pctinfo);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
+            IVLCAudio * This,
+            /* [in] */ UINT iTInfo,
+            /* [in] */ LCID lcid,
+            /* [out] */ ITypeInfo **ppTInfo);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
+            IVLCAudio * This,
+            /* [in] */ REFIID riid,
+            /* [size_is][in] */ LPOLESTR *rgszNames,
+            /* [in] */ UINT cNames,
+            /* [in] */ LCID lcid,
+            /* [size_is][out] */ DISPID *rgDispId);
+        
+        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
+            IVLCAudio * This,
+            /* [in] */ DISPID dispIdMember,
+            /* [in] */ REFIID riid,
+            /* [in] */ LCID lcid,
+            /* [in] */ WORD wFlags,
+            /* [out][in] */ DISPPARAMS *pDispParams,
+            /* [out] */ VARIANT *pVarResult,
+            /* [out] */ EXCEPINFO *pExcepInfo,
+            /* [out] */ UINT *puArgErr);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_mute )( 
+            IVLCAudio * This,
+            /* [retval][out] */ VARIANT_BOOL *muted);
+        
+        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_mute )( 
+            IVLCAudio * This,
+            /* [in] */ VARIANT_BOOL muted);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_volume )( 
+            IVLCAudio * This,
+            /* [retval][out] */ long *volume);
+        
+        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_volume )( 
+            IVLCAudio * This,
+            /* [in] */ long volume);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *toggleMute )( 
+            IVLCAudio * This);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_track )( 
+            IVLCAudio * This,
+            /* [retval][out] */ long *track);
+        
+        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_track )( 
+            IVLCAudio * This,
+            /* [in] */ long track);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_channel )( 
+            IVLCAudio * This,
+            /* [retval][out] */ long *channel);
+        
+        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_channel )( 
+            IVLCAudio * This,
+            /* [in] */ long channel);
+        
+        END_INTERFACE
+    } IVLCAudioVtbl;
+
+    interface IVLCAudio
+    {
+        CONST_VTBL struct IVLCAudioVtbl *lpVtbl;
+    };
+
+    
+
+#ifdef COBJMACROS
+
+
+#define IVLCAudio_QueryInterface(This,riid,ppvObject)  \
+    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define IVLCAudio_AddRef(This) \
+    (This)->lpVtbl -> AddRef(This)
+
+#define IVLCAudio_Release(This)        \
+    (This)->lpVtbl -> Release(This)
+
+
+#define IVLCAudio_GetTypeInfoCount(This,pctinfo)       \
+    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define IVLCAudio_GetTypeInfo(This,iTInfo,lcid,ppTInfo)        \
+    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define IVLCAudio_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)      \
+    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define IVLCAudio_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)        \
+    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define IVLCAudio_get_mute(This,muted) \
+    (This)->lpVtbl -> get_mute(This,muted)
+
+#define IVLCAudio_put_mute(This,muted) \
+    (This)->lpVtbl -> put_mute(This,muted)
+
+#define IVLCAudio_get_volume(This,volume)      \
+    (This)->lpVtbl -> get_volume(This,volume)
+
+#define IVLCAudio_put_volume(This,volume)      \
+    (This)->lpVtbl -> put_volume(This,volume)
+
+#define IVLCAudio_toggleMute(This)     \
+    (This)->lpVtbl -> toggleMute(This)
+
+#define IVLCAudio_get_track(This,track)        \
+    (This)->lpVtbl -> get_track(This,track)
+
+#define IVLCAudio_put_track(This,track)        \
+    (This)->lpVtbl -> put_track(This,track)
+
+#define IVLCAudio_get_channel(This,channel)    \
+    (This)->lpVtbl -> get_channel(This,channel)
+
+#define IVLCAudio_put_channel(This,channel)    \
+    (This)->lpVtbl -> put_channel(This,channel)
+
+#endif /* COBJMACROS */
+
+
+#endif         /* C style interface */
+
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCAudio_get_mute_Proxy( 
+    IVLCAudio * This,
+    /* [retval][out] */ VARIANT_BOOL *muted);
+
+
+void __RPC_STUB IVLCAudio_get_mute_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IVLCAudio_put_mute_Proxy( 
+    IVLCAudio * This,
+    /* [in] */ VARIANT_BOOL muted);
+
+
+void __RPC_STUB IVLCAudio_put_mute_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCAudio_get_volume_Proxy( 
+    IVLCAudio * This,
+    /* [retval][out] */ long *volume);
+
+
+void __RPC_STUB IVLCAudio_get_volume_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IVLCAudio_put_volume_Proxy( 
+    IVLCAudio * This,
+    /* [in] */ long volume);
+
+
+void __RPC_STUB IVLCAudio_put_volume_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCAudio_toggleMute_Proxy( 
+    IVLCAudio * This);
+
+
+void __RPC_STUB IVLCAudio_toggleMute_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCAudio_get_track_Proxy( 
+    IVLCAudio * This,
+    /* [retval][out] */ long *track);
+
+
+void __RPC_STUB IVLCAudio_get_track_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IVLCAudio_put_track_Proxy( 
+    IVLCAudio * This,
+    /* [in] */ long track);
+
+
+void __RPC_STUB IVLCAudio_put_track_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCAudio_get_channel_Proxy( 
+    IVLCAudio * This,
+    /* [retval][out] */ long *channel);
+
+
+void __RPC_STUB IVLCAudio_get_channel_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IVLCAudio_put_channel_Proxy( 
+    IVLCAudio * This,
+    /* [in] */ long channel);
+
+
+void __RPC_STUB IVLCAudio_put_channel_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+
+#endif         /* __IVLCAudio_INTERFACE_DEFINED__ */
+
+
+#ifndef __IVLCInput_INTERFACE_DEFINED__
+#define __IVLCInput_INTERFACE_DEFINED__
+
+/* interface IVLCInput */
+/* [object][oleautomation][dual][helpstring][uuid] */ 
+
+
+EXTERN_C const IID IID_IVLCInput;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+    
+    MIDL_INTERFACE("49E0DBD1-9440-466C-9C97-95C67190C603")
+    IVLCInput : public IDispatch
+    {
+    public:
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_length( 
+            /* [retval][out] */ double *length) = 0;
+        
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_position( 
+            /* [retval][out] */ double *position) = 0;
+        
+        virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_position( 
+            /* [in] */ double position) = 0;
+        
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_time( 
+            /* [retval][out] */ double *time) = 0;
+        
+        virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_time( 
+            /* [in] */ double time) = 0;
+        
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_state( 
+            /* [retval][out] */ long *state) = 0;
+        
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_rate( 
+            /* [retval][out] */ double *rate) = 0;
+        
+        virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_rate( 
+            /* [in] */ double rate) = 0;
+        
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_fps( 
+            /* [retval][out] */ double *fps) = 0;
+        
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasVout( 
+            /* [retval][out] */ VARIANT_BOOL *hasVout) = 0;
+        
+    };
+    
+#else  /* C style interface */
+
+    typedef struct IVLCInputVtbl
+    {
+        BEGIN_INTERFACE
+        
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
+            IVLCInput * This,
+            /* [in] */ REFIID riid,
+            /* [iid_is][out] */ void **ppvObject);
+        
+        ULONG ( STDMETHODCALLTYPE *AddRef )( 
+            IVLCInput * This);
+        
+        ULONG ( STDMETHODCALLTYPE *Release )( 
+            IVLCInput * This);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
+            IVLCInput * This,
+            /* [out] */ UINT *pctinfo);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
+            IVLCInput * This,
+            /* [in] */ UINT iTInfo,
+            /* [in] */ LCID lcid,
+            /* [out] */ ITypeInfo **ppTInfo);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
+            IVLCInput * This,
+            /* [in] */ REFIID riid,
+            /* [size_is][in] */ LPOLESTR *rgszNames,
+            /* [in] */ UINT cNames,
+            /* [in] */ LCID lcid,
+            /* [size_is][out] */ DISPID *rgDispId);
+        
+        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
+            IVLCInput * This,
+            /* [in] */ DISPID dispIdMember,
+            /* [in] */ REFIID riid,
+            /* [in] */ LCID lcid,
+            /* [in] */ WORD wFlags,
+            /* [out][in] */ DISPPARAMS *pDispParams,
+            /* [out] */ VARIANT *pVarResult,
+            /* [out] */ EXCEPINFO *pExcepInfo,
+            /* [out] */ UINT *puArgErr);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( 
+            IVLCInput * This,
+            /* [retval][out] */ double *length);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_position )( 
+            IVLCInput * This,
+            /* [retval][out] */ double *position);
+        
+        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_position )( 
+            IVLCInput * This,
+            /* [in] */ double position);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_time )( 
+            IVLCInput * This,
+            /* [retval][out] */ double *time);
+        
+        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_time )( 
+            IVLCInput * This,
+            /* [in] */ double time);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_state )( 
+            IVLCInput * This,
+            /* [retval][out] */ long *state);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_rate )( 
+            IVLCInput * This,
+            /* [retval][out] */ double *rate);
+        
+        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_rate )( 
+            IVLCInput * This,
+            /* [in] */ double rate);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_fps )( 
+            IVLCInput * This,
+            /* [retval][out] */ double *fps);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasVout )( 
+            IVLCInput * This,
+            /* [retval][out] */ VARIANT_BOOL *hasVout);
+        
+        END_INTERFACE
+    } IVLCInputVtbl;
+
+    interface IVLCInput
+    {
+        CONST_VTBL struct IVLCInputVtbl *lpVtbl;
+    };
+
+    
+
+#ifdef COBJMACROS
+
+
+#define IVLCInput_QueryInterface(This,riid,ppvObject)  \
+    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define IVLCInput_AddRef(This) \
+    (This)->lpVtbl -> AddRef(This)
+
+#define IVLCInput_Release(This)        \
+    (This)->lpVtbl -> Release(This)
+
+
+#define IVLCInput_GetTypeInfoCount(This,pctinfo)       \
+    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define IVLCInput_GetTypeInfo(This,iTInfo,lcid,ppTInfo)        \
+    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define IVLCInput_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)      \
+    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define IVLCInput_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)        \
+    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define IVLCInput_get_length(This,length)      \
+    (This)->lpVtbl -> get_length(This,length)
+
+#define IVLCInput_get_position(This,position)  \
+    (This)->lpVtbl -> get_position(This,position)
+
+#define IVLCInput_put_position(This,position)  \
+    (This)->lpVtbl -> put_position(This,position)
+
+#define IVLCInput_get_time(This,time)  \
+    (This)->lpVtbl -> get_time(This,time)
+
+#define IVLCInput_put_time(This,time)  \
+    (This)->lpVtbl -> put_time(This,time)
+
+#define IVLCInput_get_state(This,state)        \
+    (This)->lpVtbl -> get_state(This,state)
+
+#define IVLCInput_get_rate(This,rate)  \
+    (This)->lpVtbl -> get_rate(This,rate)
+
+#define IVLCInput_put_rate(This,rate)  \
+    (This)->lpVtbl -> put_rate(This,rate)
+
+#define IVLCInput_get_fps(This,fps)    \
+    (This)->lpVtbl -> get_fps(This,fps)
+
+#define IVLCInput_get_hasVout(This,hasVout)    \
+    (This)->lpVtbl -> get_hasVout(This,hasVout)
+
+#endif /* COBJMACROS */
+
+
+#endif         /* C style interface */
+
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCInput_get_length_Proxy( 
+    IVLCInput * This,
+    /* [retval][out] */ double *length);
+
+
+void __RPC_STUB IVLCInput_get_length_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCInput_get_position_Proxy( 
+    IVLCInput * This,
+    /* [retval][out] */ double *position);
+
+
+void __RPC_STUB IVLCInput_get_position_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IVLCInput_put_position_Proxy( 
+    IVLCInput * This,
+    /* [in] */ double position);
+
+
+void __RPC_STUB IVLCInput_put_position_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCInput_get_time_Proxy( 
+    IVLCInput * This,
+    /* [retval][out] */ double *time);
+
+
+void __RPC_STUB IVLCInput_get_time_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IVLCInput_put_time_Proxy( 
+    IVLCInput * This,
+    /* [in] */ double time);
+
+
+void __RPC_STUB IVLCInput_put_time_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCInput_get_state_Proxy( 
+    IVLCInput * This,
+    /* [retval][out] */ long *state);
+
+
+void __RPC_STUB IVLCInput_get_state_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCInput_get_rate_Proxy( 
+    IVLCInput * This,
+    /* [retval][out] */ double *rate);
+
+
+void __RPC_STUB IVLCInput_get_rate_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IVLCInput_put_rate_Proxy( 
+    IVLCInput * This,
+    /* [in] */ double rate);
+
+
+void __RPC_STUB IVLCInput_put_rate_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCInput_get_fps_Proxy( 
+    IVLCInput * This,
+    /* [retval][out] */ double *fps);
+
+
+void __RPC_STUB IVLCInput_get_fps_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCInput_get_hasVout_Proxy( 
+    IVLCInput * This,
+    /* [retval][out] */ VARIANT_BOOL *hasVout);
+
+
+void __RPC_STUB IVLCInput_get_hasVout_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+
+#endif         /* __IVLCInput_INTERFACE_DEFINED__ */
+
+
+#ifndef __IVLCLog_INTERFACE_DEFINED__
+#define __IVLCLog_INTERFACE_DEFINED__
+
+/* interface IVLCLog */
+/* [object][oleautomation][dual][helpstring][uuid] */ 
+
+
+EXTERN_C const IID IID_IVLCLog;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+    
+    MIDL_INTERFACE("8E3BC3D9-62E9-48FB-8A6D-993F9ABC4A0A")
+    IVLCLog : public IDispatch
+    {
+    public:
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_messages( 
+            /* [retval][out] */ IVLCMessages **iter) = 0;
+        
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_verbosity( 
+            /* [retval][out] */ long *level) = 0;
+        
+        virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_verbosity( 
+            /* [in] */ long level) = 0;
+        
+    };
+    
+#else  /* C style interface */
+
+    typedef struct IVLCLogVtbl
+    {
+        BEGIN_INTERFACE
+        
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
+            IVLCLog * This,
+            /* [in] */ REFIID riid,
+            /* [iid_is][out] */ void **ppvObject);
+        
+        ULONG ( STDMETHODCALLTYPE *AddRef )( 
+            IVLCLog * This);
+        
+        ULONG ( STDMETHODCALLTYPE *Release )( 
+            IVLCLog * This);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
+            IVLCLog * This,
+            /* [out] */ UINT *pctinfo);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
+            IVLCLog * This,
+            /* [in] */ UINT iTInfo,
+            /* [in] */ LCID lcid,
+            /* [out] */ ITypeInfo **ppTInfo);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
+            IVLCLog * This,
+            /* [in] */ REFIID riid,
+            /* [size_is][in] */ LPOLESTR *rgszNames,
+            /* [in] */ UINT cNames,
+            /* [in] */ LCID lcid,
+            /* [size_is][out] */ DISPID *rgDispId);
+        
+        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
+            IVLCLog * This,
+            /* [in] */ DISPID dispIdMember,
+            /* [in] */ REFIID riid,
+            /* [in] */ LCID lcid,
+            /* [in] */ WORD wFlags,
+            /* [out][in] */ DISPPARAMS *pDispParams,
+            /* [out] */ VARIANT *pVarResult,
+            /* [out] */ EXCEPINFO *pExcepInfo,
+            /* [out] */ UINT *puArgErr);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_messages )( 
+            IVLCLog * This,
+            /* [retval][out] */ IVLCMessages **iter);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_verbosity )( 
+            IVLCLog * This,
+            /* [retval][out] */ long *level);
+        
+        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_verbosity )( 
+            IVLCLog * This,
+            /* [in] */ long level);
+        
+        END_INTERFACE
+    } IVLCLogVtbl;
+
+    interface IVLCLog
+    {
+        CONST_VTBL struct IVLCLogVtbl *lpVtbl;
+    };
+
+    
+
+#ifdef COBJMACROS
+
+
+#define IVLCLog_QueryInterface(This,riid,ppvObject)    \
+    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define IVLCLog_AddRef(This)   \
+    (This)->lpVtbl -> AddRef(This)
+
+#define IVLCLog_Release(This)  \
+    (This)->lpVtbl -> Release(This)
+
+
+#define IVLCLog_GetTypeInfoCount(This,pctinfo) \
+    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define IVLCLog_GetTypeInfo(This,iTInfo,lcid,ppTInfo)  \
+    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define IVLCLog_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)        \
+    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define IVLCLog_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)  \
+    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define IVLCLog_get_messages(This,iter)        \
+    (This)->lpVtbl -> get_messages(This,iter)
+
+#define IVLCLog_get_verbosity(This,level)      \
+    (This)->lpVtbl -> get_verbosity(This,level)
+
+#define IVLCLog_put_verbosity(This,level)      \
+    (This)->lpVtbl -> put_verbosity(This,level)
+
+#endif /* COBJMACROS */
+
+
+#endif         /* C style interface */
+
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCLog_get_messages_Proxy( 
+    IVLCLog * This,
+    /* [retval][out] */ IVLCMessages **iter);
+
+
+void __RPC_STUB IVLCLog_get_messages_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCLog_get_verbosity_Proxy( 
+    IVLCLog * This,
+    /* [retval][out] */ long *level);
+
+
+void __RPC_STUB IVLCLog_get_verbosity_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IVLCLog_put_verbosity_Proxy( 
+    IVLCLog * This,
+    /* [in] */ long level);
+
+
+void __RPC_STUB IVLCLog_put_verbosity_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+
+#endif         /* __IVLCLog_INTERFACE_DEFINED__ */
+
+
+#ifndef __IVLCMessage_INTERFACE_DEFINED__
+#define __IVLCMessage_INTERFACE_DEFINED__
+
+/* interface IVLCMessage */
+/* [object][oleautomation][dual][helpstring][uuid] */ 
+
+
+EXTERN_C const IID IID_IVLCMessage;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+    
+    MIDL_INTERFACE("9ED00AFA-7BCD-4FFF-8D48-7DD4DB2C800D")
+    IVLCMessage : public IDispatch
+    {
+    public:
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get__Value( 
+            /* [retval][out] */ VARIANT *message) = 0;
+        
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_severity( 
+            /* [retval][out] */ long *level) = 0;
+        
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_type( 
+            /* [retval][out] */ BSTR *type) = 0;
+        
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_name( 
+            /* [retval][out] */ BSTR *name) = 0;
+        
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_header( 
+            /* [retval][out] */ BSTR *header) = 0;
+        
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_message( 
+            /* [retval][out] */ BSTR *message) = 0;
+        
+    };
+    
+#else  /* C style interface */
+
+    typedef struct IVLCMessageVtbl
+    {
+        BEGIN_INTERFACE
+        
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
+            IVLCMessage * This,
+            /* [in] */ REFIID riid,
+            /* [iid_is][out] */ void **ppvObject);
+        
+        ULONG ( STDMETHODCALLTYPE *AddRef )( 
+            IVLCMessage * This);
+        
+        ULONG ( STDMETHODCALLTYPE *Release )( 
+            IVLCMessage * This);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
+            IVLCMessage * This,
+            /* [out] */ UINT *pctinfo);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
+            IVLCMessage * This,
+            /* [in] */ UINT iTInfo,
+            /* [in] */ LCID lcid,
+            /* [out] */ ITypeInfo **ppTInfo);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
+            IVLCMessage * This,
+            /* [in] */ REFIID riid,
+            /* [size_is][in] */ LPOLESTR *rgszNames,
+            /* [in] */ UINT cNames,
+            /* [in] */ LCID lcid,
+            /* [size_is][out] */ DISPID *rgDispId);
+        
+        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
+            IVLCMessage * This,
+            /* [in] */ DISPID dispIdMember,
+            /* [in] */ REFIID riid,
+            /* [in] */ LCID lcid,
+            /* [in] */ WORD wFlags,
+            /* [out][in] */ DISPPARAMS *pDispParams,
+            /* [out] */ VARIANT *pVarResult,
+            /* [out] */ EXCEPINFO *pExcepInfo,
+            /* [out] */ UINT *puArgErr);
+        
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get__Value )( 
+            IVLCMessage * This,
+            /* [retval][out] */ VARIANT *message);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_severity )( 
+            IVLCMessage * This,
+            /* [retval][out] */ long *level);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_type )( 
+            IVLCMessage * This,
+            /* [retval][out] */ BSTR *type);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( 
+            IVLCMessage * This,
+            /* [retval][out] */ BSTR *name);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_header )( 
+            IVLCMessage * This,
+            /* [retval][out] */ BSTR *header);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_message )( 
+            IVLCMessage * This,
+            /* [retval][out] */ BSTR *message);
+        
+        END_INTERFACE
+    } IVLCMessageVtbl;
+
+    interface IVLCMessage
+    {
+        CONST_VTBL struct IVLCMessageVtbl *lpVtbl;
+    };
+
+    
+
+#ifdef COBJMACROS
+
+
+#define IVLCMessage_QueryInterface(This,riid,ppvObject)        \
+    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define IVLCMessage_AddRef(This)       \
+    (This)->lpVtbl -> AddRef(This)
+
+#define IVLCMessage_Release(This)      \
+    (This)->lpVtbl -> Release(This)
+
+
+#define IVLCMessage_GetTypeInfoCount(This,pctinfo)     \
+    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define IVLCMessage_GetTypeInfo(This,iTInfo,lcid,ppTInfo)      \
+    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define IVLCMessage_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)    \
+    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define IVLCMessage_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)      \
+    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define IVLCMessage_get__Value(This,message)   \
+    (This)->lpVtbl -> get__Value(This,message)
+
+#define IVLCMessage_get_severity(This,level)   \
+    (This)->lpVtbl -> get_severity(This,level)
+
+#define IVLCMessage_get_type(This,type)        \
+    (This)->lpVtbl -> get_type(This,type)
+
+#define IVLCMessage_get_name(This,name)        \
+    (This)->lpVtbl -> get_name(This,name)
+
+#define IVLCMessage_get_header(This,header)    \
+    (This)->lpVtbl -> get_header(This,header)
+
+#define IVLCMessage_get_message(This,message)  \
+    (This)->lpVtbl -> get_message(This,message)
+
+#endif /* COBJMACROS */
+
+
+#endif         /* C style interface */
+
+
+
+/* [propget][id] */ HRESULT STDMETHODCALLTYPE IVLCMessage_get__Value_Proxy( 
+    IVLCMessage * This,
+    /* [retval][out] */ VARIANT *message);
+
+
+void __RPC_STUB IVLCMessage_get__Value_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCMessage_get_severity_Proxy( 
+    IVLCMessage * This,
+    /* [retval][out] */ long *level);
+
+
+void __RPC_STUB IVLCMessage_get_severity_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCMessage_get_type_Proxy( 
+    IVLCMessage * This,
+    /* [retval][out] */ BSTR *type);
+
+
+void __RPC_STUB IVLCMessage_get_type_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCMessage_get_name_Proxy( 
+    IVLCMessage * This,
+    /* [retval][out] */ BSTR *name);
+
+
+void __RPC_STUB IVLCMessage_get_name_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCMessage_get_header_Proxy( 
+    IVLCMessage * This,
+    /* [retval][out] */ BSTR *header);
+
+
+void __RPC_STUB IVLCMessage_get_header_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCMessage_get_message_Proxy( 
+    IVLCMessage * This,
+    /* [retval][out] */ BSTR *message);
+
+
+void __RPC_STUB IVLCMessage_get_message_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+
+#endif         /* __IVLCMessage_INTERFACE_DEFINED__ */
+
+
+#ifndef __IVLCMessageIterator_INTERFACE_DEFINED__
+#define __IVLCMessageIterator_INTERFACE_DEFINED__
+
+/* interface IVLCMessageIterator */
+/* [object][oleautomation][dual][helpstring][uuid] */ 
+
+
+EXTERN_C const IID IID_IVLCMessageIterator;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+    
+    MIDL_INTERFACE("15179CD8-CC12-4242-A58E-E412217FF343")
+    IVLCMessageIterator : public IDispatch
+    {
+    public:
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasNext( 
+            /* [retval][out] */ VARIANT_BOOL *hasNext) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE next( 
+            /* [retval][out] */ IVLCMessage **msg) = 0;
+        
+    };
+    
+#else  /* C style interface */
+
+    typedef struct IVLCMessageIteratorVtbl
+    {
+        BEGIN_INTERFACE
+        
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
+            IVLCMessageIterator * This,
+            /* [in] */ REFIID riid,
+            /* [iid_is][out] */ void **ppvObject);
+        
+        ULONG ( STDMETHODCALLTYPE *AddRef )( 
+            IVLCMessageIterator * This);
+        
+        ULONG ( STDMETHODCALLTYPE *Release )( 
+            IVLCMessageIterator * This);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
+            IVLCMessageIterator * This,
+            /* [out] */ UINT *pctinfo);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
+            IVLCMessageIterator * This,
+            /* [in] */ UINT iTInfo,
+            /* [in] */ LCID lcid,
+            /* [out] */ ITypeInfo **ppTInfo);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
+            IVLCMessageIterator * This,
+            /* [in] */ REFIID riid,
+            /* [size_is][in] */ LPOLESTR *rgszNames,
+            /* [in] */ UINT cNames,
+            /* [in] */ LCID lcid,
+            /* [size_is][out] */ DISPID *rgDispId);
+        
+        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
+            IVLCMessageIterator * This,
+            /* [in] */ DISPID dispIdMember,
+            /* [in] */ REFIID riid,
+            /* [in] */ LCID lcid,
+            /* [in] */ WORD wFlags,
+            /* [out][in] */ DISPPARAMS *pDispParams,
+            /* [out] */ VARIANT *pVarResult,
+            /* [out] */ EXCEPINFO *pExcepInfo,
+            /* [out] */ UINT *puArgErr);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasNext )( 
+            IVLCMessageIterator * This,
+            /* [retval][out] */ VARIANT_BOOL *hasNext);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *next )( 
+            IVLCMessageIterator * This,
+            /* [retval][out] */ IVLCMessage **msg);
+        
+        END_INTERFACE
+    } IVLCMessageIteratorVtbl;
+
+    interface IVLCMessageIterator
+    {
+        CONST_VTBL struct IVLCMessageIteratorVtbl *lpVtbl;
+    };
+
+    
+
+#ifdef COBJMACROS
+
+
+#define IVLCMessageIterator_QueryInterface(This,riid,ppvObject)        \
+    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define IVLCMessageIterator_AddRef(This)       \
+    (This)->lpVtbl -> AddRef(This)
+
+#define IVLCMessageIterator_Release(This)      \
+    (This)->lpVtbl -> Release(This)
+
+
+#define IVLCMessageIterator_GetTypeInfoCount(This,pctinfo)     \
+    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define IVLCMessageIterator_GetTypeInfo(This,iTInfo,lcid,ppTInfo)      \
+    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define IVLCMessageIterator_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)    \
+    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define IVLCMessageIterator_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)      \
+    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define IVLCMessageIterator_get_hasNext(This,hasNext)  \
+    (This)->lpVtbl -> get_hasNext(This,hasNext)
+
+#define IVLCMessageIterator_next(This,msg)     \
+    (This)->lpVtbl -> next(This,msg)
+
+#endif /* COBJMACROS */
+
+
+#endif         /* C style interface */
+
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCMessageIterator_get_hasNext_Proxy( 
+    IVLCMessageIterator * This,
+    /* [retval][out] */ VARIANT_BOOL *hasNext);
+
+
+void __RPC_STUB IVLCMessageIterator_get_hasNext_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCMessageIterator_next_Proxy( 
+    IVLCMessageIterator * This,
+    /* [retval][out] */ IVLCMessage **msg);
+
+
+void __RPC_STUB IVLCMessageIterator_next_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+
+#endif         /* __IVLCMessageIterator_INTERFACE_DEFINED__ */
+
+
+#ifndef __IVLCMessages_INTERFACE_DEFINED__
+#define __IVLCMessages_INTERFACE_DEFINED__
+
+/* interface IVLCMessages */
+/* [object][oleautomation][dual][helpstring][uuid] */ 
+
+
+EXTERN_C const IID IID_IVLCMessages;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+    
+    MIDL_INTERFACE("6C5CE55D-2D6C-4AAD-8299-C62D2371F106")
+    IVLCMessages : public IDispatch
+    {
+    public:
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
+            /* [retval][out] */ IUnknown **_NewEnum) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE clear( void) = 0;
+        
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_count( 
+            /* [retval][out] */ long *count) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE iterator( 
+            /* [retval][out] */ IVLCMessageIterator **iter) = 0;
+        
+    };
+    
+#else  /* C style interface */
+
+    typedef struct IVLCMessagesVtbl
+    {
+        BEGIN_INTERFACE
+        
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
+            IVLCMessages * This,
+            /* [in] */ REFIID riid,
+            /* [iid_is][out] */ void **ppvObject);
+        
+        ULONG ( STDMETHODCALLTYPE *AddRef )( 
+            IVLCMessages * This);
+        
+        ULONG ( STDMETHODCALLTYPE *Release )( 
+            IVLCMessages * This);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
+            IVLCMessages * This,
+            /* [out] */ UINT *pctinfo);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
+            IVLCMessages * This,
+            /* [in] */ UINT iTInfo,
+            /* [in] */ LCID lcid,
+            /* [out] */ ITypeInfo **ppTInfo);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
+            IVLCMessages * This,
+            /* [in] */ REFIID riid,
+            /* [size_is][in] */ LPOLESTR *rgszNames,
+            /* [in] */ UINT cNames,
+            /* [in] */ LCID lcid,
+            /* [size_is][out] */ DISPID *rgDispId);
+        
+        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
+            IVLCMessages * This,
+            /* [in] */ DISPID dispIdMember,
+            /* [in] */ REFIID riid,
+            /* [in] */ LCID lcid,
+            /* [in] */ WORD wFlags,
+            /* [out][in] */ DISPPARAMS *pDispParams,
+            /* [out] */ VARIANT *pVarResult,
+            /* [out] */ EXCEPINFO *pExcepInfo,
+            /* [out] */ UINT *puArgErr);
+        
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
+            IVLCMessages * This,
+            /* [retval][out] */ IUnknown **_NewEnum);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *clear )( 
+            IVLCMessages * This);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_count )( 
+            IVLCMessages * This,
+            /* [retval][out] */ long *count);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *iterator )( 
+            IVLCMessages * This,
+            /* [retval][out] */ IVLCMessageIterator **iter);
+        
+        END_INTERFACE
+    } IVLCMessagesVtbl;
+
+    interface IVLCMessages
+    {
+        CONST_VTBL struct IVLCMessagesVtbl *lpVtbl;
+    };
+
+    
+
+#ifdef COBJMACROS
+
+
+#define IVLCMessages_QueryInterface(This,riid,ppvObject)       \
+    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define IVLCMessages_AddRef(This)      \
+    (This)->lpVtbl -> AddRef(This)
+
+#define IVLCMessages_Release(This)     \
+    (This)->lpVtbl -> Release(This)
+
+
+#define IVLCMessages_GetTypeInfoCount(This,pctinfo)    \
+    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define IVLCMessages_GetTypeInfo(This,iTInfo,lcid,ppTInfo)     \
+    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define IVLCMessages_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)   \
+    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define IVLCMessages_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)     \
+    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define IVLCMessages_get__NewEnum(This,_NewEnum)       \
+    (This)->lpVtbl -> get__NewEnum(This,_NewEnum)
+
+#define IVLCMessages_clear(This)       \
+    (This)->lpVtbl -> clear(This)
+
+#define IVLCMessages_get_count(This,count)     \
+    (This)->lpVtbl -> get_count(This,count)
+
+#define IVLCMessages_iterator(This,iter)       \
+    (This)->lpVtbl -> iterator(This,iter)
+
+#endif /* COBJMACROS */
+
+
+#endif         /* C style interface */
+
+
+
+/* [propget][id] */ HRESULT STDMETHODCALLTYPE IVLCMessages_get__NewEnum_Proxy( 
+    IVLCMessages * This,
+    /* [retval][out] */ IUnknown **_NewEnum);
+
+
+void __RPC_STUB IVLCMessages_get__NewEnum_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCMessages_clear_Proxy( 
+    IVLCMessages * This);
+
+
+void __RPC_STUB IVLCMessages_clear_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCMessages_get_count_Proxy( 
+    IVLCMessages * This,
+    /* [retval][out] */ long *count);
+
+
+void __RPC_STUB IVLCMessages_get_count_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCMessages_iterator_Proxy( 
+    IVLCMessages * This,
+    /* [retval][out] */ IVLCMessageIterator **iter);
+
+
+void __RPC_STUB IVLCMessages_iterator_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+
+#endif         /* __IVLCMessages_INTERFACE_DEFINED__ */
+
+
+#ifndef __IVLCPlaylist_INTERFACE_DEFINED__
+#define __IVLCPlaylist_INTERFACE_DEFINED__
+
+/* interface IVLCPlaylist */
+/* [object][oleautomation][dual][helpstring][uuid] */ 
+
+
+EXTERN_C const IID IID_IVLCPlaylist;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+    
+    MIDL_INTERFACE("54613049-40BF-4035-9E70-0A9312C0188D")
+    IVLCPlaylist : public IDispatch
+    {
+    public:
+        virtual /* [helpstring][propget][hidden] */ HRESULT STDMETHODCALLTYPE get_itemCount( 
+            /* [retval][out] */ long *count) = 0;
+        
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isPlaying( 
+            /* [retval][out] */ VARIANT_BOOL *playing) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE add( 
+            /* [in] */ BSTR uri,
+            /* [optional][in] */ VARIANT name,
+            /* [optional][in] */ VARIANT options,
+            /* [retval][out] */ long *itemId) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE play( void) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE playItem( 
+            /* [in] */ long itemId) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE togglePause( void) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE stop( void) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE next( void) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE prev( void) = 0;
+        
+        virtual /* [helpstring][hidden] */ HRESULT STDMETHODCALLTYPE clear( void) = 0;
+        
+        virtual /* [helpstring][hidden] */ HRESULT STDMETHODCALLTYPE removeItem( 
+            /* [in] */ long item) = 0;
+        
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_items( 
+            /* [retval][out] */ IVLCPlaylistItems **obj) = 0;
+        
+    };
+    
+#else  /* C style interface */
+
+    typedef struct IVLCPlaylistVtbl
+    {
+        BEGIN_INTERFACE
+        
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
+            IVLCPlaylist * This,
+            /* [in] */ REFIID riid,
+            /* [iid_is][out] */ void **ppvObject);
+        
+        ULONG ( STDMETHODCALLTYPE *AddRef )( 
+            IVLCPlaylist * This);
+        
+        ULONG ( STDMETHODCALLTYPE *Release )( 
+            IVLCPlaylist * This);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
+            IVLCPlaylist * This,
+            /* [out] */ UINT *pctinfo);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
+            IVLCPlaylist * This,
+            /* [in] */ UINT iTInfo,
+            /* [in] */ LCID lcid,
+            /* [out] */ ITypeInfo **ppTInfo);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
+            IVLCPlaylist * This,
+            /* [in] */ REFIID riid,
+            /* [size_is][in] */ LPOLESTR *rgszNames,
+            /* [in] */ UINT cNames,
+            /* [in] */ LCID lcid,
+            /* [size_is][out] */ DISPID *rgDispId);
+        
+        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
+            IVLCPlaylist * This,
+            /* [in] */ DISPID dispIdMember,
+            /* [in] */ REFIID riid,
+            /* [in] */ LCID lcid,
+            /* [in] */ WORD wFlags,
+            /* [out][in] */ DISPPARAMS *pDispParams,
+            /* [out] */ VARIANT *pVarResult,
+            /* [out] */ EXCEPINFO *pExcepInfo,
+            /* [out] */ UINT *puArgErr);
+        
+        /* [helpstring][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_itemCount )( 
+            IVLCPlaylist * This,
+            /* [retval][out] */ long *count);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPlaying )( 
+            IVLCPlaylist * This,
+            /* [retval][out] */ VARIANT_BOOL *playing);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *add )( 
+            IVLCPlaylist * This,
+            /* [in] */ BSTR uri,
+            /* [optional][in] */ VARIANT name,
+            /* [optional][in] */ VARIANT options,
+            /* [retval][out] */ long *itemId);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *play )( 
+            IVLCPlaylist * This);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *playItem )( 
+            IVLCPlaylist * This,
+            /* [in] */ long itemId);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *togglePause )( 
+            IVLCPlaylist * This);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *stop )( 
+            IVLCPlaylist * This);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *next )( 
+            IVLCPlaylist * This);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *prev )( 
+            IVLCPlaylist * This);
+        
+        /* [helpstring][hidden] */ HRESULT ( STDMETHODCALLTYPE *clear )( 
+            IVLCPlaylist * This);
+        
+        /* [helpstring][hidden] */ HRESULT ( STDMETHODCALLTYPE *removeItem )( 
+            IVLCPlaylist * This,
+            /* [in] */ long item);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_items )( 
+            IVLCPlaylist * This,
+            /* [retval][out] */ IVLCPlaylistItems **obj);
+        
+        END_INTERFACE
+    } IVLCPlaylistVtbl;
+
+    interface IVLCPlaylist
+    {
+        CONST_VTBL struct IVLCPlaylistVtbl *lpVtbl;
+    };
+
+    
+
+#ifdef COBJMACROS
+
+
+#define IVLCPlaylist_QueryInterface(This,riid,ppvObject)       \
+    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define IVLCPlaylist_AddRef(This)      \
+    (This)->lpVtbl -> AddRef(This)
+
+#define IVLCPlaylist_Release(This)     \
+    (This)->lpVtbl -> Release(This)
+
+
+#define IVLCPlaylist_GetTypeInfoCount(This,pctinfo)    \
+    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define IVLCPlaylist_GetTypeInfo(This,iTInfo,lcid,ppTInfo)     \
+    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define IVLCPlaylist_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)   \
+    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define IVLCPlaylist_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)     \
+    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define IVLCPlaylist_get_itemCount(This,count) \
+    (This)->lpVtbl -> get_itemCount(This,count)
+
+#define IVLCPlaylist_get_isPlaying(This,playing)       \
+    (This)->lpVtbl -> get_isPlaying(This,playing)
+
+#define IVLCPlaylist_add(This,uri,name,options,itemId) \
+    (This)->lpVtbl -> add(This,uri,name,options,itemId)
+
+#define IVLCPlaylist_play(This)        \
+    (This)->lpVtbl -> play(This)
+
+#define IVLCPlaylist_playItem(This,itemId)     \
+    (This)->lpVtbl -> playItem(This,itemId)
+
+#define IVLCPlaylist_togglePause(This) \
+    (This)->lpVtbl -> togglePause(This)
+
+#define IVLCPlaylist_stop(This)        \
+    (This)->lpVtbl -> stop(This)
+
+#define IVLCPlaylist_next(This)        \
+    (This)->lpVtbl -> next(This)
+
+#define IVLCPlaylist_prev(This)        \
+    (This)->lpVtbl -> prev(This)
+
+#define IVLCPlaylist_clear(This)       \
+    (This)->lpVtbl -> clear(This)
+
+#define IVLCPlaylist_removeItem(This,item)     \
+    (This)->lpVtbl -> removeItem(This,item)
+
+#define IVLCPlaylist_get_items(This,obj)       \
+    (This)->lpVtbl -> get_items(This,obj)
+
+#endif /* COBJMACROS */
+
+
+#endif         /* C style interface */
+
+
+
+/* [helpstring][propget][hidden] */ HRESULT STDMETHODCALLTYPE IVLCPlaylist_get_itemCount_Proxy( 
+    IVLCPlaylist * This,
+    /* [retval][out] */ long *count);
+
+
+void __RPC_STUB IVLCPlaylist_get_itemCount_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCPlaylist_get_isPlaying_Proxy( 
+    IVLCPlaylist * This,
+    /* [retval][out] */ VARIANT_BOOL *playing);
+
+
+void __RPC_STUB IVLCPlaylist_get_isPlaying_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCPlaylist_add_Proxy( 
+    IVLCPlaylist * This,
+    /* [in] */ BSTR uri,
+    /* [optional][in] */ VARIANT name,
+    /* [optional][in] */ VARIANT options,
+    /* [retval][out] */ long *itemId);
+
+
+void __RPC_STUB IVLCPlaylist_add_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCPlaylist_play_Proxy( 
+    IVLCPlaylist * This);
+
+
+void __RPC_STUB IVLCPlaylist_play_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCPlaylist_playItem_Proxy( 
+    IVLCPlaylist * This,
+    /* [in] */ long itemId);
+
+
+void __RPC_STUB IVLCPlaylist_playItem_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCPlaylist_togglePause_Proxy( 
+    IVLCPlaylist * This);
+
+
+void __RPC_STUB IVLCPlaylist_togglePause_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCPlaylist_stop_Proxy( 
+    IVLCPlaylist * This);
+
+
+void __RPC_STUB IVLCPlaylist_stop_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCPlaylist_next_Proxy( 
+    IVLCPlaylist * This);
+
+
+void __RPC_STUB IVLCPlaylist_next_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCPlaylist_prev_Proxy( 
+    IVLCPlaylist * This);
+
+
+void __RPC_STUB IVLCPlaylist_prev_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][hidden] */ HRESULT STDMETHODCALLTYPE IVLCPlaylist_clear_Proxy( 
+    IVLCPlaylist * This);
+
+
+void __RPC_STUB IVLCPlaylist_clear_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][hidden] */ HRESULT STDMETHODCALLTYPE IVLCPlaylist_removeItem_Proxy( 
+    IVLCPlaylist * This,
+    /* [in] */ long item);
+
+
+void __RPC_STUB IVLCPlaylist_removeItem_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCPlaylist_get_items_Proxy( 
+    IVLCPlaylist * This,
+    /* [retval][out] */ IVLCPlaylistItems **obj);
+
+
+void __RPC_STUB IVLCPlaylist_get_items_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+
+#endif         /* __IVLCPlaylist_INTERFACE_DEFINED__ */
+
+
+#ifndef __IVLCVideo_INTERFACE_DEFINED__
+#define __IVLCVideo_INTERFACE_DEFINED__
+
+/* interface IVLCVideo */
+/* [object][oleautomation][dual][helpstring][uuid] */ 
+
+
+EXTERN_C const IID IID_IVLCVideo;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+    
+    MIDL_INTERFACE("0AAEDF0B-D333-4B27-A0C6-BBF31413A42E")
+    IVLCVideo : public IDispatch
+    {
+    public:
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_fullscreen( 
+            /* [retval][out] */ VARIANT_BOOL *fullscreen) = 0;
+        
+        virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_fullscreen( 
+            /* [in] */ VARIANT_BOOL fullscreen) = 0;
+        
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_width( 
+            /* [retval][out] */ long *width) = 0;
+        
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_height( 
+            /* [retval][out] */ long *height) = 0;
+        
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_aspectRatio( 
+            /* [retval][out] */ BSTR *aspect) = 0;
+        
+        virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_aspectRatio( 
+            /* [in] */ BSTR aspect) = 0;
+        
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_subtitle( 
+            /* [retval][out] */ long *spu) = 0;
+        
+        virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_subtitle( 
+            /* [in] */ long spu) = 0;
+        
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_crop( 
+            /* [retval][out] */ BSTR *geometry) = 0;
+        
+        virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_crop( 
+            /* [in] */ BSTR geometry) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE toggleFullscreen( void) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE takeSnapshot( 
+            /* [retval][out] */ IPictureDisp **picture) = 0;
+        
+    };
+    
+#else  /* C style interface */
+
+    typedef struct IVLCVideoVtbl
+    {
+        BEGIN_INTERFACE
+        
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
+            IVLCVideo * This,
+            /* [in] */ REFIID riid,
+            /* [iid_is][out] */ void **ppvObject);
+        
+        ULONG ( STDMETHODCALLTYPE *AddRef )( 
+            IVLCVideo * This);
+        
+        ULONG ( STDMETHODCALLTYPE *Release )( 
+            IVLCVideo * This);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
+            IVLCVideo * This,
+            /* [out] */ UINT *pctinfo);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
+            IVLCVideo * This,
+            /* [in] */ UINT iTInfo,
+            /* [in] */ LCID lcid,
+            /* [out] */ ITypeInfo **ppTInfo);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
+            IVLCVideo * This,
+            /* [in] */ REFIID riid,
+            /* [size_is][in] */ LPOLESTR *rgszNames,
+            /* [in] */ UINT cNames,
+            /* [in] */ LCID lcid,
+            /* [size_is][out] */ DISPID *rgDispId);
+        
+        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
+            IVLCVideo * This,
+            /* [in] */ DISPID dispIdMember,
+            /* [in] */ REFIID riid,
+            /* [in] */ LCID lcid,
+            /* [in] */ WORD wFlags,
+            /* [out][in] */ DISPPARAMS *pDispParams,
+            /* [out] */ VARIANT *pVarResult,
+            /* [out] */ EXCEPINFO *pExcepInfo,
+            /* [out] */ UINT *puArgErr);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_fullscreen )( 
+            IVLCVideo * This,
+            /* [retval][out] */ VARIANT_BOOL *fullscreen);
+        
+        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_fullscreen )( 
+            IVLCVideo * This,
+            /* [in] */ VARIANT_BOOL fullscreen);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_width )( 
+            IVLCVideo * This,
+            /* [retval][out] */ long *width);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_height )( 
+            IVLCVideo * This,
+            /* [retval][out] */ long *height);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_aspectRatio )( 
+            IVLCVideo * This,
+            /* [retval][out] */ BSTR *aspect);
+        
+        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_aspectRatio )( 
+            IVLCVideo * This,
+            /* [in] */ BSTR aspect);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_subtitle )( 
+            IVLCVideo * This,
+            /* [retval][out] */ long *spu);
+        
+        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_subtitle )( 
+            IVLCVideo * This,
+            /* [in] */ long spu);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_crop )( 
+            IVLCVideo * This,
+            /* [retval][out] */ BSTR *geometry);
+        
+        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_crop )( 
+            IVLCVideo * This,
+            /* [in] */ BSTR geometry);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *toggleFullscreen )( 
+            IVLCVideo * This);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *takeSnapshot )( 
+            IVLCVideo * This,
+            /* [retval][out] */ IPictureDisp **picture);
+        
+        END_INTERFACE
+    } IVLCVideoVtbl;
+
+    interface IVLCVideo
+    {
+        CONST_VTBL struct IVLCVideoVtbl *lpVtbl;
+    };
+
+    
+
+#ifdef COBJMACROS
+
+
+#define IVLCVideo_QueryInterface(This,riid,ppvObject)  \
+    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define IVLCVideo_AddRef(This) \
+    (This)->lpVtbl -> AddRef(This)
+
+#define IVLCVideo_Release(This)        \
+    (This)->lpVtbl -> Release(This)
+
+
+#define IVLCVideo_GetTypeInfoCount(This,pctinfo)       \
+    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define IVLCVideo_GetTypeInfo(This,iTInfo,lcid,ppTInfo)        \
+    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define IVLCVideo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)      \
+    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define IVLCVideo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)        \
+    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define IVLCVideo_get_fullscreen(This,fullscreen)      \
+    (This)->lpVtbl -> get_fullscreen(This,fullscreen)
+
+#define IVLCVideo_put_fullscreen(This,fullscreen)      \
+    (This)->lpVtbl -> put_fullscreen(This,fullscreen)
+
+#define IVLCVideo_get_width(This,width)        \
+    (This)->lpVtbl -> get_width(This,width)
+
+#define IVLCVideo_get_height(This,height)      \
+    (This)->lpVtbl -> get_height(This,height)
+
+#define IVLCVideo_get_aspectRatio(This,aspect) \
+    (This)->lpVtbl -> get_aspectRatio(This,aspect)
+
+#define IVLCVideo_put_aspectRatio(This,aspect) \
+    (This)->lpVtbl -> put_aspectRatio(This,aspect)
+
+#define IVLCVideo_get_subtitle(This,spu)       \
+    (This)->lpVtbl -> get_subtitle(This,spu)
+
+#define IVLCVideo_put_subtitle(This,spu)       \
+    (This)->lpVtbl -> put_subtitle(This,spu)
+
+#define IVLCVideo_get_crop(This,geometry)      \
+    (This)->lpVtbl -> get_crop(This,geometry)
+
+#define IVLCVideo_put_crop(This,geometry)      \
+    (This)->lpVtbl -> put_crop(This,geometry)
+
+#define IVLCVideo_toggleFullscreen(This)       \
+    (This)->lpVtbl -> toggleFullscreen(This)
+
+#define IVLCVideo_takeSnapshot(This,picture)   \
+    (This)->lpVtbl -> takeSnapshot(This,picture)
+
+#endif /* COBJMACROS */
+
+
+#endif         /* C style interface */
+
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCVideo_get_fullscreen_Proxy( 
+    IVLCVideo * This,
+    /* [retval][out] */ VARIANT_BOOL *fullscreen);
+
+
+void __RPC_STUB IVLCVideo_get_fullscreen_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IVLCVideo_put_fullscreen_Proxy( 
+    IVLCVideo * This,
+    /* [in] */ VARIANT_BOOL fullscreen);
+
+
+void __RPC_STUB IVLCVideo_put_fullscreen_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCVideo_get_width_Proxy( 
+    IVLCVideo * This,
+    /* [retval][out] */ long *width);
+
+
+void __RPC_STUB IVLCVideo_get_width_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCVideo_get_height_Proxy( 
+    IVLCVideo * This,
+    /* [retval][out] */ long *height);
+
+
+void __RPC_STUB IVLCVideo_get_height_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCVideo_get_aspectRatio_Proxy( 
+    IVLCVideo * This,
+    /* [retval][out] */ BSTR *aspect);
+
+
+void __RPC_STUB IVLCVideo_get_aspectRatio_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IVLCVideo_put_aspectRatio_Proxy( 
+    IVLCVideo * This,
+    /* [in] */ BSTR aspect);
+
+
+void __RPC_STUB IVLCVideo_put_aspectRatio_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCVideo_get_subtitle_Proxy( 
+    IVLCVideo * This,
+    /* [retval][out] */ long *spu);
+
+
+void __RPC_STUB IVLCVideo_get_subtitle_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IVLCVideo_put_subtitle_Proxy( 
+    IVLCVideo * This,
+    /* [in] */ long spu);
+
+
+void __RPC_STUB IVLCVideo_put_subtitle_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCVideo_get_crop_Proxy( 
+    IVLCVideo * This,
+    /* [retval][out] */ BSTR *geometry);
+
+
+void __RPC_STUB IVLCVideo_get_crop_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IVLCVideo_put_crop_Proxy( 
+    IVLCVideo * This,
+    /* [in] */ BSTR geometry);
+
+
+void __RPC_STUB IVLCVideo_put_crop_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCVideo_toggleFullscreen_Proxy( 
+    IVLCVideo * This);
+
+
+void __RPC_STUB IVLCVideo_toggleFullscreen_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCVideo_takeSnapshot_Proxy( 
+    IVLCVideo * This,
+    /* [retval][out] */ IPictureDisp **picture);
+
+
+void __RPC_STUB IVLCVideo_takeSnapshot_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+
+#endif         /* __IVLCVideo_INTERFACE_DEFINED__ */
 
-#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);
+/* interface IVLCControl2 */
+/* [object][oleautomation][dual][helpstring][uuid] */ 
+
+
+EXTERN_C const IID IID_IVLCControl2;
+
 #if defined(__cplusplus) && !defined(CINTERFACE)
-interface IVLCControl2 : public IDispatch
-{
-    virtual HRESULT STDMETHODCALLTYPE get_AutoLoop(
-        VARIANT_BOOL* autoloop) = 0;
+    
+    MIDL_INTERFACE("2D719729-5333-406C-BF12-8DE787FD65E3")
+    IVLCControl2 : public IDispatch
+    {
+    public:
+        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AutoLoop( 
+            /* [retval][out] */ VARIANT_BOOL *autoloop) = 0;
+        
+        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AutoLoop( 
+            /* [in] */ VARIANT_BOOL autoloop) = 0;
+        
+        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AutoPlay( 
+            /* [retval][out] */ VARIANT_BOOL *autoplay) = 0;
+        
+        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AutoPlay( 
+            /* [in] */ VARIANT_BOOL autoplay) = 0;
+        
+        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_BaseURL( 
+            /* [retval][out] */ BSTR *url) = 0;
+        
+        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_BaseURL( 
+            /* [in] */ BSTR url) = 0;
+        
+        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_StartTime( 
+            /* [retval][out] */ long *seconds) = 0;
+        
+        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_StartTime( 
+            /* [in] */ long seconds) = 0;
+        
+        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_MRL( 
+            /* [retval][out] */ BSTR *mrl) = 0;
+        
+        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_MRL( 
+            /* [in] */ BSTR mrl) = 0;
+        
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_VersionInfo( 
+            /* [retval][out] */ BSTR *version) = 0;
+        
+        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Visible( 
+            /* [retval][out] */ VARIANT_BOOL *visible) = 0;
+        
+        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Visible( 
+            /* [in] */ VARIANT_BOOL visible) = 0;
+        
+        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Volume( 
+            /* [retval][out] */ long *volume) = 0;
+        
+        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Volume( 
+            /* [in] */ long volume) = 0;
+        
+        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_BackColor( 
+            /* [retval][out] */ OLE_COLOR *backcolor) = 0;
+        
+        virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_BackColor( 
+            /* [in] */ OLE_COLOR backcolor) = 0;
+        
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_audio( 
+            /* [retval][out] */ IVLCAudio **obj) = 0;
+        
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_input( 
+            /* [retval][out] */ IVLCInput **obj) = 0;
+        
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_log( 
+            /* [retval][out] */ IVLCLog **obj) = 0;
+        
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_playlist( 
+            /* [retval][out] */ IVLCPlaylist **obj) = 0;
+        
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_video( 
+            /* [retval][out] */ IVLCVideo **obj) = 0;
+        
+    };
+    
+#else  /* C style interface */
+
+    typedef struct IVLCControl2Vtbl
+    {
+        BEGIN_INTERFACE
+        
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
+            IVLCControl2 * This,
+            /* [in] */ REFIID riid,
+            /* [iid_is][out] */ void **ppvObject);
+        
+        ULONG ( STDMETHODCALLTYPE *AddRef )( 
+            IVLCControl2 * This);
+        
+        ULONG ( STDMETHODCALLTYPE *Release )( 
+            IVLCControl2 * This);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
+            IVLCControl2 * This,
+            /* [out] */ UINT *pctinfo);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
+            IVLCControl2 * This,
+            /* [in] */ UINT iTInfo,
+            /* [in] */ LCID lcid,
+            /* [out] */ ITypeInfo **ppTInfo);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
+            IVLCControl2 * This,
+            /* [in] */ REFIID riid,
+            /* [size_is][in] */ LPOLESTR *rgszNames,
+            /* [in] */ UINT cNames,
+            /* [in] */ LCID lcid,
+            /* [size_is][out] */ DISPID *rgDispId);
+        
+        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
+            IVLCControl2 * This,
+            /* [in] */ DISPID dispIdMember,
+            /* [in] */ REFIID riid,
+            /* [in] */ LCID lcid,
+            /* [in] */ WORD wFlags,
+            /* [out][in] */ DISPPARAMS *pDispParams,
+            /* [out] */ VARIANT *pVarResult,
+            /* [out] */ EXCEPINFO *pExcepInfo,
+            /* [out] */ UINT *puArgErr);
+        
+        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AutoLoop )( 
+            IVLCControl2 * This,
+            /* [retval][out] */ VARIANT_BOOL *autoloop);
+        
+        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AutoLoop )( 
+            IVLCControl2 * This,
+            /* [in] */ VARIANT_BOOL autoloop);
+        
+        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AutoPlay )( 
+            IVLCControl2 * This,
+            /* [retval][out] */ VARIANT_BOOL *autoplay);
+        
+        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AutoPlay )( 
+            IVLCControl2 * This,
+            /* [in] */ VARIANT_BOOL autoplay);
+        
+        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BaseURL )( 
+            IVLCControl2 * This,
+            /* [retval][out] */ BSTR *url);
+        
+        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BaseURL )( 
+            IVLCControl2 * This,
+            /* [in] */ BSTR url);
+        
+        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartTime )( 
+            IVLCControl2 * This,
+            /* [retval][out] */ long *seconds);
+        
+        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartTime )( 
+            IVLCControl2 * This,
+            /* [in] */ long seconds);
+        
+        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MRL )( 
+            IVLCControl2 * This,
+            /* [retval][out] */ BSTR *mrl);
+        
+        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MRL )( 
+            IVLCControl2 * This,
+            /* [in] */ BSTR mrl);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_VersionInfo )( 
+            IVLCControl2 * This,
+            /* [retval][out] */ BSTR *version);
+        
+        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
+            IVLCControl2 * This,
+            /* [retval][out] */ VARIANT_BOOL *visible);
+        
+        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
+            IVLCControl2 * This,
+            /* [in] */ VARIANT_BOOL visible);
+        
+        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Volume )( 
+            IVLCControl2 * This,
+            /* [retval][out] */ long *volume);
+        
+        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Volume )( 
+            IVLCControl2 * This,
+            /* [in] */ long volume);
+        
+        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BackColor )( 
+            IVLCControl2 * This,
+            /* [retval][out] */ OLE_COLOR *backcolor);
+        
+        /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BackColor )( 
+            IVLCControl2 * This,
+            /* [in] */ OLE_COLOR backcolor);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_audio )( 
+            IVLCControl2 * This,
+            /* [retval][out] */ IVLCAudio **obj);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_input )( 
+            IVLCControl2 * This,
+            /* [retval][out] */ IVLCInput **obj);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_log )( 
+            IVLCControl2 * This,
+            /* [retval][out] */ IVLCLog **obj);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_playlist )( 
+            IVLCControl2 * This,
+            /* [retval][out] */ IVLCPlaylist **obj);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_video )( 
+            IVLCControl2 * This,
+            /* [retval][out] */ IVLCVideo **obj);
+        
+        END_INTERFACE
+    } IVLCControl2Vtbl;
+
+    interface IVLCControl2
+    {
+        CONST_VTBL struct IVLCControl2Vtbl *lpVtbl;
+    };
+
+    
 
-    virtual HRESULT STDMETHODCALLTYPE put_AutoLoop(
-        VARIANT_BOOL autoloop) = 0;
+#ifdef COBJMACROS
 
-    virtual HRESULT STDMETHODCALLTYPE get_AutoPlay(
-        VARIANT_BOOL* autoplay) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE put_AutoPlay(
-        VARIANT_BOOL autoplay) = 0;
+#define IVLCControl2_QueryInterface(This,riid,ppvObject)       \
+    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
 
-    virtual HRESULT STDMETHODCALLTYPE get_BaseURL(
-        BSTR* url) = 0;
+#define IVLCControl2_AddRef(This)      \
+    (This)->lpVtbl -> AddRef(This)
 
-    virtual HRESULT STDMETHODCALLTYPE put_BaseURL(
-        BSTR url) = 0;
+#define IVLCControl2_Release(This)     \
+    (This)->lpVtbl -> Release(This)
 
-    virtual HRESULT STDMETHODCALLTYPE get_StartTime(
-        long* seconds) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE put_StartTime(
-        long seconds) = 0;
+#define IVLCControl2_GetTypeInfoCount(This,pctinfo)    \
+    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
 
-    virtual HRESULT STDMETHODCALLTYPE get_MRL(
-        BSTR* mrl) = 0;
+#define IVLCControl2_GetTypeInfo(This,iTInfo,lcid,ppTInfo)     \
+    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 
-    virtual HRESULT STDMETHODCALLTYPE put_MRL(
-        BSTR mrl) = 0;
+#define IVLCControl2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)   \
+    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 
-    virtual HRESULT STDMETHODCALLTYPE get_VersionInfo(
-        BSTR* version) = 0;
+#define IVLCControl2_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_Visible(
-        VARIANT_BOOL* visible) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE put_Visible(
-        VARIANT_BOOL visible) = 0;
+#define IVLCControl2_get_AutoLoop(This,autoloop)       \
+    (This)->lpVtbl -> get_AutoLoop(This,autoloop)
 
-    virtual HRESULT STDMETHODCALLTYPE get_Volume(
-        long* volume) = 0;
+#define IVLCControl2_put_AutoLoop(This,autoloop)       \
+    (This)->lpVtbl -> put_AutoLoop(This,autoloop)
 
-    virtual HRESULT STDMETHODCALLTYPE put_Volume(
-        long volume) = 0;
+#define IVLCControl2_get_AutoPlay(This,autoplay)       \
+    (This)->lpVtbl -> get_AutoPlay(This,autoplay)
 
-    virtual HRESULT STDMETHODCALLTYPE get_audio(
-        IVLCAudio** obj) = 0;
+#define IVLCControl2_put_AutoPlay(This,autoplay)       \
+    (This)->lpVtbl -> put_AutoPlay(This,autoplay)
 
-    virtual HRESULT STDMETHODCALLTYPE get_input(
-        IVLCInput** obj) = 0;
+#define IVLCControl2_get_BaseURL(This,url)     \
+    (This)->lpVtbl -> get_BaseURL(This,url)
 
-    virtual HRESULT STDMETHODCALLTYPE get_log(
-        IVLCLog** obj) = 0;
+#define IVLCControl2_put_BaseURL(This,url)     \
+    (This)->lpVtbl -> put_BaseURL(This,url)
 
-    virtual HRESULT STDMETHODCALLTYPE get_playlist(
-        IVLCPlaylist** obj) = 0;
+#define IVLCControl2_get_StartTime(This,seconds)       \
+    (This)->lpVtbl -> get_StartTime(This,seconds)
 
-    virtual HRESULT STDMETHODCALLTYPE get_video(
-        IVLCVideo** obj) = 0;
+#define IVLCControl2_put_StartTime(This,seconds)       \
+    (This)->lpVtbl -> put_StartTime(This,seconds)
 
-};
-#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,
-        long* seconds);
-
-    HRESULT (STDMETHODCALLTYPE *put_StartTime)(
-        IVLCControl2* This,
-        long 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,
-        long* volume);
-
-    HRESULT (STDMETHODCALLTYPE *put_Volume)(
-        IVLCControl2* This,
-        long volume);
-
-    HRESULT (STDMETHODCALLTYPE *get_audio)(
-        IVLCControl2* This,
-        IVLCAudio** obj);
-
-    HRESULT (STDMETHODCALLTYPE *get_input)(
-        IVLCControl2* This,
-        IVLCInput** obj);
-
-    HRESULT (STDMETHODCALLTYPE *get_log)(
-        IVLCControl2* This,
-        IVLCLog** obj);
-
-    HRESULT (STDMETHODCALLTYPE *get_playlist)(
-        IVLCControl2* This,
-        IVLCPlaylist** obj);
-
-    HRESULT (STDMETHODCALLTYPE *get_video)(
-        IVLCControl2* This,
-        IVLCVideo** obj);
-
-    END_INTERFACE
-} IVLCControl2Vtbl;
-interface IVLCControl2 {
-    CONST_VTBL IVLCControl2Vtbl* lpVtbl;
-};
+#define IVLCControl2_get_MRL(This,mrl) \
+    (This)->lpVtbl -> get_MRL(This,mrl)
 
-#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_log(p,a) (p)->lpVtbl->get_log(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
+#define IVLCControl2_put_MRL(This,mrl) \
+    (This)->lpVtbl -> put_MRL(This,mrl)
+
+#define IVLCControl2_get_VersionInfo(This,version)     \
+    (This)->lpVtbl -> get_VersionInfo(This,version)
+
+#define IVLCControl2_get_Visible(This,visible) \
+    (This)->lpVtbl -> get_Visible(This,visible)
+
+#define IVLCControl2_put_Visible(This,visible) \
+    (This)->lpVtbl -> put_Visible(This,visible)
+
+#define IVLCControl2_get_Volume(This,volume)   \
+    (This)->lpVtbl -> get_Volume(This,volume)
+
+#define IVLCControl2_put_Volume(This,volume)   \
+    (This)->lpVtbl -> put_Volume(This,volume)
+
+#define IVLCControl2_get_BackColor(This,backcolor)     \
+    (This)->lpVtbl -> get_BackColor(This,backcolor)
+
+#define IVLCControl2_put_BackColor(This,backcolor)     \
+    (This)->lpVtbl -> put_BackColor(This,backcolor)
+
+#define IVLCControl2_get_audio(This,obj)       \
+    (This)->lpVtbl -> get_audio(This,obj)
+
+#define IVLCControl2_get_input(This,obj)       \
+    (This)->lpVtbl -> get_input(This,obj)
+
+#define IVLCControl2_get_log(This,obj) \
+    (This)->lpVtbl -> get_log(This,obj)
+
+#define IVLCControl2_get_playlist(This,obj)    \
+    (This)->lpVtbl -> get_playlist(This,obj)
+
+#define IVLCControl2_get_video(This,obj)       \
+    (This)->lpVtbl -> get_video(This,obj)
+
+#endif /* COBJMACROS */
+
+
+#endif         /* C style interface */
+
+
+
+/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IVLCControl2_get_AutoLoop_Proxy( 
+    IVLCControl2 * This,
+    /* [retval][out] */ VARIANT_BOOL *autoloop);
 
-#endif
 
-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);
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IVLCControl2_put_AutoLoop_Proxy( 
+    IVLCControl2 * This,
+    /* [in] */ 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);
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IVLCControl2_get_AutoPlay_Proxy( 
+    IVLCControl2 * This,
+    /* [retval][out] */ 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);
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IVLCControl2_put_AutoPlay_Proxy( 
+    IVLCControl2 * This,
+    /* [in] */ 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);
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IVLCControl2_get_BaseURL_Proxy( 
+    IVLCControl2 * This,
+    /* [retval][out] */ 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);
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IVLCControl2_put_BaseURL_Proxy( 
+    IVLCControl2 * This,
+    /* [in] */ 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,
-    long* seconds);
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IVLCControl2_get_StartTime_Proxy( 
+    IVLCControl2 * This,
+    /* [retval][out] */ long *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,
-    long seconds);
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IVLCControl2_put_StartTime_Proxy( 
+    IVLCControl2 * This,
+    /* [in] */ long 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);
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IVLCControl2_get_MRL_Proxy( 
+    IVLCControl2 * This,
+    /* [retval][out] */ 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);
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IVLCControl2_put_MRL_Proxy( 
+    IVLCControl2 * This,
+    /* [in] */ 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);
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCControl2_get_VersionInfo_Proxy( 
+    IVLCControl2 * This,
+    /* [retval][out] */ 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);
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IVLCControl2_get_Visible_Proxy( 
+    IVLCControl2 * This,
+    /* [retval][out] */ 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);
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IVLCControl2_put_Visible_Proxy( 
+    IVLCControl2 * This,
+    /* [in] */ 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,
-    long* volume);
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IVLCControl2_get_Volume_Proxy( 
+    IVLCControl2 * This,
+    /* [retval][out] */ long *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,
-    long volume);
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IVLCControl2_put_Volume_Proxy( 
+    IVLCControl2 * This,
+    /* [in] */ long 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);
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IVLCControl2_get_BackColor_Proxy( 
+    IVLCControl2 * This,
+    /* [retval][out] */ OLE_COLOR *backcolor);
+
+
+void __RPC_STUB IVLCControl2_get_BackColor_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IVLCControl2_put_BackColor_Proxy( 
+    IVLCControl2 * This,
+    /* [in] */ OLE_COLOR backcolor);
+
+
+void __RPC_STUB IVLCControl2_put_BackColor_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCControl2_get_audio_Proxy( 
+    IVLCControl2 * This,
+    /* [retval][out] */ 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);
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCControl2_get_input_Proxy( 
+    IVLCControl2 * This,
+    /* [retval][out] */ IVLCInput **obj);
+
+
 void __RPC_STUB IVLCControl2_get_input_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IVLCControl2_get_log_Proxy(
-    IVLCControl2* This,
-    IVLCLog** obj);
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCControl2_get_log_Proxy( 
+    IVLCControl2 * This,
+    /* [retval][out] */ IVLCLog **obj);
+
+
 void __RPC_STUB IVLCControl2_get_log_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IVLCControl2_get_playlist_Proxy(
-    IVLCControl2* This,
-    IVLCPlaylist** obj);
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCControl2_get_playlist_Proxy( 
+    IVLCControl2 * This,
+    /* [retval][out] */ 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);
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCControl2_get_video_Proxy( 
+    IVLCControl2 * This,
+    /* [retval][out] */ IVLCVideo **obj);
+
+
 void __RPC_STUB IVLCControl2_get_video_Stub(
-    IRpcStubBufferThis,
-    IRpcChannelBufferpRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORDpdwStubPhase);
+    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         /* __IVLCControl2_INTERFACE_DEFINED__ */
 
-#ifndef __VLCPlugin_FWD_DEFINED__
-#define __VLCPlugin_FWD_DEFINED__
-typedef struct VLCPlugin VLCPlugin;
-#endif /* defined __VLCPlugin_FWD_DEFINED__ */
 
-/*****************************************************************************
- * VLCPlugin2 coclass
- */
+#ifndef __DVLCEvents_DISPINTERFACE_DEFINED__
+#define __DVLCEvents_DISPINTERFACE_DEFINED__
 
-DEFINE_GUID(CLSID_VLCPlugin2, 0x9be31822, 0xfdad, 0x461b, 0xad,0x51, 0xbe,0x1d,0x1c,0x15,0x99,0x21);
+/* dispinterface DVLCEvents */
+/* [helpstring][uuid] */ 
 
-#ifndef __VLCPlugin2_FWD_DEFINED__
-#define __VLCPlugin2_FWD_DEFINED__
-typedef struct VLCPlugin2 VLCPlugin2;
-#endif /* defined __VLCPlugin2_FWD_DEFINED__ */
 
-/* Begin additional prototypes for all interfaces */
+EXTERN_C const IID DIID_DVLCEvents;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+    MIDL_INTERFACE("DF48072F-5EF8-434e-9B40-E2F3AE759B5F")
+    DVLCEvents : public IDispatch
+    {
+    };
+    
+#else  /* C style interface */
+
+    typedef struct DVLCEventsVtbl
+    {
+        BEGIN_INTERFACE
+        
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
+            DVLCEvents * This,
+            /* [in] */ REFIID riid,
+            /* [iid_is][out] */ void **ppvObject);
+        
+        ULONG ( STDMETHODCALLTYPE *AddRef )( 
+            DVLCEvents * This);
+        
+        ULONG ( STDMETHODCALLTYPE *Release )( 
+            DVLCEvents * This);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
+            DVLCEvents * This,
+            /* [out] */ UINT *pctinfo);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
+            DVLCEvents * This,
+            /* [in] */ UINT iTInfo,
+            /* [in] */ LCID lcid,
+            /* [out] */ ITypeInfo **ppTInfo);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
+            DVLCEvents * This,
+            /* [in] */ REFIID riid,
+            /* [size_is][in] */ LPOLESTR *rgszNames,
+            /* [in] */ UINT cNames,
+            /* [in] */ LCID lcid,
+            /* [size_is][out] */ DISPID *rgDispId);
+        
+        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
+            DVLCEvents * This,
+            /* [in] */ DISPID dispIdMember,
+            /* [in] */ REFIID riid,
+            /* [in] */ LCID lcid,
+            /* [in] */ WORD wFlags,
+            /* [out][in] */ DISPPARAMS *pDispParams,
+            /* [out] */ VARIANT *pVarResult,
+            /* [out] */ EXCEPINFO *pExcepInfo,
+            /* [out] */ UINT *puArgErr);
+        
+        END_INTERFACE
+    } DVLCEventsVtbl;
+
+    interface DVLCEvents
+    {
+        CONST_VTBL struct DVLCEventsVtbl *lpVtbl;
+    };
+
+    
+
+#ifdef COBJMACROS
+
+
+#define DVLCEvents_QueryInterface(This,riid,ppvObject) \
+    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define DVLCEvents_AddRef(This)        \
+    (This)->lpVtbl -> AddRef(This)
+
+#define DVLCEvents_Release(This)       \
+    (This)->lpVtbl -> Release(This)
+
+
+#define DVLCEvents_GetTypeInfoCount(This,pctinfo)      \
+    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define DVLCEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo)       \
+    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define DVLCEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)     \
+    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define DVLCEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)       \
+    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+#endif /* COBJMACROS */
+
 
-ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
-unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
-unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
-void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
-ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
-unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
-unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
-void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
+#endif         /* C style interface */
 
-/* End additional prototypes */
+
+#endif         /* __DVLCEvents_DISPINTERFACE_DEFINED__ */
+
+
+#ifndef __IVLCPlaylistItems_INTERFACE_DEFINED__
+#define __IVLCPlaylistItems_INTERFACE_DEFINED__
+
+/* interface IVLCPlaylistItems */
+/* [object][oleautomation][dual][helpstring][uuid] */ 
+
+
+EXTERN_C const IID IID_IVLCPlaylistItems;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+    
+    MIDL_INTERFACE("FD37FE32-82BC-4A25-B056-315F4DBB194D")
+    IVLCPlaylistItems : public IDispatch
+    {
+    public:
+        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_count( 
+            /* [retval][out] */ long *count) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE clear( void) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE remove( 
+            /* [in] */ long itemId) = 0;
+        
+    };
+    
+#else  /* C style interface */
+
+    typedef struct IVLCPlaylistItemsVtbl
+    {
+        BEGIN_INTERFACE
+        
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
+            IVLCPlaylistItems * This,
+            /* [in] */ REFIID riid,
+            /* [iid_is][out] */ void **ppvObject);
+        
+        ULONG ( STDMETHODCALLTYPE *AddRef )( 
+            IVLCPlaylistItems * This);
+        
+        ULONG ( STDMETHODCALLTYPE *Release )( 
+            IVLCPlaylistItems * This);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
+            IVLCPlaylistItems * This,
+            /* [out] */ UINT *pctinfo);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
+            IVLCPlaylistItems * This,
+            /* [in] */ UINT iTInfo,
+            /* [in] */ LCID lcid,
+            /* [out] */ ITypeInfo **ppTInfo);
+        
+        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
+            IVLCPlaylistItems * This,
+            /* [in] */ REFIID riid,
+            /* [size_is][in] */ LPOLESTR *rgszNames,
+            /* [in] */ UINT cNames,
+            /* [in] */ LCID lcid,
+            /* [size_is][out] */ DISPID *rgDispId);
+        
+        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
+            IVLCPlaylistItems * This,
+            /* [in] */ DISPID dispIdMember,
+            /* [in] */ REFIID riid,
+            /* [in] */ LCID lcid,
+            /* [in] */ WORD wFlags,
+            /* [out][in] */ DISPPARAMS *pDispParams,
+            /* [out] */ VARIANT *pVarResult,
+            /* [out] */ EXCEPINFO *pExcepInfo,
+            /* [out] */ UINT *puArgErr);
+        
+        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_count )( 
+            IVLCPlaylistItems * This,
+            /* [retval][out] */ long *count);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *clear )( 
+            IVLCPlaylistItems * This);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *remove )( 
+            IVLCPlaylistItems * This,
+            /* [in] */ long itemId);
+        
+        END_INTERFACE
+    } IVLCPlaylistItemsVtbl;
+
+    interface IVLCPlaylistItems
+    {
+        CONST_VTBL struct IVLCPlaylistItemsVtbl *lpVtbl;
+    };
+
+    
+
+#ifdef COBJMACROS
+
+
+#define IVLCPlaylistItems_QueryInterface(This,riid,ppvObject)  \
+    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
+
+#define IVLCPlaylistItems_AddRef(This) \
+    (This)->lpVtbl -> AddRef(This)
+
+#define IVLCPlaylistItems_Release(This)        \
+    (This)->lpVtbl -> Release(This)
+
+
+#define IVLCPlaylistItems_GetTypeInfoCount(This,pctinfo)       \
+    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+
+#define IVLCPlaylistItems_GetTypeInfo(This,iTInfo,lcid,ppTInfo)        \
+    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+
+#define IVLCPlaylistItems_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)      \
+    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+
+#define IVLCPlaylistItems_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)        \
+    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+
+
+#define IVLCPlaylistItems_get_count(This,count)        \
+    (This)->lpVtbl -> get_count(This,count)
+
+#define IVLCPlaylistItems_clear(This)  \
+    (This)->lpVtbl -> clear(This)
+
+#define IVLCPlaylistItems_remove(This,itemId)  \
+    (This)->lpVtbl -> remove(This,itemId)
+
+#endif /* COBJMACROS */
+
+
+#endif         /* C style interface */
+
+
+
+/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCPlaylistItems_get_count_Proxy( 
+    IVLCPlaylistItems * This,
+    /* [retval][out] */ long *count);
+
+
+void __RPC_STUB IVLCPlaylistItems_get_count_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCPlaylistItems_clear_Proxy( 
+    IVLCPlaylistItems * This);
+
+
+void __RPC_STUB IVLCPlaylistItems_clear_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCPlaylistItems_remove_Proxy( 
+    IVLCPlaylistItems * This,
+    /* [in] */ long itemId);
+
+
+void __RPC_STUB IVLCPlaylistItems_remove_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+
+#endif         /* __IVLCPlaylistItems_INTERFACE_DEFINED__ */
+
+
+EXTERN_C const CLSID CLSID_VLCPlugin;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("E23FE9C6-778E-49D4-B537-38FCDE4887D8")
+VLCPlugin;
+#endif
+
+EXTERN_C const CLSID CLSID_VLCPlugin2;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("9BE31822-FDAD-461B-AD51-BE1D1C159921")
+VLCPlugin2;
+#endif
+#endif /* __AXVLC_LIBRARY_DEFINED__ */
+
+/* Additional Prototypes for ALL interfaces */
+
+/* end of Additional Prototypes */
 
 #ifdef __cplusplus
 }
 #endif
-#endif /* __WIDL_AXVLC_IDL_H */
+
+#endif
+
+
index ef6531a6833eb7f359962609495841ca40994f7b..b53c5113fc3631f718fa5a632deb3bac862d345e 100644 (file)
@@ -182,6 +182,29 @@ STDMETHODIMP VLCPersistPropertyBag::Load(LPPROPERTYBAG pPropBag, LPERRORLOG pErr
         VariantClear(&value);
     }
 
+    V_VT(&value) = VT_I4;
+    if( S_OK == pPropBag->Read(OLESTR("backcolor"), &value, pErrorLog) )
+    {
+        _p_instance->setBackColor(V_I4(&value));
+        VariantClear(&value);
+    }
+    else
+    {
+        /*
+        ** try alternative syntax
+        */
+        V_VT(&value) = VT_BSTR;
+        if( S_OK == pPropBag->Read(OLESTR("bgcolor"), &value, pErrorLog) )
+        {
+            long backcolor;
+            if( swscanf(V_BSTR(&value), L"#%lX", &backcolor) )
+            {
+                _p_instance->setBackColor(backcolor);
+            }
+            VariantClear(&value);
+        }
+    }
+
     return _p_instance->onLoad();
 };
 
@@ -238,6 +261,11 @@ STDMETHODIMP VLCPersistPropertyBag::Save(LPPROPERTYBAG pPropBag, BOOL fClearDirt
     pPropBag->Write(OLESTR("BaseURL"), &value);
     VariantClear(&value);
 
+    V_VT(&value) = VT_I4;
+    V_I4(&value) = _p_instance->getBackColor();
+    pPropBag->Write(OLESTR("BackColor"), &value);
+    VariantClear(&value);
+
     if( fClearDirty )
         _p_instance->setDirty(FALSE);
 
index 70fca401023dcd0f4af190671851de76000837c5..65c15eb8512f8f36bd0f61cf44d48186a87a3498 100644 (file)
@@ -351,6 +351,7 @@ HRESULT VLCPlugin::onInit(void)
         _b_mute = FALSE;
         _i_volume = 50;
         _i_time   = 0;
+        _i_backcolor = 0;
         // set default/preferred size (320x240) pixels in HIMETRIC
         HDC hDC = CreateDevDC(NULL);
         _extent.cx = 320;
@@ -559,6 +560,12 @@ HRESULT VLCPlugin::onAmbientChanged(LPUNKNOWN pContainer, DISPID dispID)
     switch( dispID )
     {
         case DISPID_AMBIENT_BACKCOLOR:
+            VariantInit(&v);
+            V_VT(&v) = VT_I4;
+            if( SUCCEEDED(GetObjectProperty(pContainer, dispID, v)) )
+            {
+                setBackColor(V_I4(&v));
+            }
             break;
         case DISPID_AMBIENT_DISPLAYNAME:
             break;
@@ -782,6 +789,19 @@ void VLCPlugin::setVolume(int volume)
     }
 };
 
+void VLCPlugin::setBackColor(OLE_COLOR backcolor)
+{
+    if( _i_backcolor != backcolor )
+    {
+        _i_backcolor = backcolor;
+        if( isInPlaceActive() )
+        {
+
+        }
+        setDirty(TRUE);
+    }
+};
+
 void VLCPlugin::setTime(int seconds)
 {
     if( seconds < 0 )
@@ -822,57 +842,80 @@ void VLCPlugin::onDraw(DVTARGETDEVICE * ptd, HDC hicTargetDev,
         long height = lprcBounds->bottom-lprcBounds->top;
 
         RECT bounds = { lprcBounds->left, lprcBounds->top, lprcBounds->right, lprcBounds->bottom };
-        FillRect(hdcDraw, &bounds, (HBRUSH)GetStockObject(WHITE_BRUSH));
 
-        LPPICTURE pict = getPicture();
-        if( NULL != pict )
+        if( isUserMode() )
         {
-            OLE_XSIZE_HIMETRIC picWidth;
-            OLE_YSIZE_HIMETRIC picHeight;
-
-            pict->get_Width(&picWidth);
-            pict->get_Height(&picHeight);
-
-            SIZEL picSize = { picWidth, picHeight };
-
-            if( NULL != hicTargetDev )
+            /* VLC is in user mode, just draw background color */
+            COLORREF colorref = RGB(0, 0, 0);
+            OleTranslateColor(_i_backcolor, (HPALETTE)GetStockObject(DEFAULT_PALETTE), &colorref);
+            if( colorref != RGB(0, 0, 0) )
             {
-                DPFromHimetric(hicTargetDev, (LPPOINT)&picSize, 1);
+                /* custom background */
+                HBRUSH colorbrush = CreateSolidBrush(colorref);
+                FillRect(hdcDraw, &bounds, colorbrush);
+                DeleteObject((HANDLE)colorbrush);
             }
-            else if( NULL != (hicTargetDev = CreateDevDC(ptd)) )
+            else
             {
-                DPFromHimetric(hicTargetDev, (LPPOINT)&picSize, 1);
-                DeleteDC(hicTargetDev);
+                /* black background */
+                FillRect(hdcDraw, &bounds, (HBRUSH)GetStockObject(BLACK_BRUSH));
             }
+        }
+        else
+        {
+            /* VLC is in design mode, draw the VLC logo */
+            FillRect(hdcDraw, &bounds, (HBRUSH)GetStockObject(WHITE_BRUSH));
 
-            if( picSize.cx > width-4 )
-                picSize.cx = width-4;
-            if( picSize.cy > height-4 )
-                picSize.cy = height-4;
+            LPPICTURE pict = getPicture();
+            if( NULL != pict )
+            {
+                OLE_XSIZE_HIMETRIC picWidth;
+                OLE_YSIZE_HIMETRIC picHeight;
 
-            LONG dstX = lprcBounds->left+(width-picSize.cx)/2;
-            LONG dstY = lprcBounds->top+(height-picSize.cy)/2;
+                pict->get_Width(&picWidth);
+                pict->get_Height(&picHeight);
 
-            if( NULL != lprcWBounds )
-            {
-                RECT wBounds = { lprcWBounds->left, lprcWBounds->top, lprcWBounds->right, lprcWBounds->bottom };
-                pict->Render(hdcDraw, dstX, dstY, picSize.cx, picSize.cy,
-                        0L, picHeight, picWidth, -picHeight, &wBounds);
-            }
-            else 
-                pict->Render(hdcDraw, dstX, dstY, picSize.cx, picSize.cy,
-                        0L, picHeight, picWidth, -picHeight, NULL);
+                SIZEL picSize = { picWidth, picHeight };
 
-            pict->Release();
-        }
+                if( NULL != hicTargetDev )
+                {
+                    DPFromHimetric(hicTargetDev, (LPPOINT)&picSize, 1);
+                }
+                else if( NULL != (hicTargetDev = CreateDevDC(ptd)) )
+                {
+                    DPFromHimetric(hicTargetDev, (LPPOINT)&picSize, 1);
+                    DeleteDC(hicTargetDev);
+                }
+
+                if( picSize.cx > width-4 )
+                    picSize.cx = width-4;
+                if( picSize.cy > height-4 )
+                    picSize.cy = height-4;
+
+                LONG dstX = lprcBounds->left+(width-picSize.cx)/2;
+                LONG dstY = lprcBounds->top+(height-picSize.cy)/2;
 
-        SelectObject(hdcDraw, GetStockObject(BLACK_BRUSH));
+                if( NULL != lprcWBounds )
+                {
+                    RECT wBounds = { lprcWBounds->left, lprcWBounds->top, lprcWBounds->right, lprcWBounds->bottom };
+                    pict->Render(hdcDraw, dstX, dstY, picSize.cx, picSize.cy,
+                            0L, picHeight, picWidth, -picHeight, &wBounds);
+                }
+                else 
+                    pict->Render(hdcDraw, dstX, dstY, picSize.cx, picSize.cy,
+                            0L, picHeight, picWidth, -picHeight, NULL);
 
-        MoveToEx(hdcDraw, bounds.left, bounds.top, NULL);
-        LineTo(hdcDraw, bounds.left+width-1, bounds.top);
-        LineTo(hdcDraw, bounds.left+width-1, bounds.top+height-1);
-        LineTo(hdcDraw, bounds.left, bounds.top+height-1);
-        LineTo(hdcDraw, bounds.left, bounds.top);
+                pict->Release();
+            }
+
+            SelectObject(hdcDraw, GetStockObject(BLACK_BRUSH));
+
+            MoveToEx(hdcDraw, bounds.left, bounds.top, NULL);
+            LineTo(hdcDraw, bounds.left+width-1, bounds.top);
+            LineTo(hdcDraw, bounds.left+width-1, bounds.top+height-1);
+            LineTo(hdcDraw, bounds.left, bounds.top+height-1);
+            LineTo(hdcDraw, bounds.left, bounds.top);
+        }
     }
 };
 
@@ -880,8 +923,7 @@ void VLCPlugin::onPaint(HDC hdc, const RECT &bounds, const RECT &clipRect)
 {
     if( isVisible() )
     {
-        /** if VLC is playing, it may not display any VIDEO content 
-        ** hence, draw control logo*/
+        /* if VLC is in design mode, draw control logo */
         HDC hdcDraw = CreateCompatibleDC(hdc);
         if( NULL != hdcDraw )
         {
index 873c39c715733c1e9a6cff1ad8d728a775abc6c0..9d09a4fa0cecdfd11b11f3b66f4a74aa58940ca0 100644 (file)
@@ -114,6 +114,9 @@ public:
     void setVolume(int volume);
     int getVolume(void) { return _i_volume; };
 
+    void setBackColor(OLE_COLOR backcolor);
+    OLE_COLOR getBackColor(void) { return _i_backcolor; };
+
     void setVisible(BOOL fVisible);
     BOOL getVisible(void) { return _b_visible; };
     BOOL isVisible(void) { return _b_visible || (! _b_usermode); };
@@ -251,6 +254,7 @@ private:
     UINT _i_codepage;
     BOOL _b_usermode;
     RECT _posRect;
+    LPPICTURE _p_pict;
 
     // persistable properties
     BSTR _bstr_baseurl;
@@ -262,7 +266,7 @@ private:
     int  _i_volume;
     int  _i_time;
     SIZEL _extent;
-    LPPICTURE _p_pict;
+    OLE_COLOR _i_backcolor;
     // indicates whether properties needs persisting
     BOOL _b_dirty;
 };
index fcd27715ba34385d59bbf76da98c6e22f1d8dcaa..b9970b8346c04a664e9879df094ee1684f2fa437 100644 (file)
@@ -2715,6 +2715,21 @@ STDMETHODIMP VLCControl2::put_Volume(long volume)
     return NOERROR;
 };
 
+STDMETHODIMP VLCControl2::get_BackColor(OLE_COLOR *backcolor)
+{
+    if( NULL == backcolor )
+        return E_POINTER;
+
+    *backcolor  = _p_instance->getBackColor();
+    return NOERROR;
+};
+
+STDMETHODIMP VLCControl2::put_BackColor(OLE_COLOR backcolor)
+{
+    _p_instance->setBackColor(backcolor);
+    return NOERROR;
+};
+
 STDMETHODIMP VLCControl2::get_audio(IVLCAudio** obj)
 {
     if( NULL == obj )
index 4eefafecf7101de708e3ae471d429049cbc95a56..dd53c4d4e40e42e60f8b08c9c97c16c3830e2dcd 100644 (file)
@@ -586,6 +586,8 @@ public:
     STDMETHODIMP put_Visible(VARIANT_BOOL visible);
     STDMETHODIMP get_Volume(long *volume);
     STDMETHODIMP put_Volume(long volume);
+    STDMETHODIMP get_BackColor(OLE_COLOR *backcolor);
+    STDMETHODIMP put_BackColor(OLE_COLOR backcolor);
 
     STDMETHODIMP get_audio(IVLCAudio**);
     STDMETHODIMP get_input(IVLCInput**);