/*** Autogenerated by WIDL 0.9.20 from axvlc.idl - Do not edit ***/
#include <rpc.h>
#include <rpcndr.h>

#ifndef __WIDL_AXVLC_IDL_H
#define __WIDL_AXVLC_IDL_H
#ifdef __cplusplus
extern "C" {
#endif
#include <oaidl.h>

DEFINE_GUID(LIBID_AXVLC, 0xdf2bbe39, 0x40a8, 0x433b, 0xa2,0x79, 0x07,0x3f,0x48,0xda,0x94,0xb6);

#ifndef __IVLCControl_FWD_DEFINED__
#define __IVLCControl_FWD_DEFINED__
typedef interface IVLCControl IVLCControl;
#endif

#ifndef __IVLCAudio_FWD_DEFINED__
#define __IVLCAudio_FWD_DEFINED__
typedef interface IVLCAudio IVLCAudio;
#endif

#ifndef __IVLCInput_FWD_DEFINED__
#define __IVLCInput_FWD_DEFINED__
typedef interface IVLCInput IVLCInput;
#endif

#ifndef __IVLCPlaylist_FWD_DEFINED__
#define __IVLCPlaylist_FWD_DEFINED__
typedef interface IVLCPlaylist IVLCPlaylist;
#endif

#ifndef __IVLCVideo_FWD_DEFINED__
#define __IVLCVideo_FWD_DEFINED__
typedef interface IVLCVideo IVLCVideo;
#endif

#ifndef __IVLCControl2_FWD_DEFINED__
#define __IVLCControl2_FWD_DEFINED__
typedef interface IVLCControl2 IVLCControl2;
#endif

#ifndef __DVLCEvents_FWD_DEFINED__
#define __DVLCEvents_FWD_DEFINED__
typedef interface DVLCEvents DVLCEvents;
#endif

enum VLCPlaylistMode {
    VLCPlayListInsert = 1,
    VLCPlayListInsertAndGo = 9,
    VLCPlayListReplace = 2,
    VLCPlayListReplaceAndGo = 10,
    VLCPlayListAppend = 4,
    VLCPlayListAppendAndGo = 12,
    VLCPlayListCheckInsert = 16
};

#define VLCPlayListEnd (-666)

#define DISPID_Visible (100)

#define DISPID_Playing (101)

#define DISPID_Position (102)

#define DISPID_Time (103)

#define DISPID_Length (104)

#define DISPID_Volume (105)

#define DISPID_MRL (106)

#define DISPID_AutoPlay (107)

#define DISPID_AutoLoop (108)

/*****************************************************************************
 * IVLCControl interface
 */
#ifndef __IVLCControl_INTERFACE_DEFINED__
#define __IVLCControl_INTERFACE_DEFINED__

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;

    virtual HRESULT STDMETHODCALLTYPE put_Visible(
        VARIANT_BOOL visible) = 0;

    virtual HRESULT STDMETHODCALLTYPE play(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE pause(
        ) = 0;

    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;

    virtual HRESULT STDMETHODCALLTYPE put_Volume(
        int volume) = 0;

    virtual HRESULT STDMETHODCALLTYPE toggleMute(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE setVariable(
        BSTR name,
        VARIANT value) = 0;

    virtual HRESULT STDMETHODCALLTYPE getVariable(
        BSTR name,
        VARIANT* value) = 0;

    virtual HRESULT STDMETHODCALLTYPE addTarget(
        BSTR uri,
        VARIANT options,
        enum VLCPlaylistMode mode,
        int position) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_PlaylistIndex(
        int* index) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_PlaylistCount(
        int* index) = 0;

    virtual HRESULT STDMETHODCALLTYPE playlistNext(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE playlistPrev(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE playlistClear(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_VersionInfo(
        BSTR* version) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_MRL(
        BSTR* mrl) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_MRL(
        BSTR mrl) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_AutoPlay(
        VARIANT_BOOL* autoplay) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_AutoPlay(
        VARIANT_BOOL autoplay) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_AutoLoop(
        VARIANT_BOOL* autoloop) = 0;

    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);

    HRESULT (STDMETHODCALLTYPE *playlistPrev)(
        IVLCControl* This);

    HRESULT (STDMETHODCALLTYPE *playlistClear)(
        IVLCControl* This);

    HRESULT (STDMETHODCALLTYPE *get_VersionInfo)(
        IVLCControl* This,
        BSTR* version);

    HRESULT (STDMETHODCALLTYPE *get_MRL)(
        IVLCControl* This,
        BSTR* mrl);

    HRESULT (STDMETHODCALLTYPE *put_MRL)(
        IVLCControl* This,
        BSTR mrl);

    HRESULT (STDMETHODCALLTYPE *get_AutoPlay)(
        IVLCControl* This,
        VARIANT_BOOL* autoplay);

    HRESULT (STDMETHODCALLTYPE *put_AutoPlay)(
        IVLCControl* This,
        VARIANT_BOOL autoplay);

    HRESULT (STDMETHODCALLTYPE *get_AutoLoop)(
        IVLCControl* This,
        VARIANT_BOOL* autoloop);

    HRESULT (STDMETHODCALLTYPE *put_AutoLoop)(
        IVLCControl* This,
        VARIANT_BOOL autoloop);

    END_INTERFACE
} IVLCControlVtbl;
interface IVLCControl {
    const IVLCControlVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IVLCControl_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IVLCControl_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IVLCControl_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IVLCControl_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IVLCControl_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IVLCControl_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IVLCControl_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IVLCControl methods ***/
#define IVLCControl_get_Visible(p,a) (p)->lpVtbl->get_Visible(p,a)
#define IVLCControl_put_Visible(p,a) (p)->lpVtbl->put_Visible(p,a)
#define IVLCControl_play(p) (p)->lpVtbl->play(p)
#define IVLCControl_pause(p) (p)->lpVtbl->pause(p)
#define IVLCControl_stop(p) (p)->lpVtbl->stop(p)
#define IVLCControl_get_Playing(p,a) (p)->lpVtbl->get_Playing(p,a)
#define IVLCControl_get_Position(p,a) (p)->lpVtbl->get_Position(p,a)
#define IVLCControl_put_Position(p,a) (p)->lpVtbl->put_Position(p,a)
#define IVLCControl_get_Time(p,a) (p)->lpVtbl->get_Time(p,a)
#define IVLCControl_put_Time(p,a) (p)->lpVtbl->put_Time(p,a)
#define IVLCControl_shuttle(p,a) (p)->lpVtbl->shuttle(p,a)
#define IVLCControl_fullscreen(p) (p)->lpVtbl->fullscreen(p)
#define IVLCControl_get_Length(p,a) (p)->lpVtbl->get_Length(p,a)
#define IVLCControl_playFaster(p) (p)->lpVtbl->playFaster(p)
#define IVLCControl_playSlower(p) (p)->lpVtbl->playSlower(p)
#define IVLCControl_get_Volume(p,a) (p)->lpVtbl->get_Volume(p,a)
#define IVLCControl_put_Volume(p,a) (p)->lpVtbl->put_Volume(p,a)
#define IVLCControl_toggleMute(p) (p)->lpVtbl->toggleMute(p)
#define IVLCControl_setVariable(p,a,b) (p)->lpVtbl->setVariable(p,a,b)
#define IVLCControl_getVariable(p,a,b) (p)->lpVtbl->getVariable(p,a,b)
#define IVLCControl_addTarget(p,a,b,c,d) (p)->lpVtbl->addTarget(p,a,b,c,d)
#define IVLCControl_get_PlaylistIndex(p,a) (p)->lpVtbl->get_PlaylistIndex(p,a)
#define IVLCControl_get_PlaylistCount(p,a) (p)->lpVtbl->get_PlaylistCount(p,a)
#define IVLCControl_playlistNext(p) (p)->lpVtbl->playlistNext(p)
#define IVLCControl_playlistPrev(p) (p)->lpVtbl->playlistPrev(p)
#define IVLCControl_playlistClear(p) (p)->lpVtbl->playlistClear(p)
#define IVLCControl_get_VersionInfo(p,a) (p)->lpVtbl->get_VersionInfo(p,a)
#define IVLCControl_get_MRL(p,a) (p)->lpVtbl->get_MRL(p,a)
#define IVLCControl_put_MRL(p,a) (p)->lpVtbl->put_MRL(p,a)
#define IVLCControl_get_AutoPlay(p,a) (p)->lpVtbl->get_AutoPlay(p,a)
#define IVLCControl_put_AutoPlay(p,a) (p)->lpVtbl->put_AutoPlay(p,a)
#define IVLCControl_get_AutoLoop(p,a) (p)->lpVtbl->get_AutoLoop(p,a)
#define IVLCControl_put_AutoLoop(p,a) (p)->lpVtbl->put_AutoLoop(p,a)
#endif

#endif

HRESULT CALLBACK IVLCControl_get_Visible_Proxy(
    IVLCControl* This,
    VARIANT_BOOL* visible);
void __RPC_STUB IVLCControl_get_Visible_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
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);

#endif  /* __IVLCControl_INTERFACE_DEFINED__ */

#define DISPID_PlayEvent (100)

#define DISPID_PauseEvent (101)

#define DISPID_StopEvent (102)

/*****************************************************************************
 * DVLCEvents dispinterface
 */
#ifndef __DVLCEvents_DISPINTERFACE_DEFINED__
#define __DVLCEvents_DISPINTERFACE_DEFINED__

DEFINE_GUID(DIID_DVLCEvents, 0xdf48072f, 0x5ef8, 0x434e, 0x9b,0x40, 0xe2,0xf3,0xae,0x75,0x9b,0x5f);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface DVLCEvents : public IDispatch
{
};
#else
typedef struct DVLCEventsVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        DVLCEvents* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        DVLCEvents* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        DVLCEvents* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        DVLCEvents* This,
        UINT* pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        DVLCEvents* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo** ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        DVLCEvents* This,
        REFIID riid,
        LPOLESTR* rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID* rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        DVLCEvents* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS* pDispParams,
        VARIANT* pVarResult,
        EXCEPINFO* pExcepInfo,
        UINT* puArgErr);

    END_INTERFACE
} DVLCEventsVtbl;
interface DVLCEvents {
    const DVLCEventsVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define DVLCEvents_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define DVLCEvents_AddRef(p) (p)->lpVtbl->AddRef(p)
#define DVLCEvents_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define DVLCEvents_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define DVLCEvents_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define DVLCEvents_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define DVLCEvents_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
#endif

#endif

#endif  /* __DVLCEvents_DISPINTERFACE_DEFINED__ */

/*****************************************************************************
 * IVLCAudio interface
 */
#ifndef __IVLCAudio_INTERFACE_DEFINED__
#define __IVLCAudio_INTERFACE_DEFINED__

DEFINE_GUID(IID_IVLCAudio, 0x9e0bd17b, 0x2d3c, 0x4656, 0xb9,0x4d, 0x03,0x08,0x4f,0x3f,0xd9,0xd4);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IVLCAudio : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_mute(
        VARIANT_BOOL* muted) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_mute(
        VARIANT_BOOL muted) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_volume(
        int* volume) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_volume(
        int volume) = 0;

    virtual HRESULT STDMETHODCALLTYPE toggleMute(
        ) = 0;

};
#else
typedef struct IVLCAudioVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IVLCAudio* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IVLCAudio* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IVLCAudio* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IVLCAudio* This,
        UINT* pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IVLCAudio* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo** ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IVLCAudio* This,
        REFIID riid,
        LPOLESTR* rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID* rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IVLCAudio* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS* pDispParams,
        VARIANT* pVarResult,
        EXCEPINFO* pExcepInfo,
        UINT* puArgErr);

    /*** IVLCAudio methods ***/
    HRESULT (STDMETHODCALLTYPE *get_mute)(
        IVLCAudio* This,
        VARIANT_BOOL* muted);

    HRESULT (STDMETHODCALLTYPE *put_mute)(
        IVLCAudio* This,
        VARIANT_BOOL muted);

    HRESULT (STDMETHODCALLTYPE *get_volume)(
        IVLCAudio* This,
        int* volume);

    HRESULT (STDMETHODCALLTYPE *put_volume)(
        IVLCAudio* This,
        int volume);

    HRESULT (STDMETHODCALLTYPE *toggleMute)(
        IVLCAudio* This);

    END_INTERFACE
} IVLCAudioVtbl;
interface IVLCAudio {
    const IVLCAudioVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IVLCAudio_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IVLCAudio_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IVLCAudio_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IVLCAudio_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IVLCAudio_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IVLCAudio_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IVLCAudio_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IVLCAudio methods ***/
#define IVLCAudio_get_mute(p,a) (p)->lpVtbl->get_mute(p,a)
#define IVLCAudio_put_mute(p,a) (p)->lpVtbl->put_mute(p,a)
#define IVLCAudio_get_volume(p,a) (p)->lpVtbl->get_volume(p,a)
#define IVLCAudio_put_volume(p,a) (p)->lpVtbl->put_volume(p,a)
#define IVLCAudio_toggleMute(p) (p)->lpVtbl->toggleMute(p)
#endif

#endif

HRESULT CALLBACK IVLCAudio_get_mute_Proxy(
    IVLCAudio* This,
    VARIANT_BOOL* muted);
void __RPC_STUB IVLCAudio_get_mute_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IVLCAudio_put_mute_Proxy(
    IVLCAudio* This,
    VARIANT_BOOL muted);
void __RPC_STUB IVLCAudio_put_mute_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IVLCAudio_get_volume_Proxy(
    IVLCAudio* This,
    int* volume);
void __RPC_STUB IVLCAudio_get_volume_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IVLCAudio_put_volume_Proxy(
    IVLCAudio* This,
    int volume);
void __RPC_STUB IVLCAudio_put_volume_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IVLCAudio_toggleMute_Proxy(
    IVLCAudio* This);
void __RPC_STUB IVLCAudio_toggleMute_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IVLCAudio_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IVLCInput interface
 */
#ifndef __IVLCInput_INTERFACE_DEFINED__
#define __IVLCInput_INTERFACE_DEFINED__

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(
        __int64* length) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_position(
        float* position) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_position(
        float position) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_time(
        __int64* time) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_time(
        __int64 time) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_state(
        int* state) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_rate(
        float* rate) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_rate(
        float rate) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_fps(
        float* fps) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_hasVout(
        VARIANT_BOOL* hasVout) = 0;

};
#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,
        __int64* length);

    HRESULT (STDMETHODCALLTYPE *get_position)(
        IVLCInput* This,
        float* position);

    HRESULT (STDMETHODCALLTYPE *put_position)(
        IVLCInput* This,
        float position);

    HRESULT (STDMETHODCALLTYPE *get_time)(
        IVLCInput* This,
        __int64* time);

    HRESULT (STDMETHODCALLTYPE *put_time)(
        IVLCInput* This,
        __int64 time);

    HRESULT (STDMETHODCALLTYPE *get_state)(
        IVLCInput* This,
        int* state);

    HRESULT (STDMETHODCALLTYPE *get_rate)(
        IVLCInput* This,
        float* rate);

    HRESULT (STDMETHODCALLTYPE *put_rate)(
        IVLCInput* This,
        float rate);

    HRESULT (STDMETHODCALLTYPE *get_fps)(
        IVLCInput* This,
        float* fps);

    HRESULT (STDMETHODCALLTYPE *get_hasVout)(
        IVLCInput* This,
        VARIANT_BOOL* hasVout);

    END_INTERFACE
} IVLCInputVtbl;
interface IVLCInput {
    const IVLCInputVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IVLCInput_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IVLCInput_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IVLCInput_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IVLCInput_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IVLCInput_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IVLCInput_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IVLCInput_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IVLCInput methods ***/
#define IVLCInput_get_length(p,a) (p)->lpVtbl->get_length(p,a)
#define IVLCInput_get_position(p,a) (p)->lpVtbl->get_position(p,a)
#define IVLCInput_put_position(p,a) (p)->lpVtbl->put_position(p,a)
#define IVLCInput_get_time(p,a) (p)->lpVtbl->get_time(p,a)
#define IVLCInput_put_time(p,a) (p)->lpVtbl->put_time(p,a)
#define IVLCInput_get_state(p,a) (p)->lpVtbl->get_state(p,a)
#define IVLCInput_get_rate(p,a) (p)->lpVtbl->get_rate(p,a)
#define IVLCInput_put_rate(p,a) (p)->lpVtbl->put_rate(p,a)
#define IVLCInput_get_fps(p,a) (p)->lpVtbl->get_fps(p,a)
#define IVLCInput_get_hasVout(p,a) (p)->lpVtbl->get_hasVout(p,a)
#endif

#endif

HRESULT CALLBACK IVLCInput_get_length_Proxy(
    IVLCInput* This,
    __int64* length);
void __RPC_STUB IVLCInput_get_length_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IVLCInput_get_position_Proxy(
    IVLCInput* This,
    float* position);
void __RPC_STUB IVLCInput_get_position_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IVLCInput_put_position_Proxy(
    IVLCInput* This,
    float position);
void __RPC_STUB IVLCInput_put_position_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IVLCInput_get_time_Proxy(
    IVLCInput* This,
    __int64* 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,
    __int64 time);
void __RPC_STUB IVLCInput_put_time_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IVLCInput_get_state_Proxy(
    IVLCInput* This,
    int* state);
void __RPC_STUB IVLCInput_get_state_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IVLCInput_get_rate_Proxy(
    IVLCInput* This,
    float* rate);
void __RPC_STUB IVLCInput_get_rate_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IVLCInput_put_rate_Proxy(
    IVLCInput* This,
    float rate);
void __RPC_STUB IVLCInput_put_rate_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IVLCInput_get_fps_Proxy(
    IVLCInput* This,
    float* fps);
void __RPC_STUB IVLCInput_get_fps_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IVLCInput_get_hasVout_Proxy(
    IVLCInput* This,
    VARIANT_BOOL* hasVout);
void __RPC_STUB IVLCInput_get_hasVout_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IVLCInput_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IVLCPlaylist interface
 */
#ifndef __IVLCPlaylist_INTERFACE_DEFINED__
#define __IVLCPlaylist_INTERFACE_DEFINED__

DEFINE_GUID(IID_IVLCPlaylist, 0x54613049, 0x40bf, 0x4035, 0x9e,0x70, 0x0a,0x93,0x12,0xc0,0x18,0x8d);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IVLCPlaylist : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_itemCount(
        int* count) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_isPlaying(
        VARIANT_BOOL* playing) = 0;

    virtual HRESULT STDMETHODCALLTYPE add(
        BSTR uri,
        VARIANT name,
        VARIANT options,
        int* item) = 0;

    virtual HRESULT STDMETHODCALLTYPE play(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE playItem(
        int item) = 0;

    virtual HRESULT STDMETHODCALLTYPE togglePause(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE stop(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE next(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE prev(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE clear(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE removeItem(
        int item) = 0;

};
#else
typedef struct IVLCPlaylistVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IVLCPlaylist* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IVLCPlaylist* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IVLCPlaylist* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IVLCPlaylist* This,
        UINT* pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IVLCPlaylist* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo** ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IVLCPlaylist* This,
        REFIID riid,
        LPOLESTR* rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID* rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IVLCPlaylist* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS* pDispParams,
        VARIANT* pVarResult,
        EXCEPINFO* pExcepInfo,
        UINT* puArgErr);

    /*** IVLCPlaylist methods ***/
    HRESULT (STDMETHODCALLTYPE *get_itemCount)(
        IVLCPlaylist* This,
        int* count);

    HRESULT (STDMETHODCALLTYPE *get_isPlaying)(
        IVLCPlaylist* This,
        VARIANT_BOOL* playing);

    HRESULT (STDMETHODCALLTYPE *add)(
        IVLCPlaylist* This,
        BSTR uri,
        VARIANT name,
        VARIANT options,
        int* item);

    HRESULT (STDMETHODCALLTYPE *play)(
        IVLCPlaylist* This);

    HRESULT (STDMETHODCALLTYPE *playItem)(
        IVLCPlaylist* This,
        int item);

    HRESULT (STDMETHODCALLTYPE *togglePause)(
        IVLCPlaylist* This);

    HRESULT (STDMETHODCALLTYPE *stop)(
        IVLCPlaylist* This);

    HRESULT (STDMETHODCALLTYPE *next)(
        IVLCPlaylist* This);

    HRESULT (STDMETHODCALLTYPE *prev)(
        IVLCPlaylist* This);

    HRESULT (STDMETHODCALLTYPE *clear)(
        IVLCPlaylist* This);

    HRESULT (STDMETHODCALLTYPE *removeItem)(
        IVLCPlaylist* This,
        int item);

    END_INTERFACE
} IVLCPlaylistVtbl;
interface IVLCPlaylist {
    const IVLCPlaylistVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IVLCPlaylist_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IVLCPlaylist_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IVLCPlaylist_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IVLCPlaylist_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IVLCPlaylist_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IVLCPlaylist_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IVLCPlaylist_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IVLCPlaylist methods ***/
#define IVLCPlaylist_get_itemCount(p,a) (p)->lpVtbl->get_itemCount(p,a)
#define IVLCPlaylist_get_isPlaying(p,a) (p)->lpVtbl->get_isPlaying(p,a)
#define IVLCPlaylist_add(p,a,b,c,d) (p)->lpVtbl->add(p,a,b,c,d)
#define IVLCPlaylist_play(p) (p)->lpVtbl->play(p)
#define IVLCPlaylist_playItem(p,a) (p)->lpVtbl->playItem(p,a)
#define IVLCPlaylist_togglePause(p) (p)->lpVtbl->togglePause(p)
#define IVLCPlaylist_stop(p) (p)->lpVtbl->stop(p)
#define IVLCPlaylist_next(p) (p)->lpVtbl->next(p)
#define IVLCPlaylist_prev(p) (p)->lpVtbl->prev(p)
#define IVLCPlaylist_clear(p) (p)->lpVtbl->clear(p)
#define IVLCPlaylist_removeItem(p,a) (p)->lpVtbl->removeItem(p,a)
#endif

#endif

HRESULT CALLBACK IVLCPlaylist_get_itemCount_Proxy(
    IVLCPlaylist* This,
    int* count);
void __RPC_STUB IVLCPlaylist_get_itemCount_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IVLCPlaylist_get_isPlaying_Proxy(
    IVLCPlaylist* This,
    VARIANT_BOOL* playing);
void __RPC_STUB IVLCPlaylist_get_isPlaying_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IVLCPlaylist_add_Proxy(
    IVLCPlaylist* This,
    BSTR uri,
    VARIANT name,
    VARIANT options,
    int* item);
void __RPC_STUB IVLCPlaylist_add_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IVLCPlaylist_play_Proxy(
    IVLCPlaylist* This);
void __RPC_STUB IVLCPlaylist_play_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IVLCPlaylist_playItem_Proxy(
    IVLCPlaylist* This,
    int item);
void __RPC_STUB IVLCPlaylist_playItem_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IVLCPlaylist_togglePause_Proxy(
    IVLCPlaylist* This);
void __RPC_STUB IVLCPlaylist_togglePause_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IVLCPlaylist_stop_Proxy(
    IVLCPlaylist* This);
void __RPC_STUB IVLCPlaylist_stop_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IVLCPlaylist_next_Proxy(
    IVLCPlaylist* This);
void __RPC_STUB IVLCPlaylist_next_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IVLCPlaylist_prev_Proxy(
    IVLCPlaylist* This);
void __RPC_STUB IVLCPlaylist_prev_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IVLCPlaylist_clear_Proxy(
    IVLCPlaylist* This);
void __RPC_STUB IVLCPlaylist_clear_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IVLCPlaylist_removeItem_Proxy(
    IVLCPlaylist* This,
    int item);
void __RPC_STUB IVLCPlaylist_removeItem_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IVLCPlaylist_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IVLCVideo interface
 */
#ifndef __IVLCVideo_INTERFACE_DEFINED__
#define __IVLCVideo_INTERFACE_DEFINED__

DEFINE_GUID(IID_IVLCVideo, 0x0aaedf0b, 0xd333, 0x4b27, 0xa0,0xc6, 0xbb,0xf3,0x14,0x13,0xa4,0x2e);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IVLCVideo : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_fullscreen(
        VARIANT_BOOL* fullscreen) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_fullscreen(
        VARIANT_BOOL fullscreen) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_width(
        int* width) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_height(
        int* height) = 0;

};
#else
typedef struct IVLCVideoVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IVLCVideo* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IVLCVideo* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IVLCVideo* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IVLCVideo* This,
        UINT* pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IVLCVideo* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo** ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IVLCVideo* This,
        REFIID riid,
        LPOLESTR* rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID* rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IVLCVideo* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS* pDispParams,
        VARIANT* pVarResult,
        EXCEPINFO* pExcepInfo,
        UINT* puArgErr);

    /*** IVLCVideo methods ***/
    HRESULT (STDMETHODCALLTYPE *get_fullscreen)(
        IVLCVideo* This,
        VARIANT_BOOL* fullscreen);

    HRESULT (STDMETHODCALLTYPE *put_fullscreen)(
        IVLCVideo* This,
        VARIANT_BOOL fullscreen);

    HRESULT (STDMETHODCALLTYPE *get_width)(
        IVLCVideo* This,
        int* width);

    HRESULT (STDMETHODCALLTYPE *get_height)(
        IVLCVideo* This,
        int* height);

    END_INTERFACE
} IVLCVideoVtbl;
interface IVLCVideo {
    const IVLCVideoVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IVLCVideo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IVLCVideo_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IVLCVideo_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IVLCVideo_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IVLCVideo_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IVLCVideo_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IVLCVideo_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IVLCVideo methods ***/
#define IVLCVideo_get_fullscreen(p,a) (p)->lpVtbl->get_fullscreen(p,a)
#define IVLCVideo_put_fullscreen(p,a) (p)->lpVtbl->put_fullscreen(p,a)
#define IVLCVideo_get_width(p,a) (p)->lpVtbl->get_width(p,a)
#define IVLCVideo_get_height(p,a) (p)->lpVtbl->get_height(p,a)
#endif

#endif

HRESULT CALLBACK IVLCVideo_get_fullscreen_Proxy(
    IVLCVideo* This,
    VARIANT_BOOL* fullscreen);
void __RPC_STUB IVLCVideo_get_fullscreen_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IVLCVideo_put_fullscreen_Proxy(
    IVLCVideo* This,
    VARIANT_BOOL fullscreen);
void __RPC_STUB IVLCVideo_put_fullscreen_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IVLCVideo_get_width_Proxy(
    IVLCVideo* This,
    int* width);
void __RPC_STUB IVLCVideo_get_width_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IVLCVideo_get_height_Proxy(
    IVLCVideo* This,
    int* height);
void __RPC_STUB IVLCVideo_get_height_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IVLCVideo_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IVLCControl2 interface
 */
#ifndef __IVLCControl2_INTERFACE_DEFINED__
#define __IVLCControl2_INTERFACE_DEFINED__

DEFINE_GUID(IID_IVLCControl2, 0x2d719729, 0x5333, 0x406c, 0xbf,0x12, 0x8d,0xe7,0x87,0xfd,0x65,0xe3);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IVLCControl2 : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_audio(
        IVLCAudio** obj) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_input(
        IVLCInput** obj) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_playlist(
        IVLCPlaylist** obj) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_video(
        IVLCVideo** obj) = 0;

};
#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_audio)(
        IVLCControl2* This,
        IVLCAudio** obj);

    HRESULT (STDMETHODCALLTYPE *get_input)(
        IVLCControl2* This,
        IVLCInput** obj);

    HRESULT (STDMETHODCALLTYPE *get_playlist)(
        IVLCControl2* This,
        IVLCPlaylist** obj);

    HRESULT (STDMETHODCALLTYPE *get_video)(
        IVLCControl2* This,
        IVLCVideo** obj);

    END_INTERFACE
} IVLCControl2Vtbl;
interface IVLCControl2 {
    const IVLCControl2Vtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IVLCControl2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IVLCControl2_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IVLCControl2_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IVLCControl2_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IVLCControl2_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IVLCControl2_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IVLCControl2_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IVLCControl2 methods ***/
#define IVLCControl2_get_audio(p,a) (p)->lpVtbl->get_audio(p,a)
#define IVLCControl2_get_input(p,a) (p)->lpVtbl->get_input(p,a)
#define IVLCControl2_get_playlist(p,a) (p)->lpVtbl->get_playlist(p,a)
#define IVLCControl2_get_video(p,a) (p)->lpVtbl->get_video(p,a)
#endif

#endif

HRESULT CALLBACK IVLCControl2_get_audio_Proxy(
    IVLCControl2* This,
    IVLCAudio** obj);
void __RPC_STUB IVLCControl2_get_audio_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IVLCControl2_get_input_Proxy(
    IVLCControl2* This,
    IVLCInput** obj);
void __RPC_STUB IVLCControl2_get_input_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IVLCControl2_get_playlist_Proxy(
    IVLCControl2* This,
    IVLCPlaylist** obj);
void __RPC_STUB IVLCControl2_get_playlist_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IVLCControl2_get_video_Proxy(
    IVLCControl2* This,
    IVLCVideo** obj);
void __RPC_STUB IVLCControl2_get_video_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IVLCControl2_INTERFACE_DEFINED__ */

/*****************************************************************************
 * VLCPlugin coclass
 */

DEFINE_GUID(CLSID_VLCPlugin, 0xe23fe9c6, 0x778e, 0x49d4, 0xb5,0x37, 0x38,0xfc,0xde,0x48,0x87,0xd8);

#ifndef __VLCPlugin_FWD_DEFINED__
#define __VLCPlugin_FWD_DEFINED__
typedef struct VLCPlugin VLCPlugin;
#endif /* defined __VLCPlugin_FWD_DEFINED__ */

/*****************************************************************************
 * VLCPlugin2 coclass
 */

DEFINE_GUID(CLSID_VLCPlugin2, 0x9be31822, 0xfdad, 0x461b, 0xad,0x51, 0xbe,0x1d,0x1c,0x15,0x99,0x21);

#ifndef __VLCPlugin2_FWD_DEFINED__
#define __VLCPlugin2_FWD_DEFINED__
typedef struct VLCPlugin2 VLCPlugin2;
#endif /* defined __VLCPlugin2_FWD_DEFINED__ */

/* Begin additional prototypes for all interfaces */

unsigned long   __RPC_USER VARIANT_UserSize     (unsigned long *, unsigned long,   VARIANT *);
unsigned char * __RPC_USER VARIANT_UserMarshal  (unsigned long *, unsigned char *, VARIANT *);
unsigned char * __RPC_USER VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT *);
void            __RPC_USER VARIANT_UserFree     (unsigned long *, VARIANT *);
unsigned long   __RPC_USER BSTR_UserSize     (unsigned long *, unsigned long,   BSTR *);
unsigned char * __RPC_USER BSTR_UserMarshal  (unsigned long *, unsigned char *, BSTR *);
unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR *);
void            __RPC_USER BSTR_UserFree     (unsigned long *, BSTR *);

/* End additional prototypes */

#ifdef __cplusplus
}
#endif
#endif /* __WIDL_AXVLC_IDL_H */
