-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
-/* File created by MIDL compiler version 5.01.0164 */
-/* at Sun Apr 02 19:22:45 2006
- */
-/* Compiler settings for axvlc.idl:
- Oicf (OptLev=i2), W1, Zp8, env=Win32, ms_ext, c_ext
- error checks: allocation ref bounds_check enum stub_data
-*/
-//@@MIDL_FILE_HEADING( )
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 440
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __axvlc_idl_h__
-#define __axvlc_idl_h__
+/*** Autogenerated by WIDL 0.9.20 from axvlc.idl - Do not edit ***/
+#include <rpc.h>
+#include <rpcndr.h>
+#ifndef __WIDL_AXVLC_IDL_H
+#define __WIDL_AXVLC_IDL_H
#ifdef __cplusplus
-extern "C"{
-#endif
+extern "C" {
+#endif
+#include <oaidl.h>
-/* Forward Declarations */
+DEFINE_GUID(LIBID_AXVLC, 0xdf2bbe39, 0x40a8, 0x433b, 0xa2,0x79, 0x07,0x3f,0x48,0xda,0x94,0xb6);
#ifndef __IVLCControl_FWD_DEFINED__
#define __IVLCControl_FWD_DEFINED__
typedef interface IVLCControl IVLCControl;
-#endif /* __IVLCControl_FWD_DEFINED__ */
+#endif
+#ifndef __IVLCPlaylist_FWD_DEFINED__
+#define __IVLCPlaylist_FWD_DEFINED__
+typedef interface IVLCPlaylist IVLCPlaylist;
+#endif
+
+#ifndef __ILibVLCControl_FWD_DEFINED__
+#define __ILibVLCControl_FWD_DEFINED__
+typedef interface ILibVLCControl ILibVLCControl;
+#endif
#ifndef __DVLCEvents_FWD_DEFINED__
#define __DVLCEvents_FWD_DEFINED__
typedef interface DVLCEvents DVLCEvents;
-#endif /* __DVLCEvents_FWD_DEFINED__ */
-
-
-#ifndef __VLCPlugin_FWD_DEFINED__
-#define __VLCPlugin_FWD_DEFINED__
-
-#ifdef __cplusplus
-typedef class VLCPlugin VLCPlugin;
-#else
-typedef struct VLCPlugin VLCPlugin;
-#endif /* __cplusplus */
-
-#endif /* __VLCPlugin_FWD_DEFINED__ */
-
-
-void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
-void __RPC_USER MIDL_user_free( void __RPC_FAR * );
-
-
-#ifndef __AXVLC_LIBRARY_DEFINED__
-#define __AXVLC_LIBRARY_DEFINED__
-
-/* library AXVLC */
-/* [helpstring][version][uuid] */
-
-
-
-
-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 )
+#endif
-#define DISPID_Time ( 103 )
+enum VLCPlaylistMode {
+ VLCPlayListInsert = 1,
+ VLCPlayListInsertAndGo = 9,
+ VLCPlayListReplace = 2,
+ VLCPlayListReplaceAndGo = 10,
+ VLCPlayListAppend = 4,
+ VLCPlayListAppendAndGo = 12,
+ VLCPlayListCheckInsert = 16
+};
-#define DISPID_Length ( 104 )
+#define VLCPlayListEnd (-666)
-#define DISPID_Volume ( 105 )
+#define DISPID_Visible (100)
-#define DISPID_MRL ( 106 )
+#define DISPID_Playing (101)
-#define DISPID_AutoPlay ( 107 )
+#define DISPID_Position (102)
-#define DISPID_AutoLoop ( 108 )
+#define DISPID_Time (103)
-#define DISPID_PlayEvent ( 100 )
+#define DISPID_Length (104)
-#define DISPID_PauseEvent ( 101 )
+#define DISPID_Volume (105)
-#define DISPID_StopEvent ( 102 )
+#define DISPID_MRL (106)
+#define DISPID_AutoPlay (107)
-EXTERN_C const IID LIBID_AXVLC;
+#define DISPID_AutoLoop (108)
+/*****************************************************************************
+ * IVLCControl interface
+ */
#ifndef __IVLCControl_INTERFACE_DEFINED__
#define __IVLCControl_INTERFACE_DEFINED__
-/* interface IVLCControl */
-/* [object][oleautomation][hidden][dual][helpstring][uuid] */
-
-
-EXTERN_C const IID IID_IVLCControl;
-
+DEFINE_GUID(IID_IVLCControl, 0xc2fa41d0, 0xb113, 0x476e, 0xac,0x8c, 0x9b,0xd1,0x49,0x99,0xc1,0xc1);
#if defined(__cplusplus) && !defined(CINTERFACE)
-
- MIDL_INTERFACE("C2FA41D0-B113-476e-AC8C-9BD14999C1C1")
- IVLCControl : public IDispatch
- {
- public:
- virtual /* [helpstring][bindable][propget][id] */ HRESULT STDMETHODCALLTYPE get_Visible(
- /* [retval][out] */ VARIANT_BOOL __RPC_FAR *visible) = 0;
-
- virtual /* [helpstring][bindable][propput][id] */ HRESULT STDMETHODCALLTYPE put_Visible(
- /* [in] */ VARIANT_BOOL visible) = 0;
-
- virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE play( void) = 0;
-
- virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE pause( void) = 0;
-
- virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE stop( void) = 0;
-
- virtual /* [helpstring][propget][hidden][id] */ HRESULT STDMETHODCALLTYPE get_Playing(
- /* [retval][out] */ VARIANT_BOOL __RPC_FAR *isPlaying) = 0;
-
- virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Position(
- /* [retval][out] */ float __RPC_FAR *position) = 0;
-
- virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Position(
- /* [in] */ float position) = 0;
-
- virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Time(
- /* [retval][out] */ int __RPC_FAR *seconds) = 0;
-
- virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Time(
- /* [in] */ int seconds) = 0;
-
- virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE shuttle(
- /* [in] */ int seconds) = 0;
-
- virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE fullscreen( void) = 0;
-
- virtual /* [helpstring][hidden][propget][id] */ HRESULT STDMETHODCALLTYPE get_Length(
- /* [retval][out] */ int __RPC_FAR *seconds) = 0;
-
- virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE playFaster( void) = 0;
-
- virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE playSlower( void) = 0;
-
- virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Volume(
- /* [retval][out] */ int __RPC_FAR *volume) = 0;
-
- virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Volume(
- /* [in] */ int volume) = 0;
-
- virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE toggleMute( void) = 0;
-
- virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE setVariable(
- /* [in] */ BSTR name,
- /* [in] */ VARIANT value) = 0;
-
- virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE getVariable(
- /* [in] */ BSTR name,
- /* [retval][out] */ VARIANT __RPC_FAR *value) = 0;
-
- virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE addTarget(
- /* [in] */ BSTR uri,
- /* [in] */ VARIANT options,
- /* [in] */ enum VLCPlaylistMode mode,
- /* [in] */ int position) = 0;
-
- virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_PlaylistIndex(
- /* [retval][out] */ int __RPC_FAR *index) = 0;
-
- virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_PlaylistCount(
- /* [retval][out] */ int __RPC_FAR *index) = 0;
-
- virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE playlistNext( void) = 0;
-
- virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE playlistPrev( void) = 0;
-
- virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE playlistClear( void) = 0;
-
- virtual /* [helpstring][hidden][propget] */ HRESULT STDMETHODCALLTYPE get_VersionInfo(
- /* [retval][out] */ BSTR __RPC_FAR *version) = 0;
-
- virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_MRL(
- /* [retval][out] */ BSTR __RPC_FAR *mrl) = 0;
-
- virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_MRL(
- /* [in] */ BSTR mrl) = 0;
-
- virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AutoPlay(
- /* [retval][out] */ VARIANT_BOOL __RPC_FAR *autoplay) = 0;
-
- virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AutoPlay(
- /* [in] */ VARIANT_BOOL autoplay) = 0;
-
- virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AutoLoop(
- /* [retval][out] */ VARIANT_BOOL __RPC_FAR *autoloop) = 0;
-
- virtual /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AutoLoop(
- /* [in] */ VARIANT_BOOL autoloop) = 0;
-
- };
-
-#else /* C style interface */
-
- typedef struct IVLCControlVtbl
- {
- BEGIN_INTERFACE
-
- HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
- IVLCControl __RPC_FAR * This,
- /* [in] */ REFIID riid,
- /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
-
- ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
- IVLCControl __RPC_FAR * This);
-
- ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
- IVLCControl __RPC_FAR * This);
-
- HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfoCount )(
- IVLCControl __RPC_FAR * This,
- /* [out] */ UINT __RPC_FAR *pctinfo);
-
- HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfo )(
- IVLCControl __RPC_FAR * This,
- /* [in] */ UINT iTInfo,
- /* [in] */ LCID lcid,
- /* [out] */ ITypeInfo __RPC_FAR *__RPC_FAR *ppTInfo);
-
- HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetIDsOfNames )(
- IVLCControl __RPC_FAR * This,
- /* [in] */ REFIID riid,
- /* [size_is][in] */ LPOLESTR __RPC_FAR *rgszNames,
- /* [in] */ UINT cNames,
- /* [in] */ LCID lcid,
- /* [size_is][out] */ DISPID __RPC_FAR *rgDispId);
-
- /* [local] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Invoke )(
- IVLCControl __RPC_FAR * This,
- /* [in] */ DISPID dispIdMember,
- /* [in] */ REFIID riid,
- /* [in] */ LCID lcid,
- /* [in] */ WORD wFlags,
- /* [out][in] */ DISPPARAMS __RPC_FAR *pDispParams,
- /* [out] */ VARIANT __RPC_FAR *pVarResult,
- /* [out] */ EXCEPINFO __RPC_FAR *pExcepInfo,
- /* [out] */ UINT __RPC_FAR *puArgErr);
-
- /* [helpstring][bindable][propget][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Visible )(
- IVLCControl __RPC_FAR * This,
- /* [retval][out] */ VARIANT_BOOL __RPC_FAR *visible);
-
- /* [helpstring][bindable][propput][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *put_Visible )(
- IVLCControl __RPC_FAR * This,
- /* [in] */ VARIANT_BOOL visible);
-
- /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *play )(
- IVLCControl __RPC_FAR * This);
-
- /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *pause )(
- IVLCControl __RPC_FAR * This);
-
- /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *stop )(
- IVLCControl __RPC_FAR * This);
-
- /* [helpstring][propget][hidden][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Playing )(
- IVLCControl __RPC_FAR * This,
- /* [retval][out] */ VARIANT_BOOL __RPC_FAR *isPlaying);
-
- /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Position )(
- IVLCControl __RPC_FAR * This,
- /* [retval][out] */ float __RPC_FAR *position);
-
- /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *put_Position )(
- IVLCControl __RPC_FAR * This,
- /* [in] */ float position);
-
- /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Time )(
- IVLCControl __RPC_FAR * This,
- /* [retval][out] */ int __RPC_FAR *seconds);
-
- /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *put_Time )(
- IVLCControl __RPC_FAR * This,
- /* [in] */ int seconds);
-
- /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *shuttle )(
- IVLCControl __RPC_FAR * This,
- /* [in] */ int seconds);
-
- /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *fullscreen )(
- IVLCControl __RPC_FAR * This);
-
- /* [helpstring][hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Length )(
- IVLCControl __RPC_FAR * This,
- /* [retval][out] */ int __RPC_FAR *seconds);
-
- /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *playFaster )(
- IVLCControl __RPC_FAR * This);
-
- /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *playSlower )(
- IVLCControl __RPC_FAR * This);
-
- /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Volume )(
- IVLCControl __RPC_FAR * This,
- /* [retval][out] */ int __RPC_FAR *volume);
-
- /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *put_Volume )(
- IVLCControl __RPC_FAR * This,
- /* [in] */ int volume);
-
- /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *toggleMute )(
- IVLCControl __RPC_FAR * This);
-
- /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *setVariable )(
- IVLCControl __RPC_FAR * This,
- /* [in] */ BSTR name,
- /* [in] */ VARIANT value);
-
- /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *getVariable )(
- IVLCControl __RPC_FAR * This,
- /* [in] */ BSTR name,
- /* [retval][out] */ VARIANT __RPC_FAR *value);
-
- /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *addTarget )(
- IVLCControl __RPC_FAR * This,
- /* [in] */ BSTR uri,
- /* [in] */ VARIANT options,
- /* [in] */ enum VLCPlaylistMode mode,
- /* [in] */ int position);
-
- /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_PlaylistIndex )(
- IVLCControl __RPC_FAR * This,
- /* [retval][out] */ int __RPC_FAR *index);
-
- /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_PlaylistCount )(
- IVLCControl __RPC_FAR * This,
- /* [retval][out] */ int __RPC_FAR *index);
-
- /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *playlistNext )(
- IVLCControl __RPC_FAR * This);
-
- /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *playlistPrev )(
- IVLCControl __RPC_FAR * This);
-
- /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *playlistClear )(
- IVLCControl __RPC_FAR * This);
-
- /* [helpstring][hidden][propget] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_VersionInfo )(
- IVLCControl __RPC_FAR * This,
- /* [retval][out] */ BSTR __RPC_FAR *version);
-
- /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_MRL )(
- IVLCControl __RPC_FAR * This,
- /* [retval][out] */ BSTR __RPC_FAR *mrl);
-
- /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *put_MRL )(
- IVLCControl __RPC_FAR * This,
- /* [in] */ BSTR mrl);
-
- /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_AutoPlay )(
- IVLCControl __RPC_FAR * This,
- /* [retval][out] */ VARIANT_BOOL __RPC_FAR *autoplay);
-
- /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *put_AutoPlay )(
- IVLCControl __RPC_FAR * This,
- /* [in] */ VARIANT_BOOL autoplay);
-
- /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_AutoLoop )(
- IVLCControl __RPC_FAR * This,
- /* [retval][out] */ VARIANT_BOOL __RPC_FAR *autoloop);
-
- /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *put_AutoLoop )(
- IVLCControl __RPC_FAR * This,
- /* [in] */ VARIANT_BOOL autoloop);
-
- END_INTERFACE
- } IVLCControlVtbl;
-
- interface IVLCControl
- {
- CONST_VTBL struct IVLCControlVtbl __RPC_FAR *lpVtbl;
- };
-
-
-
-#ifdef COBJMACROS
-
-
-#define IVLCControl_QueryInterface(This,riid,ppvObject) \
- (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
-
-#define IVLCControl_AddRef(This) \
- (This)->lpVtbl -> AddRef(This)
+interface IVLCControl : public IDispatch
+{
+ virtual HRESULT STDMETHODCALLTYPE get_Visible(
+ VARIANT_BOOL* visible) = 0;
-#define IVLCControl_Release(This) \
- (This)->lpVtbl -> Release(This)
+ virtual HRESULT STDMETHODCALLTYPE put_Visible(
+ VARIANT_BOOL visible) = 0;
+ virtual HRESULT STDMETHODCALLTYPE play(
+ ) = 0;
-#define IVLCControl_GetTypeInfoCount(This,pctinfo) \
- (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+ virtual HRESULT STDMETHODCALLTYPE pause(
+ ) = 0;
-#define IVLCControl_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
- (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+ virtual HRESULT STDMETHODCALLTYPE stop(
+ ) = 0;
-#define IVLCControl_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
- (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+ virtual HRESULT STDMETHODCALLTYPE get_Playing(
+ VARIANT_BOOL* isPlaying) = 0;
-#define IVLCControl_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
- (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+ virtual HRESULT STDMETHODCALLTYPE get_Position(
+ float* position) = 0;
+ virtual HRESULT STDMETHODCALLTYPE put_Position(
+ float position) = 0;
-#define IVLCControl_get_Visible(This,visible) \
- (This)->lpVtbl -> get_Visible(This,visible)
+ virtual HRESULT STDMETHODCALLTYPE get_Time(
+ int* seconds) = 0;
-#define IVLCControl_put_Visible(This,visible) \
- (This)->lpVtbl -> put_Visible(This,visible)
+ virtual HRESULT STDMETHODCALLTYPE put_Time(
+ int seconds) = 0;
-#define IVLCControl_play(This) \
- (This)->lpVtbl -> play(This)
+ virtual HRESULT STDMETHODCALLTYPE shuttle(
+ int seconds) = 0;
-#define IVLCControl_pause(This) \
- (This)->lpVtbl -> pause(This)
+ virtual HRESULT STDMETHODCALLTYPE fullscreen(
+ ) = 0;
-#define IVLCControl_stop(This) \
- (This)->lpVtbl -> stop(This)
+ virtual HRESULT STDMETHODCALLTYPE get_Length(
+ int* seconds) = 0;
-#define IVLCControl_get_Playing(This,isPlaying) \
- (This)->lpVtbl -> get_Playing(This,isPlaying)
+ virtual HRESULT STDMETHODCALLTYPE playFaster(
+ ) = 0;
-#define IVLCControl_get_Position(This,position) \
- (This)->lpVtbl -> get_Position(This,position)
+ virtual HRESULT STDMETHODCALLTYPE playSlower(
+ ) = 0;
-#define IVLCControl_put_Position(This,position) \
- (This)->lpVtbl -> put_Position(This,position)
+ virtual HRESULT STDMETHODCALLTYPE get_Volume(
+ int* volume) = 0;
-#define IVLCControl_get_Time(This,seconds) \
- (This)->lpVtbl -> get_Time(This,seconds)
+ virtual HRESULT STDMETHODCALLTYPE put_Volume(
+ int volume) = 0;
-#define IVLCControl_put_Time(This,seconds) \
- (This)->lpVtbl -> put_Time(This,seconds)
+ virtual HRESULT STDMETHODCALLTYPE toggleMute(
+ ) = 0;
-#define IVLCControl_shuttle(This,seconds) \
- (This)->lpVtbl -> shuttle(This,seconds)
+ virtual HRESULT STDMETHODCALLTYPE setVariable(
+ BSTR name,
+ VARIANT value) = 0;
-#define IVLCControl_fullscreen(This) \
- (This)->lpVtbl -> fullscreen(This)
+ virtual HRESULT STDMETHODCALLTYPE getVariable(
+ BSTR name,
+ VARIANT* value) = 0;
-#define IVLCControl_get_Length(This,seconds) \
- (This)->lpVtbl -> get_Length(This,seconds)
+ virtual HRESULT STDMETHODCALLTYPE addTarget(
+ BSTR uri,
+ VARIANT options,
+ enum VLCPlaylistMode mode,
+ int position) = 0;
-#define IVLCControl_playFaster(This) \
- (This)->lpVtbl -> playFaster(This)
+ virtual HRESULT STDMETHODCALLTYPE get_PlaylistIndex(
+ int* index) = 0;
-#define IVLCControl_playSlower(This) \
- (This)->lpVtbl -> playSlower(This)
+ virtual HRESULT STDMETHODCALLTYPE get_PlaylistCount(
+ int* index) = 0;
-#define IVLCControl_get_Volume(This,volume) \
- (This)->lpVtbl -> get_Volume(This,volume)
+ virtual HRESULT STDMETHODCALLTYPE playlistNext(
+ ) = 0;
-#define IVLCControl_put_Volume(This,volume) \
- (This)->lpVtbl -> put_Volume(This,volume)
+ virtual HRESULT STDMETHODCALLTYPE playlistPrev(
+ ) = 0;
-#define IVLCControl_toggleMute(This) \
- (This)->lpVtbl -> toggleMute(This)
+ virtual HRESULT STDMETHODCALLTYPE playlistClear(
+ ) = 0;
-#define IVLCControl_setVariable(This,name,value) \
- (This)->lpVtbl -> setVariable(This,name,value)
+ virtual HRESULT STDMETHODCALLTYPE get_VersionInfo(
+ BSTR* version) = 0;
-#define IVLCControl_getVariable(This,name,value) \
- (This)->lpVtbl -> getVariable(This,name,value)
+ virtual HRESULT STDMETHODCALLTYPE get_MRL(
+ BSTR* mrl) = 0;
-#define IVLCControl_addTarget(This,uri,options,mode,position) \
- (This)->lpVtbl -> addTarget(This,uri,options,mode,position)
+ virtual HRESULT STDMETHODCALLTYPE put_MRL(
+ BSTR mrl) = 0;
-#define IVLCControl_get_PlaylistIndex(This,index) \
- (This)->lpVtbl -> get_PlaylistIndex(This,index)
+ virtual HRESULT STDMETHODCALLTYPE get_AutoPlay(
+ VARIANT_BOOL* autoplay) = 0;
-#define IVLCControl_get_PlaylistCount(This,index) \
- (This)->lpVtbl -> get_PlaylistCount(This,index)
+ virtual HRESULT STDMETHODCALLTYPE put_AutoPlay(
+ VARIANT_BOOL autoplay) = 0;
-#define IVLCControl_playlistNext(This) \
- (This)->lpVtbl -> playlistNext(This)
+ virtual HRESULT STDMETHODCALLTYPE get_AutoLoop(
+ VARIANT_BOOL* autoloop) = 0;
-#define IVLCControl_playlistPrev(This) \
- (This)->lpVtbl -> playlistPrev(This)
+ virtual HRESULT STDMETHODCALLTYPE put_AutoLoop(
+ VARIANT_BOOL autoloop) = 0;
-#define IVLCControl_playlistClear(This) \
- (This)->lpVtbl -> playlistClear(This)
-
-#define IVLCControl_get_VersionInfo(This,version) \
- (This)->lpVtbl -> get_VersionInfo(This,version)
-
-#define IVLCControl_get_MRL(This,mrl) \
- (This)->lpVtbl -> get_MRL(This,mrl)
+};
+#else
+typedef struct IVLCControlVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IVLCControl* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IVLCControl* This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IVLCControl* This);
+
+ /*** IDispatch methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+ IVLCControl* This,
+ UINT* pctinfo);
+
+ HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+ IVLCControl* This,
+ UINT iTInfo,
+ LCID lcid,
+ ITypeInfo** ppTInfo);
+
+ HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+ IVLCControl* This,
+ REFIID riid,
+ LPOLESTR* rgszNames,
+ UINT cNames,
+ LCID lcid,
+ DISPID* rgDispId);
+
+ HRESULT (STDMETHODCALLTYPE *Invoke)(
+ IVLCControl* This,
+ DISPID dispIdMember,
+ REFIID riid,
+ LCID lcid,
+ WORD wFlags,
+ DISPPARAMS* pDispParams,
+ VARIANT* pVarResult,
+ EXCEPINFO* pExcepInfo,
+ UINT* puArgErr);
+
+ /*** IVLCControl methods ***/
+ HRESULT (STDMETHODCALLTYPE *get_Visible)(
+ IVLCControl* This,
+ VARIANT_BOOL* visible);
+
+ HRESULT (STDMETHODCALLTYPE *put_Visible)(
+ IVLCControl* This,
+ VARIANT_BOOL visible);
+
+ HRESULT (STDMETHODCALLTYPE *play)(
+ IVLCControl* This);
+
+ HRESULT (STDMETHODCALLTYPE *pause)(
+ IVLCControl* This);
+
+ HRESULT (STDMETHODCALLTYPE *stop)(
+ IVLCControl* This);
+
+ HRESULT (STDMETHODCALLTYPE *get_Playing)(
+ IVLCControl* This,
+ VARIANT_BOOL* isPlaying);
+
+ HRESULT (STDMETHODCALLTYPE *get_Position)(
+ IVLCControl* This,
+ float* position);
+
+ HRESULT (STDMETHODCALLTYPE *put_Position)(
+ IVLCControl* This,
+ float position);
+
+ HRESULT (STDMETHODCALLTYPE *get_Time)(
+ IVLCControl* This,
+ int* seconds);
+
+ HRESULT (STDMETHODCALLTYPE *put_Time)(
+ IVLCControl* This,
+ int seconds);
+
+ HRESULT (STDMETHODCALLTYPE *shuttle)(
+ IVLCControl* This,
+ int seconds);
+
+ HRESULT (STDMETHODCALLTYPE *fullscreen)(
+ IVLCControl* This);
+
+ HRESULT (STDMETHODCALLTYPE *get_Length)(
+ IVLCControl* This,
+ int* seconds);
+
+ HRESULT (STDMETHODCALLTYPE *playFaster)(
+ IVLCControl* This);
+
+ HRESULT (STDMETHODCALLTYPE *playSlower)(
+ IVLCControl* This);
+
+ HRESULT (STDMETHODCALLTYPE *get_Volume)(
+ IVLCControl* This,
+ int* volume);
+
+ HRESULT (STDMETHODCALLTYPE *put_Volume)(
+ IVLCControl* This,
+ int volume);
+
+ HRESULT (STDMETHODCALLTYPE *toggleMute)(
+ IVLCControl* This);
+
+ HRESULT (STDMETHODCALLTYPE *setVariable)(
+ IVLCControl* This,
+ BSTR name,
+ VARIANT value);
+
+ HRESULT (STDMETHODCALLTYPE *getVariable)(
+ IVLCControl* This,
+ BSTR name,
+ VARIANT* value);
+
+ HRESULT (STDMETHODCALLTYPE *addTarget)(
+ IVLCControl* This,
+ BSTR uri,
+ VARIANT options,
+ enum VLCPlaylistMode mode,
+ int position);
+
+ HRESULT (STDMETHODCALLTYPE *get_PlaylistIndex)(
+ IVLCControl* This,
+ int* index);
+
+ HRESULT (STDMETHODCALLTYPE *get_PlaylistCount)(
+ IVLCControl* This,
+ int* index);
+
+ HRESULT (STDMETHODCALLTYPE *playlistNext)(
+ IVLCControl* This);
-#define IVLCControl_put_MRL(This,mrl) \
- (This)->lpVtbl -> put_MRL(This,mrl)
+ HRESULT (STDMETHODCALLTYPE *playlistPrev)(
+ IVLCControl* This);
-#define IVLCControl_get_AutoPlay(This,autoplay) \
- (This)->lpVtbl -> get_AutoPlay(This,autoplay)
+ HRESULT (STDMETHODCALLTYPE *playlistClear)(
+ IVLCControl* This);
-#define IVLCControl_put_AutoPlay(This,autoplay) \
- (This)->lpVtbl -> put_AutoPlay(This,autoplay)
+ HRESULT (STDMETHODCALLTYPE *get_VersionInfo)(
+ IVLCControl* This,
+ BSTR* version);
-#define IVLCControl_get_AutoLoop(This,autoloop) \
- (This)->lpVtbl -> get_AutoLoop(This,autoloop)
+ HRESULT (STDMETHODCALLTYPE *get_MRL)(
+ IVLCControl* This,
+ BSTR* mrl);
-#define IVLCControl_put_AutoLoop(This,autoloop) \
- (This)->lpVtbl -> put_AutoLoop(This,autoloop)
+ HRESULT (STDMETHODCALLTYPE *put_MRL)(
+ IVLCControl* This,
+ BSTR mrl);
-#endif /* COBJMACROS */
+ HRESULT (STDMETHODCALLTYPE *get_AutoPlay)(
+ IVLCControl* This,
+ VARIANT_BOOL* autoplay);
+ HRESULT (STDMETHODCALLTYPE *put_AutoPlay)(
+ IVLCControl* This,
+ VARIANT_BOOL autoplay);
-#endif /* C style interface */
+ HRESULT (STDMETHODCALLTYPE *get_AutoLoop)(
+ IVLCControl* This,
+ VARIANT_BOOL* autoloop);
+ HRESULT (STDMETHODCALLTYPE *put_AutoLoop)(
+ IVLCControl* This,
+ VARIANT_BOOL autoloop);
+ END_INTERFACE
+} IVLCControlVtbl;
+interface IVLCControl {
+ const IVLCControlVtbl* lpVtbl;
+};
-/* [helpstring][bindable][propget][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_Visible_Proxy(
- IVLCControl __RPC_FAR * This,
- /* [retval][out] */ VARIANT_BOOL __RPC_FAR *visible);
+#ifdef COBJMACROS
+/*** IUnknown methods ***/
+#define IVLCControl_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IVLCControl_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IVLCControl_Release(p) (p)->lpVtbl->Release(p)
+/*** IDispatch methods ***/
+#define IVLCControl_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
+#define IVLCControl_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
+#define IVLCControl_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
+#define IVLCControl_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
+/*** IVLCControl methods ***/
+#define IVLCControl_get_Visible(p,a) (p)->lpVtbl->get_Visible(p,a)
+#define IVLCControl_put_Visible(p,a) (p)->lpVtbl->put_Visible(p,a)
+#define IVLCControl_play(p) (p)->lpVtbl->play(p)
+#define IVLCControl_pause(p) (p)->lpVtbl->pause(p)
+#define IVLCControl_stop(p) (p)->lpVtbl->stop(p)
+#define IVLCControl_get_Playing(p,a) (p)->lpVtbl->get_Playing(p,a)
+#define IVLCControl_get_Position(p,a) (p)->lpVtbl->get_Position(p,a)
+#define IVLCControl_put_Position(p,a) (p)->lpVtbl->put_Position(p,a)
+#define IVLCControl_get_Time(p,a) (p)->lpVtbl->get_Time(p,a)
+#define IVLCControl_put_Time(p,a) (p)->lpVtbl->put_Time(p,a)
+#define IVLCControl_shuttle(p,a) (p)->lpVtbl->shuttle(p,a)
+#define IVLCControl_fullscreen(p) (p)->lpVtbl->fullscreen(p)
+#define IVLCControl_get_Length(p,a) (p)->lpVtbl->get_Length(p,a)
+#define IVLCControl_playFaster(p) (p)->lpVtbl->playFaster(p)
+#define IVLCControl_playSlower(p) (p)->lpVtbl->playSlower(p)
+#define IVLCControl_get_Volume(p,a) (p)->lpVtbl->get_Volume(p,a)
+#define IVLCControl_put_Volume(p,a) (p)->lpVtbl->put_Volume(p,a)
+#define IVLCControl_toggleMute(p) (p)->lpVtbl->toggleMute(p)
+#define IVLCControl_setVariable(p,a,b) (p)->lpVtbl->setVariable(p,a,b)
+#define IVLCControl_getVariable(p,a,b) (p)->lpVtbl->getVariable(p,a,b)
+#define IVLCControl_addTarget(p,a,b,c,d) (p)->lpVtbl->addTarget(p,a,b,c,d)
+#define IVLCControl_get_PlaylistIndex(p,a) (p)->lpVtbl->get_PlaylistIndex(p,a)
+#define IVLCControl_get_PlaylistCount(p,a) (p)->lpVtbl->get_PlaylistCount(p,a)
+#define IVLCControl_playlistNext(p) (p)->lpVtbl->playlistNext(p)
+#define IVLCControl_playlistPrev(p) (p)->lpVtbl->playlistPrev(p)
+#define IVLCControl_playlistClear(p) (p)->lpVtbl->playlistClear(p)
+#define IVLCControl_get_VersionInfo(p,a) (p)->lpVtbl->get_VersionInfo(p,a)
+#define IVLCControl_get_MRL(p,a) (p)->lpVtbl->get_MRL(p,a)
+#define IVLCControl_put_MRL(p,a) (p)->lpVtbl->put_MRL(p,a)
+#define IVLCControl_get_AutoPlay(p,a) (p)->lpVtbl->get_AutoPlay(p,a)
+#define IVLCControl_put_AutoPlay(p,a) (p)->lpVtbl->put_AutoPlay(p,a)
+#define IVLCControl_get_AutoLoop(p,a) (p)->lpVtbl->get_AutoLoop(p,a)
+#define IVLCControl_put_AutoLoop(p,a) (p)->lpVtbl->put_AutoLoop(p,a)
+#endif
+#endif
+HRESULT CALLBACK IVLCControl_get_Visible_Proxy(
+ IVLCControl* This,
+ VARIANT_BOOL* visible);
void __RPC_STUB IVLCControl_get_Visible_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
-
-
-/* [helpstring][bindable][propput][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_put_Visible_Proxy(
- IVLCControl __RPC_FAR * This,
- /* [in] */ VARIANT_BOOL visible);
-
-
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_put_Visible_Proxy(
+ IVLCControl* This,
+ VARIANT_BOOL visible);
void __RPC_STUB IVLCControl_put_Visible_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
-
-
-/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_play_Proxy(
- IVLCControl __RPC_FAR * This);
-
-
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_play_Proxy(
+ IVLCControl* This);
void __RPC_STUB IVLCControl_play_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
-
-
-/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_pause_Proxy(
- IVLCControl __RPC_FAR * This);
-
-
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_pause_Proxy(
+ IVLCControl* This);
void __RPC_STUB IVLCControl_pause_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
-
-
-/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_stop_Proxy(
- IVLCControl __RPC_FAR * This);
-
-
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_stop_Proxy(
+ IVLCControl* This);
void __RPC_STUB IVLCControl_stop_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
-
-
-/* [helpstring][propget][hidden][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_Playing_Proxy(
- IVLCControl __RPC_FAR * This,
- /* [retval][out] */ VARIANT_BOOL __RPC_FAR *isPlaying);
-
-
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_get_Playing_Proxy(
+ IVLCControl* This,
+ VARIANT_BOOL* isPlaying);
void __RPC_STUB IVLCControl_get_Playing_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
-
-
-/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_Position_Proxy(
- IVLCControl __RPC_FAR * This,
- /* [retval][out] */ float __RPC_FAR *position);
-
-
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_get_Position_Proxy(
+ IVLCControl* This,
+ float* position);
void __RPC_STUB IVLCControl_get_Position_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
-
-
-/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_put_Position_Proxy(
- IVLCControl __RPC_FAR * This,
- /* [in] */ float position);
-
-
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_put_Position_Proxy(
+ IVLCControl* This,
+ float position);
void __RPC_STUB IVLCControl_put_Position_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
-
-
-/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_Time_Proxy(
- IVLCControl __RPC_FAR * This,
- /* [retval][out] */ int __RPC_FAR *seconds);
-
-
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_get_Time_Proxy(
+ IVLCControl* This,
+ int* seconds);
void __RPC_STUB IVLCControl_get_Time_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
-
-
-/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_put_Time_Proxy(
- IVLCControl __RPC_FAR * This,
- /* [in] */ int seconds);
-
-
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_put_Time_Proxy(
+ IVLCControl* This,
+ int seconds);
void __RPC_STUB IVLCControl_put_Time_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
-
-
-/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_shuttle_Proxy(
- IVLCControl __RPC_FAR * This,
- /* [in] */ int seconds);
-
-
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_shuttle_Proxy(
+ IVLCControl* This,
+ int seconds);
void __RPC_STUB IVLCControl_shuttle_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
-
-
-/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_fullscreen_Proxy(
- IVLCControl __RPC_FAR * This);
-
-
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_fullscreen_Proxy(
+ IVLCControl* This);
void __RPC_STUB IVLCControl_fullscreen_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
-
-
-/* [helpstring][hidden][propget][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_Length_Proxy(
- IVLCControl __RPC_FAR * This,
- /* [retval][out] */ int __RPC_FAR *seconds);
-
-
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_get_Length_Proxy(
+ IVLCControl* This,
+ int* seconds);
void __RPC_STUB IVLCControl_get_Length_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
-
-
-/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_playFaster_Proxy(
- IVLCControl __RPC_FAR * This);
-
-
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_playFaster_Proxy(
+ IVLCControl* This);
void __RPC_STUB IVLCControl_playFaster_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
-
-
-/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_playSlower_Proxy(
- IVLCControl __RPC_FAR * This);
-
-
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_playSlower_Proxy(
+ IVLCControl* This);
void __RPC_STUB IVLCControl_playSlower_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
-
-
-/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_Volume_Proxy(
- IVLCControl __RPC_FAR * This,
- /* [retval][out] */ int __RPC_FAR *volume);
-
-
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_get_Volume_Proxy(
+ IVLCControl* This,
+ int* volume);
void __RPC_STUB IVLCControl_get_Volume_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
-
-
-/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_put_Volume_Proxy(
- IVLCControl __RPC_FAR * This,
- /* [in] */ int volume);
-
-
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_put_Volume_Proxy(
+ IVLCControl* This,
+ int volume);
void __RPC_STUB IVLCControl_put_Volume_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
-
-
-/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_toggleMute_Proxy(
- IVLCControl __RPC_FAR * This);
-
-
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_toggleMute_Proxy(
+ IVLCControl* This);
void __RPC_STUB IVLCControl_toggleMute_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
-
-
-/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_setVariable_Proxy(
- IVLCControl __RPC_FAR * This,
- /* [in] */ BSTR name,
- /* [in] */ VARIANT value);
-
-
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl_setVariable_Proxy(
+ IVLCControl* This,
+ BSTR name,
+ VARIANT value);
void __RPC_STUB IVLCControl_setVariable_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
-
-
-/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_getVariable_Proxy(
- IVLCControl __RPC_FAR * This,
- /* [in] */ BSTR name,
- /* [retval][out] */ VARIANT __RPC_FAR *value);
-
-
+ 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);
-
-
-/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_addTarget_Proxy(
- IVLCControl __RPC_FAR * This,
- /* [in] */ BSTR uri,
- /* [in] */ VARIANT options,
- /* [in] */ enum VLCPlaylistMode mode,
- /* [in] */ int position);
-
-
+ 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);
-
+ 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);
-/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_PlaylistIndex_Proxy(
- IVLCControl __RPC_FAR * This,
- /* [retval][out] */ int __RPC_FAR *index);
+#endif /* __IVLCControl_INTERFACE_DEFINED__ */
+#define DISPID_PlayEvent (100)
-void __RPC_STUB IVLCControl_get_PlaylistIndex_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
+#define DISPID_PauseEvent (101)
+#define DISPID_StopEvent (102)
-/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_PlaylistCount_Proxy(
- IVLCControl __RPC_FAR * This,
- /* [retval][out] */ int __RPC_FAR *index);
+/*****************************************************************************
+ * 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;
+};
-void __RPC_STUB IVLCControl_get_PlaylistCount_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
+#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
-/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_playlistNext_Proxy(
- IVLCControl __RPC_FAR * This);
+#endif /* __DVLCEvents_DISPINTERFACE_DEFINED__ */
+#ifndef __IVLCAudio_FWD_DEFINED__
+#define __IVLCAudio_FWD_DEFINED__
+typedef interface IVLCAudio IVLCAudio;
+#endif
-void __RPC_STUB IVLCControl_playlistNext_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
+/*****************************************************************************
+ * 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;
-/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_playlistPrev_Proxy(
- IVLCControl __RPC_FAR * This);
+ virtual HRESULT STDMETHODCALLTYPE put_mute(
+ VARIANT_BOOL muted) = 0;
+ virtual HRESULT STDMETHODCALLTYPE get_volume(
+ int* volume) = 0;
-void __RPC_STUB IVLCControl_playlistPrev_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
+ virtual HRESULT STDMETHODCALLTYPE put_volume(
+ int volume) = 0;
+ virtual HRESULT STDMETHODCALLTYPE toggleMute(
+ ) = 0;
-/* [helpstring] */ HRESULT STDMETHODCALLTYPE IVLCControl_playlistClear_Proxy(
- IVLCControl __RPC_FAR * This);
-
+};
+#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;
+};
-void __RPC_STUB IVLCControl_playlistClear_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
+#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
-/* [helpstring][hidden][propget] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_VersionInfo_Proxy(
- IVLCControl __RPC_FAR * This,
- /* [retval][out] */ BSTR __RPC_FAR *version);
+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__ */
+
+#ifndef __IVLCInput_FWD_DEFINED__
+#define __IVLCInput_FWD_DEFINED__
+typedef interface IVLCInput IVLCInput;
+#endif
+/*****************************************************************************
+ * IVLCInput interface
+ */
+#ifndef __IVLCInput_INTERFACE_DEFINED__
+#define __IVLCInput_INTERFACE_DEFINED__
-void __RPC_STUB IVLCControl_get_VersionInfo_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
+DEFINE_GUID(IID_IVLCInput, 0x49e0dbd1, 0x9440, 0x466c, 0x9c,0x97, 0x95,0xc6,0x71,0x90,0xc6,0x03);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+interface IVLCInput : public IDispatch
+{
+ virtual HRESULT STDMETHODCALLTYPE get_length(
+ __int64* length) = 0;
+ virtual HRESULT STDMETHODCALLTYPE get_position(
+ float* position) = 0;
-/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_MRL_Proxy(
- IVLCControl __RPC_FAR * This,
- /* [retval][out] */ BSTR __RPC_FAR *mrl);
+ virtual HRESULT STDMETHODCALLTYPE put_position(
+ float position) = 0;
+ virtual HRESULT STDMETHODCALLTYPE get_time(
+ __int64* time) = 0;
-void __RPC_STUB IVLCControl_get_MRL_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
+ virtual HRESULT STDMETHODCALLTYPE put_time(
+ __int64 time) = 0;
+ virtual HRESULT STDMETHODCALLTYPE get_state(
+ int* state) = 0;
-/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_put_MRL_Proxy(
- IVLCControl __RPC_FAR * This,
- /* [in] */ BSTR mrl);
+ virtual HRESULT STDMETHODCALLTYPE get_rate(
+ float* rate) = 0;
+ virtual HRESULT STDMETHODCALLTYPE put_rate(
+ float rate) = 0;
-void __RPC_STUB IVLCControl_put_MRL_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
+ virtual HRESULT STDMETHODCALLTYPE get_fps(
+ float* fps) = 0;
+ virtual HRESULT STDMETHODCALLTYPE get_hasVout(
+ VARIANT_BOOL* hasVout) = 0;
-/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_AutoPlay_Proxy(
- IVLCControl __RPC_FAR * This,
- /* [retval][out] */ VARIANT_BOOL __RPC_FAR *autoplay);
+};
+#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
-void __RPC_STUB IVLCControl_get_AutoPlay_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
+#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__
-/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_put_AutoPlay_Proxy(
- IVLCControl __RPC_FAR * This,
- /* [in] */ VARIANT_BOOL autoplay);
+DEFINE_GUID(IID_IVLCPlaylist, 0x54613049, 0x40bf, 0x4035, 0x9e,0x70, 0x0a,0x93,0x12,0xc0,0x18,0x8d);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+interface IVLCPlaylist : public IDispatch
+{
+ virtual HRESULT STDMETHODCALLTYPE get_itemCount(
+ int* count) = 0;
+ virtual HRESULT STDMETHODCALLTYPE get_isPlaying(
+ VARIANT_BOOL* playing) = 0;
-void __RPC_STUB IVLCControl_put_AutoPlay_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
+ virtual HRESULT STDMETHODCALLTYPE add(
+ BSTR uri,
+ BSTR name,
+ VARIANT options,
+ int* item) = 0;
+ virtual HRESULT STDMETHODCALLTYPE play(
+ ) = 0;
-/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_get_AutoLoop_Proxy(
- IVLCControl __RPC_FAR * This,
- /* [retval][out] */ VARIANT_BOOL __RPC_FAR *autoloop);
+ virtual HRESULT STDMETHODCALLTYPE playItem(
+ int item) = 0;
+ virtual HRESULT STDMETHODCALLTYPE togglePause(
+ ) = 0;
-void __RPC_STUB IVLCControl_get_AutoLoop_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
+ virtual HRESULT STDMETHODCALLTYPE stop(
+ ) = 0;
+ virtual HRESULT STDMETHODCALLTYPE next(
+ ) = 0;
-/* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE IVLCControl_put_AutoLoop_Proxy(
- IVLCControl __RPC_FAR * This,
- /* [in] */ VARIANT_BOOL autoloop);
+ virtual HRESULT STDMETHODCALLTYPE prev(
+ ) = 0;
+ virtual HRESULT STDMETHODCALLTYPE clear(
+ ) = 0;
-void __RPC_STUB IVLCControl_put_AutoLoop_Stub(
- IRpcStubBuffer *This,
- IRpcChannelBuffer *_pRpcChannelBuffer,
- PRPC_MESSAGE _pRpcMessage,
- DWORD *_pdwStubPhase);
+ virtual HRESULT STDMETHODCALLTYPE removeItem(
+ int item) = 0;
+};
+#else
+typedef struct IVLCPlaylistVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IVLCPlaylist* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IVLCPlaylist* This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IVLCPlaylist* This);
+
+ /*** IDispatch methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+ IVLCPlaylist* This,
+ UINT* pctinfo);
+
+ HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+ IVLCPlaylist* This,
+ UINT iTInfo,
+ LCID lcid,
+ ITypeInfo** ppTInfo);
+
+ HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+ IVLCPlaylist* This,
+ REFIID riid,
+ LPOLESTR* rgszNames,
+ UINT cNames,
+ LCID lcid,
+ DISPID* rgDispId);
+
+ HRESULT (STDMETHODCALLTYPE *Invoke)(
+ IVLCPlaylist* This,
+ DISPID dispIdMember,
+ REFIID riid,
+ LCID lcid,
+ WORD wFlags,
+ DISPPARAMS* pDispParams,
+ VARIANT* pVarResult,
+ EXCEPINFO* pExcepInfo,
+ UINT* puArgErr);
+
+ /*** IVLCPlaylist methods ***/
+ HRESULT (STDMETHODCALLTYPE *get_itemCount)(
+ IVLCPlaylist* This,
+ int* count);
+
+ HRESULT (STDMETHODCALLTYPE *get_isPlaying)(
+ IVLCPlaylist* This,
+ VARIANT_BOOL* playing);
+
+ HRESULT (STDMETHODCALLTYPE *add)(
+ IVLCPlaylist* This,
+ BSTR uri,
+ BSTR 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 /* __IVLCControl_INTERFACE_DEFINED__ */
+#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,
+ BSTR 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__ */
+
+#ifndef __IVLCVideo_FWD_DEFINED__
+#define __IVLCVideo_FWD_DEFINED__
+typedef interface IVLCVideo IVLCVideo;
+#endif
-#ifndef __DVLCEvents_DISPINTERFACE_DEFINED__
-#define __DVLCEvents_DISPINTERFACE_DEFINED__
+/*****************************************************************************
+ * IVLCVideo interface
+ */
+#ifndef __IVLCVideo_INTERFACE_DEFINED__
+#define __IVLCVideo_INTERFACE_DEFINED__
-/* dispinterface DVLCEvents */
-/* [hidden][helpstring][uuid] */
+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;
-EXTERN_C const IID DIID_DVLCEvents;
+ virtual HRESULT STDMETHODCALLTYPE get_width(
+ int* width) = 0;
-#if defined(__cplusplus) && !defined(CINTERFACE)
+ virtual HRESULT STDMETHODCALLTYPE get_height(
+ int* height) = 0;
- MIDL_INTERFACE("DF48072F-5EF8-434e-9B40-E2F3AE759B5F")
- DVLCEvents : public IDispatch
- {
- };
-
-#else /* C style interface */
-
- typedef struct DVLCEventsVtbl
- {
- BEGIN_INTERFACE
-
- HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
- DVLCEvents __RPC_FAR * This,
- /* [in] */ REFIID riid,
- /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
-
- ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
- DVLCEvents __RPC_FAR * This);
-
- ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
- DVLCEvents __RPC_FAR * This);
-
- HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfoCount )(
- DVLCEvents __RPC_FAR * This,
- /* [out] */ UINT __RPC_FAR *pctinfo);
-
- HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfo )(
- DVLCEvents __RPC_FAR * This,
- /* [in] */ UINT iTInfo,
- /* [in] */ LCID lcid,
- /* [out] */ ITypeInfo __RPC_FAR *__RPC_FAR *ppTInfo);
-
- HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetIDsOfNames )(
- DVLCEvents __RPC_FAR * This,
- /* [in] */ REFIID riid,
- /* [size_is][in] */ LPOLESTR __RPC_FAR *rgszNames,
- /* [in] */ UINT cNames,
- /* [in] */ LCID lcid,
- /* [size_is][out] */ DISPID __RPC_FAR *rgDispId);
-
- /* [local] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Invoke )(
- DVLCEvents __RPC_FAR * This,
- /* [in] */ DISPID dispIdMember,
- /* [in] */ REFIID riid,
- /* [in] */ LCID lcid,
- /* [in] */ WORD wFlags,
- /* [out][in] */ DISPPARAMS __RPC_FAR *pDispParams,
- /* [out] */ VARIANT __RPC_FAR *pVarResult,
- /* [out] */ EXCEPINFO __RPC_FAR *pExcepInfo,
- /* [out] */ UINT __RPC_FAR *puArgErr);
-
- END_INTERFACE
- } DVLCEventsVtbl;
-
- interface DVLCEvents
- {
- CONST_VTBL struct DVLCEventsVtbl __RPC_FAR *lpVtbl;
- };
-
-
+};
+#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
-#define DVLCEvents_QueryInterface(This,riid,ppvObject) \
- (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
-
-#define DVLCEvents_AddRef(This) \
- (This)->lpVtbl -> AddRef(This)
+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__ */
+
+#ifndef __IVLCControl2_FWD_DEFINED__
+#define __IVLCControl2_FWD_DEFINED__
+typedef interface IVLCControl2 IVLCControl2;
+#endif
-#define DVLCEvents_Release(This) \
- (This)->lpVtbl -> Release(This)
+/*****************************************************************************
+ * 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;
-#define DVLCEvents_GetTypeInfoCount(This,pctinfo) \
- (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
+ virtual HRESULT STDMETHODCALLTYPE get_input(
+ IVLCInput** obj) = 0;
-#define DVLCEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
- (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+ virtual HRESULT STDMETHODCALLTYPE get_playlist(
+ IVLCPlaylist** obj) = 0;
-#define DVLCEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
- (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+ virtual HRESULT STDMETHODCALLTYPE get_video(
+ IVLCVideo** obj) = 0;
-#define DVLCEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
- (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+};
+#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;
+};
-#endif /* COBJMACROS */
+#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
-#endif /* C style interface */
+HRESULT CALLBACK IVLCControl2_get_audio_Proxy(
+ IVLCControl2* This,
+ IVLCAudio** obj);
+void __RPC_STUB IVLCControl2_get_audio_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl2_get_input_Proxy(
+ IVLCControl2* This,
+ IVLCInput** obj);
+void __RPC_STUB IVLCControl2_get_input_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl2_get_playlist_Proxy(
+ IVLCControl2* This,
+ IVLCPlaylist** obj);
+void __RPC_STUB IVLCControl2_get_playlist_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IVLCControl2_get_video_Proxy(
+ IVLCControl2* This,
+ IVLCVideo** obj);
+void __RPC_STUB IVLCControl2_get_video_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+#endif /* __IVLCControl2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * VLCPlugin coclass
+ */
+DEFINE_GUID(CLSID_VLCPlugin, 0xe23fe9c6, 0x778e, 0x49d4, 0xb5,0x37, 0x38,0xfc,0xde,0x48,0x87,0xd8);
-#endif /* __DVLCEvents_DISPINTERFACE_DEFINED__ */
+#ifndef __VLCPlugin_FWD_DEFINED__
+#define __VLCPlugin_FWD_DEFINED__
+typedef struct VLCPlugin VLCPlugin;
+#endif /* defined __VLCPlugin_FWD_DEFINED__ */
+/*****************************************************************************
+ * VLCPlugin2 coclass
+ */
-EXTERN_C const CLSID CLSID_VLCPlugin;
+DEFINE_GUID(CLSID_VLCPlugin2, 0x9be31822, 0xfdad, 0x461b, 0xad,0x51, 0xbe,0x1d,0x1c,0x15,0x99,0x21);
-#ifdef __cplusplus
+#ifndef __VLCPlugin2_FWD_DEFINED__
+#define __VLCPlugin2_FWD_DEFINED__
+typedef struct VLCPlugin2 VLCPlugin2;
+#endif /* defined __VLCPlugin2_FWD_DEFINED__ */
-class DECLSPEC_UUID("E23FE9C6-778E-49D4-B537-38FCDE4887D8")
-VLCPlugin;
-#endif
-#endif /* __AXVLC_LIBRARY_DEFINED__ */
+/* Begin additional prototypes for all interfaces */
-/* Additional Prototypes for ALL interfaces */
+unsigned long __RPC_USER VARIANT_UserSize (unsigned long *, unsigned long, VARIANT *);
+unsigned char * __RPC_USER VARIANT_UserMarshal (unsigned long *, unsigned char *, VARIANT *);
+unsigned char * __RPC_USER VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT *);
+void __RPC_USER VARIANT_UserFree (unsigned long *, VARIANT *);
+unsigned long __RPC_USER BSTR_UserSize (unsigned long *, unsigned long, BSTR *);
+unsigned char * __RPC_USER BSTR_UserMarshal (unsigned long *, unsigned char *, BSTR *);
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR *);
+void __RPC_USER BSTR_UserFree (unsigned long *, BSTR *);
-/* end of Additional Prototypes */
+/* End additional prototypes */
#ifdef __cplusplus
}
#endif
-
-#endif
+#endif /* __WIDL_AXVLC_IDL_H */
--- /dev/null
+/*****************************************************************************
+ * vlccontrol2.cpp: ActiveX control for VLC
+ *****************************************************************************
+ * Copyright (C) 2006 the VideoLAN team
+ *
+ * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ *****************************************************************************/
+
+#include "plugin.h"
+#include "vlccontrol2.h"
+#include "vlccontrol.h"
+
+#include "utils.h"
+
+using namespace std;
+
+VLCAudio::~VLCAudio()
+{
+ if( _p_typeinfo )
+ _p_typeinfo->Release();
+};
+
+HRESULT VLCAudio::getTypeInfo(void)
+{
+ HRESULT hr = NOERROR;
+ if( NULL == _p_typeinfo )
+ {
+ ITypeLib *p_typelib;
+
+ hr = _p_instance->getTypeLib(LOCALE_USER_DEFAULT, &p_typelib);
+ if( SUCCEEDED(hr) )
+ {
+ hr = p_typelib->GetTypeInfoOfGuid(IID_IVLCAudio, &_p_typeinfo);
+ if( FAILED(hr) )
+ {
+ _p_typeinfo = NULL;
+ }
+ p_typelib->Release();
+ }
+ }
+ return hr;
+};
+
+STDMETHODIMP VLCAudio::GetTypeInfoCount(UINT* pctInfo)
+{
+ if( NULL == pctInfo )
+ return E_INVALIDARG;
+
+ if( SUCCEEDED(getTypeInfo()) )
+ *pctInfo = 1;
+ else
+ *pctInfo = 0;
+
+ return NOERROR;
+};
+
+STDMETHODIMP VLCAudio::GetTypeInfo(UINT iTInfo, LCID lcid, LPTYPEINFO* ppTInfo)
+{
+ if( NULL == ppTInfo )
+ return E_INVALIDARG;
+
+ if( SUCCEEDED(getTypeInfo()) )
+ {
+ _p_typeinfo->AddRef();
+ *ppTInfo = _p_typeinfo;
+ return NOERROR;
+ }
+ *ppTInfo = NULL;
+ return E_NOTIMPL;
+};
+
+STDMETHODIMP VLCAudio::GetIDsOfNames(REFIID riid, LPOLESTR* rgszNames,
+ UINT cNames, LCID lcid, DISPID* rgDispID)
+{
+ if( SUCCEEDED(getTypeInfo()) )
+ {
+ return DispGetIDsOfNames(_p_typeinfo, rgszNames, cNames, rgDispID);
+ }
+ return E_NOTIMPL;
+};
+
+STDMETHODIMP VLCAudio::Invoke(DISPID dispIdMember, REFIID riid,
+ LCID lcid, WORD wFlags, DISPPARAMS* pDispParams,
+ VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr)
+{
+ if( SUCCEEDED(getTypeInfo()) )
+ {
+ return DispInvoke(this, _p_typeinfo, dispIdMember, wFlags, pDispParams,
+ pVarResult, pExcepInfo, puArgErr);
+ }
+ return E_NOTIMPL;
+};
+
+STDMETHODIMP VLCAudio::get_mute(VARIANT_BOOL* mute)
+{
+ if( NULL == mute )
+ return E_POINTER;
+
+ libvlc_instance_t* p_libvlc;
+ HRESULT hr = _p_instance->getVLC(&p_libvlc);
+ if( SUCCEEDED(hr) )
+ {
+ libvlc_exception_t ex;
+ libvlc_exception_init(&ex);
+
+ *mute = libvlc_audio_get_mute(p_libvlc, &ex) ? VARIANT_TRUE : VARIANT_FALSE;
+ if( libvlc_exception_raised(&ex) )
+ {
+ libvlc_exception_clear(&ex);
+ return E_FAIL;
+ }
+ return NOERROR;
+ }
+ return hr;
+};
+
+STDMETHODIMP VLCAudio::put_mute(VARIANT_BOOL mute)
+{
+ libvlc_instance_t* p_libvlc;
+ HRESULT hr = _p_instance->getVLC(&p_libvlc);
+ if( SUCCEEDED(hr) )
+ {
+ libvlc_exception_t ex;
+ libvlc_exception_init(&ex);
+
+ libvlc_audio_set_mute(p_libvlc, VARIANT_FALSE != mute, &ex);
+ if( libvlc_exception_raised(&ex) )
+ {
+ libvlc_exception_clear(&ex);
+ return E_FAIL;
+ }
+ return NOERROR;
+ }
+ return hr;
+};
+
+STDMETHODIMP VLCAudio::get_volume(int* volume)
+{
+ if( NULL == volume )
+ return E_POINTER;
+
+ libvlc_instance_t* p_libvlc;
+ HRESULT hr = _p_instance->getVLC(&p_libvlc);
+ if( SUCCEEDED(hr) )
+ {
+ libvlc_exception_t ex;
+ libvlc_exception_init(&ex);
+
+ *volume = libvlc_audio_get_volume(p_libvlc, &ex);
+ if( libvlc_exception_raised(&ex) )
+ {
+ libvlc_exception_clear(&ex);
+ return E_FAIL;
+ }
+ return NOERROR;
+ }
+ return hr;
+};
+
+STDMETHODIMP VLCAudio::put_volume(int volume)
+{
+ libvlc_instance_t* p_libvlc;
+ HRESULT hr = _p_instance->getVLC(&p_libvlc);
+ if( SUCCEEDED(hr) )
+ {
+ libvlc_exception_t ex;
+ libvlc_exception_init(&ex);
+
+ libvlc_audio_set_volume(p_libvlc, volume, &ex);
+ if( libvlc_exception_raised(&ex) )
+ {
+ libvlc_exception_clear(&ex);
+ return E_FAIL;
+ }
+ return NOERROR;
+ }
+ return hr;
+};
+
+STDMETHODIMP VLCAudio::toggleMute()
+{
+ libvlc_instance_t* p_libvlc;
+ HRESULT hr = _p_instance->getVLC(&p_libvlc);
+ if( SUCCEEDED(hr) )
+ {
+ libvlc_exception_t ex;
+ libvlc_exception_init(&ex);
+
+ libvlc_audio_toggle_mute(p_libvlc, &ex);
+ if( libvlc_exception_raised(&ex) )
+ {
+ libvlc_exception_clear(&ex);
+ return E_FAIL;
+ }
+ return NOERROR;
+ }
+ return hr;
+};
+
+/*******************************************************************************/
+
+VLCInput::~VLCInput()
+{
+ if( _p_typeinfo )
+ _p_typeinfo->Release();
+};
+
+HRESULT VLCInput::getTypeInfo(void)
+{
+ HRESULT hr = NOERROR;
+ if( NULL == _p_typeinfo )
+ {
+ ITypeLib *p_typelib;
+
+ hr = _p_instance->getTypeLib(LOCALE_USER_DEFAULT, &p_typelib);
+ if( SUCCEEDED(hr) )
+ {
+ hr = p_typelib->GetTypeInfoOfGuid(IID_IVLCInput, &_p_typeinfo);
+ if( FAILED(hr) )
+ {
+ _p_typeinfo = NULL;
+ }
+ p_typelib->Release();
+ }
+ }
+ return hr;
+};
+
+STDMETHODIMP VLCInput::GetTypeInfoCount(UINT* pctInfo)
+{
+ if( NULL == pctInfo )
+ return E_INVALIDARG;
+
+ if( SUCCEEDED(getTypeInfo()) )
+ *pctInfo = 1;
+ else
+ *pctInfo = 0;
+
+ return NOERROR;
+};
+
+STDMETHODIMP VLCInput::GetTypeInfo(UINT iTInfo, LCID lcid, LPTYPEINFO* ppTInfo)
+{
+ if( NULL == ppTInfo )
+ return E_INVALIDARG;
+
+ if( SUCCEEDED(getTypeInfo()) )
+ {
+ _p_typeinfo->AddRef();
+ *ppTInfo = _p_typeinfo;
+ return NOERROR;
+ }
+ *ppTInfo = NULL;
+ return E_NOTIMPL;
+};
+
+STDMETHODIMP VLCInput::GetIDsOfNames(REFIID riid, LPOLESTR* rgszNames,
+ UINT cNames, LCID lcid, DISPID* rgDispID)
+{
+ if( SUCCEEDED(getTypeInfo()) )
+ {
+ return DispGetIDsOfNames(_p_typeinfo, rgszNames, cNames, rgDispID);
+ }
+ return E_NOTIMPL;
+};
+
+STDMETHODIMP VLCInput::Invoke(DISPID dispIdMember, REFIID riid,
+ LCID lcid, WORD wFlags, DISPPARAMS* pDispParams,
+ VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr)
+{
+ if( SUCCEEDED(getTypeInfo()) )
+ {
+ return DispInvoke(this, _p_typeinfo, dispIdMember, wFlags, pDispParams,
+ pVarResult, pExcepInfo, puArgErr);
+ }
+ return E_NOTIMPL;
+};
+
+STDMETHODIMP VLCInput::get_length(__int64* length)
+{
+ if( NULL == length )
+ return E_POINTER;
+
+ libvlc_instance_t* p_libvlc;
+ HRESULT hr = _p_instance->getVLC(&p_libvlc);
+ if( SUCCEEDED(hr) )
+ {
+ libvlc_exception_t ex;
+ libvlc_exception_init(&ex);
+
+ libvlc_input_t *p_input = libvlc_playlist_get_input(p_libvlc, &ex);
+ if( ! libvlc_exception_raised(&ex) )
+ {
+ *length = (__int64)libvlc_input_get_length(p_input, &ex);
+ libvlc_input_free(p_input);
+ if( ! libvlc_exception_raised(&ex) )
+ {
+ return NOERROR;
+ }
+ }
+ libvlc_exception_clear(&ex);
+ return E_FAIL;
+ }
+ return hr;
+};
+
+STDMETHODIMP VLCInput::get_position(float* position)
+{
+ if( NULL == position )
+ return E_POINTER;
+
+ libvlc_instance_t* p_libvlc;
+ HRESULT hr = _p_instance->getVLC(&p_libvlc);
+ if( SUCCEEDED(hr) )
+ {
+ libvlc_exception_t ex;
+ libvlc_exception_init(&ex);
+
+ libvlc_input_t *p_input = libvlc_playlist_get_input(p_libvlc, &ex);
+ if( ! libvlc_exception_raised(&ex) )
+ {
+ *position = libvlc_input_get_position(p_input, &ex);
+ libvlc_input_free(p_input);
+ if( ! libvlc_exception_raised(&ex) )
+ {
+ return NOERROR;
+ }
+ }
+ libvlc_exception_clear(&ex);
+ return E_FAIL;
+ }
+ return hr;
+};
+
+STDMETHODIMP VLCInput::put_position(float position)
+{
+ libvlc_instance_t* p_libvlc;
+ HRESULT hr = _p_instance->getVLC(&p_libvlc);
+ if( SUCCEEDED(hr) )
+ {
+ libvlc_exception_t ex;
+ libvlc_exception_init(&ex);
+
+ libvlc_input_t *p_input = libvlc_playlist_get_input(p_libvlc, &ex);
+ if( ! libvlc_exception_raised(&ex) )
+ {
+ libvlc_input_set_position(p_input, position, &ex);
+ libvlc_input_free(p_input);
+ if( ! libvlc_exception_raised(&ex) )
+ {
+ return NOERROR;
+ }
+ }
+ libvlc_exception_clear(&ex);
+ return E_FAIL;
+ }
+ return hr;
+};
+
+STDMETHODIMP VLCInput::get_time(__int64* time)
+{
+ if( NULL == time )
+ return E_POINTER;
+
+ libvlc_instance_t* p_libvlc;
+ HRESULT hr = _p_instance->getVLC(&p_libvlc);
+ if( SUCCEEDED(hr) )
+ {
+ libvlc_exception_t ex;
+ libvlc_exception_init(&ex);
+
+ libvlc_input_t *p_input = libvlc_playlist_get_input(p_libvlc, &ex);
+ if( ! libvlc_exception_raised(&ex) )
+ {
+ *time = libvlc_input_get_time(p_input, &ex);
+ libvlc_input_free(p_input);
+ if( ! libvlc_exception_raised(&ex) )
+ {
+ return NOERROR;
+ }
+ }
+ libvlc_exception_clear(&ex);
+ return E_FAIL;
+ }
+ return hr;
+};
+
+STDMETHODIMP VLCInput::put_time(__int64 time)
+{
+ libvlc_instance_t* p_libvlc;
+ HRESULT hr = _p_instance->getVLC(&p_libvlc);
+ if( SUCCEEDED(hr) )
+ {
+ libvlc_exception_t ex;
+ libvlc_exception_init(&ex);
+
+ libvlc_input_t *p_input = libvlc_playlist_get_input(p_libvlc, &ex);
+ if( ! libvlc_exception_raised(&ex) )
+ {
+ libvlc_input_set_time(p_input, time, &ex);
+ libvlc_input_free(p_input);
+ if( ! libvlc_exception_raised(&ex) )
+ {
+ return NOERROR;
+ }
+ }
+ libvlc_exception_clear(&ex);
+ return E_FAIL;
+ }
+ return hr;
+};
+
+STDMETHODIMP VLCInput::get_state(int* state)
+{
+ if( NULL == state )
+ return E_POINTER;
+
+ libvlc_instance_t* p_libvlc;
+ HRESULT hr = _p_instance->getVLC(&p_libvlc);
+ if( SUCCEEDED(hr) )
+ {
+ libvlc_exception_t ex;
+ libvlc_exception_init(&ex);
+
+ libvlc_input_t *p_input = libvlc_playlist_get_input(p_libvlc, &ex);
+ if( ! libvlc_exception_raised(&ex) )
+ {
+ *state = libvlc_input_get_state(p_input, &ex);
+ libvlc_input_free(p_input);
+ if( ! libvlc_exception_raised(&ex) )
+ {
+ return NOERROR;
+ }
+ }
+ libvlc_exception_clear(&ex);
+ // don't fail, just return the idle state
+ *state = 0;
+ return NOERROR;
+ }
+ return hr;
+};
+
+STDMETHODIMP VLCInput::get_rate(float* rate)
+{
+ if( NULL == rate )
+ return E_POINTER;
+
+ libvlc_instance_t* p_libvlc;
+ HRESULT hr = _p_instance->getVLC(&p_libvlc);
+ if( SUCCEEDED(hr) )
+ {
+ libvlc_exception_t ex;
+ libvlc_exception_init(&ex);
+
+ libvlc_input_t *p_input = libvlc_playlist_get_input(p_libvlc, &ex);
+ if( ! libvlc_exception_raised(&ex) )
+ {
+ *rate = libvlc_input_get_rate(p_input, &ex);
+ libvlc_input_free(p_input);
+ if( ! libvlc_exception_raised(&ex) )
+ {
+ return NOERROR;
+ }
+ }
+ libvlc_exception_clear(&ex);
+ return E_FAIL;
+ }
+ return hr;
+};
+
+STDMETHODIMP VLCInput::put_rate(float rate)
+{
+ libvlc_instance_t* p_libvlc;
+ HRESULT hr = _p_instance->getVLC(&p_libvlc);
+ if( SUCCEEDED(hr) )
+ {
+ libvlc_exception_t ex;
+ libvlc_exception_init(&ex);
+
+ libvlc_input_t *p_input = libvlc_playlist_get_input(p_libvlc, &ex);
+ if( ! libvlc_exception_raised(&ex) )
+ {
+ libvlc_input_set_rate(p_input, rate, &ex);
+ libvlc_input_free(p_input);
+ if( ! libvlc_exception_raised(&ex) )
+ {
+ return NOERROR;
+ }
+ }
+ libvlc_exception_clear(&ex);
+ return E_FAIL;
+ }
+ return hr;
+};
+
+STDMETHODIMP VLCInput::get_fps(float* fps)
+{
+ if( NULL == fps )
+ return E_POINTER;
+
+ libvlc_instance_t* p_libvlc;
+ HRESULT hr = _p_instance->getVLC(&p_libvlc);
+ if( SUCCEEDED(hr) )
+ {
+ libvlc_exception_t ex;
+ libvlc_exception_init(&ex);
+
+ libvlc_input_t *p_input = libvlc_playlist_get_input(p_libvlc, &ex);
+ if( ! libvlc_exception_raised(&ex) )
+ {
+ *fps = libvlc_input_get_fps(p_input, &ex);
+ libvlc_input_free(p_input);
+ if( ! libvlc_exception_raised(&ex) )
+ {
+ return NOERROR;
+ }
+ }
+ libvlc_exception_clear(&ex);
+ return E_FAIL;
+ }
+ return hr;
+};
+
+STDMETHODIMP VLCInput::get_hasVout(VARIANT_BOOL* hasVout)
+{
+ if( NULL == hasVout )
+ return E_POINTER;
+
+ libvlc_instance_t* p_libvlc;
+ HRESULT hr = _p_instance->getVLC(&p_libvlc);
+ if( SUCCEEDED(hr) )
+ {
+ libvlc_exception_t ex;
+ libvlc_exception_init(&ex);
+
+ libvlc_input_t *p_input = libvlc_playlist_get_input(p_libvlc, &ex);
+ if( ! libvlc_exception_raised(&ex) )
+ {
+ *hasVout = libvlc_input_has_vout(p_input, &ex) ? VARIANT_TRUE : VARIANT_FALSE;
+ libvlc_input_free(p_input);
+ if( ! libvlc_exception_raised(&ex) )
+ {
+ return NOERROR;
+ }
+ }
+ libvlc_exception_clear(&ex);
+ return E_FAIL;
+ }
+ return hr;
+};
+
+/*******************************************************************************/
+
+VLCPlaylist::~VLCPlaylist()
+{
+ if( _p_typeinfo )
+ _p_typeinfo->Release();
+};
+
+HRESULT VLCPlaylist::getTypeInfo(void)
+{
+ HRESULT hr = NOERROR;
+ if( NULL == _p_typeinfo )
+ {
+ ITypeLib *p_typelib;
+
+ hr = _p_instance->getTypeLib(LOCALE_USER_DEFAULT, &p_typelib);
+ if( SUCCEEDED(hr) )
+ {
+ hr = p_typelib->GetTypeInfoOfGuid(IID_IVLCPlaylist, &_p_typeinfo);
+ if( FAILED(hr) )
+ {
+ _p_typeinfo = NULL;
+ }
+ p_typelib->Release();
+ }
+ }
+ return hr;
+};
+
+STDMETHODIMP VLCPlaylist::GetTypeInfoCount(UINT* pctInfo)
+{
+ if( NULL == pctInfo )
+ return E_INVALIDARG;
+
+ if( SUCCEEDED(getTypeInfo()) )
+ *pctInfo = 1;
+ else
+ *pctInfo = 0;
+
+ return NOERROR;
+};
+
+STDMETHODIMP VLCPlaylist::GetTypeInfo(UINT iTInfo, LCID lcid, LPTYPEINFO* ppTInfo)
+{
+ if( NULL == ppTInfo )
+ return E_INVALIDARG;
+
+ if( SUCCEEDED(getTypeInfo()) )
+ {
+ _p_typeinfo->AddRef();
+ *ppTInfo = _p_typeinfo;
+ return NOERROR;
+ }
+ *ppTInfo = NULL;
+ return E_NOTIMPL;
+};
+
+STDMETHODIMP VLCPlaylist::GetIDsOfNames(REFIID riid, LPOLESTR* rgszNames,
+ UINT cNames, LCID lcid, DISPID* rgDispID)
+{
+ if( SUCCEEDED(getTypeInfo()) )
+ {
+ return DispGetIDsOfNames(_p_typeinfo, rgszNames, cNames, rgDispID);
+ }
+ return E_NOTIMPL;
+};
+
+STDMETHODIMP VLCPlaylist::Invoke(DISPID dispIdMember, REFIID riid,
+ LCID lcid, WORD wFlags, DISPPARAMS* pDispParams,
+ VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr)
+{
+ if( SUCCEEDED(getTypeInfo()) )
+ {
+ return DispInvoke(this, _p_typeinfo, dispIdMember, wFlags, pDispParams,
+ pVarResult, pExcepInfo, puArgErr);
+ }
+ return E_NOTIMPL;
+};
+
+STDMETHODIMP VLCPlaylist::get_itemCount(int* count)
+{
+ if( NULL == count )
+ return E_POINTER;
+
+ libvlc_instance_t* p_libvlc;
+ HRESULT hr = _p_instance->getVLC(&p_libvlc);
+ if( SUCCEEDED(hr) )
+ {
+ libvlc_exception_t ex;
+ libvlc_exception_init(&ex);
+
+ *count = libvlc_playlist_items_count(p_libvlc, &ex);
+ if( libvlc_exception_raised(&ex) )
+ {
+ libvlc_exception_clear(&ex);
+ return E_FAIL;
+ }
+ return NOERROR;
+ }
+ return hr;
+};
+
+STDMETHODIMP VLCPlaylist::get_isPlaying(VARIANT_BOOL* isPlaying)
+{
+ if( NULL == isPlaying )
+ return E_POINTER;
+
+ libvlc_instance_t* p_libvlc;
+ HRESULT hr = _p_instance->getVLC(&p_libvlc);
+ if( SUCCEEDED(hr) )
+ {
+ libvlc_exception_t ex;
+ libvlc_exception_init(&ex);
+
+ *isPlaying = libvlc_playlist_isplaying(p_libvlc, &ex) ? VARIANT_TRUE: VARIANT_FALSE;
+ if( libvlc_exception_raised(&ex) )
+ {
+ libvlc_exception_clear(&ex);
+ return E_FAIL;
+ }
+ return NOERROR;
+ }
+ return hr;
+};
+
+STDMETHODIMP VLCPlaylist::add(BSTR uri, BSTR name, VARIANT options, int* item)
+{
+ if( NULL == item )
+ return E_POINTER;
+
+ if( 0 == SysStringLen(uri) )
+ return E_INVALIDARG;
+
+ libvlc_instance_t* p_libvlc;
+ HRESULT hr = _p_instance->getVLC(&p_libvlc);
+ if( SUCCEEDED(hr) )
+ {
+ libvlc_exception_t ex;
+ libvlc_exception_init(&ex);
+
+ int i_options;
+ char **ppsz_options;
+
+ hr = VLCControl::CreateTargetOptions(CP_UTF8, &options, &ppsz_options, &i_options);
+ if( FAILED(hr) )
+ return hr;
+
+ char *psz_uri = CStrFromBSTR(CP_UTF8, uri);
+ if( NULL == psz_uri )
+ {
+ VLCControl::FreeTargetOptions(ppsz_options, i_options);
+ return E_OUTOFMEMORY;
+ }
+
+ char *psz_name = NULL;
+ if( SysStringLen(name) > 0 )
+ {
+ psz_name = CStrFromBSTR(CP_UTF8, name);
+ }
+
+ *item = libvlc_playlist_add_extended(p_libvlc,
+ psz_uri,
+ psz_name,
+ i_options,
+ const_cast<const char **>(ppsz_options),
+ &ex);
+
+ VLCControl::FreeTargetOptions(ppsz_options, i_options);
+ CoTaskMemFree(psz_uri);
+ if( psz_name )
+ CoTaskMemFree(psz_name);
+ if( libvlc_exception_raised(&ex) )
+ {
+ libvlc_exception_clear(&ex);
+ return E_FAIL;
+ }
+ return NOERROR;
+ }
+ return hr;
+};
+
+STDMETHODIMP VLCPlaylist::play()
+{
+ libvlc_instance_t* p_libvlc;
+ HRESULT hr = _p_instance->getVLC(&p_libvlc);
+ if( SUCCEEDED(hr) )
+ {
+ libvlc_exception_t ex;
+ libvlc_exception_init(&ex);
+
+ libvlc_playlist_play(p_libvlc, -1, 0, NULL, &ex);
+ if( libvlc_exception_raised(&ex) )
+ {
+ libvlc_exception_clear(&ex);
+ return E_FAIL;
+ }
+ return NOERROR;
+ }
+ return hr;
+};
+
+STDMETHODIMP VLCPlaylist::playItem(int item)
+{
+ libvlc_instance_t* p_libvlc;
+ HRESULT hr = _p_instance->getVLC(&p_libvlc);
+ if( SUCCEEDED(hr) )
+ {
+ libvlc_exception_t ex;
+ libvlc_exception_init(&ex);
+
+ libvlc_playlist_play(p_libvlc, item, 0, NULL, &ex);
+ if( libvlc_exception_raised(&ex) )
+ {
+ libvlc_exception_clear(&ex);
+ return E_FAIL;
+ }
+ return NOERROR;
+ }
+ return hr;
+};
+
+STDMETHODIMP VLCPlaylist::togglePause()
+{
+ libvlc_instance_t* p_libvlc;
+ HRESULT hr = _p_instance->getVLC(&p_libvlc);
+ if( SUCCEEDED(hr) )
+ {
+ libvlc_exception_t ex;
+ libvlc_exception_init(&ex);
+
+ libvlc_playlist_pause(p_libvlc, &ex);
+ if( libvlc_exception_raised(&ex) )
+ {
+ libvlc_exception_clear(&ex);
+ return E_FAIL;
+ }
+ return NOERROR;
+ }
+ return hr;
+};
+
+STDMETHODIMP VLCPlaylist::stop()
+{
+ libvlc_instance_t* p_libvlc;
+ HRESULT hr = _p_instance->getVLC(&p_libvlc);
+ if( SUCCEEDED(hr) )
+ {
+ libvlc_exception_t ex;
+ libvlc_exception_init(&ex);
+
+ libvlc_playlist_stop(p_libvlc, &ex);
+ if( libvlc_exception_raised(&ex) )
+ {
+ libvlc_exception_clear(&ex);
+ return E_FAIL;
+ }
+ return NOERROR;
+ }
+ return hr;
+};
+
+STDMETHODIMP VLCPlaylist::next()
+{
+ libvlc_instance_t* p_libvlc;
+ HRESULT hr = _p_instance->getVLC(&p_libvlc);
+ if( SUCCEEDED(hr) )
+ {
+ libvlc_exception_t ex;
+ libvlc_exception_init(&ex);
+
+ libvlc_playlist_next(p_libvlc, &ex);
+ if( libvlc_exception_raised(&ex) )
+ {
+ libvlc_exception_clear(&ex);
+ return E_FAIL;
+ }
+ return NOERROR;
+ }
+ return hr;
+};
+
+STDMETHODIMP VLCPlaylist::prev()
+{
+ libvlc_instance_t* p_libvlc;
+ HRESULT hr = _p_instance->getVLC(&p_libvlc);
+ if( SUCCEEDED(hr) )
+ {
+ libvlc_exception_t ex;
+ libvlc_exception_init(&ex);
+
+ libvlc_playlist_prev(p_libvlc, &ex);
+ if( libvlc_exception_raised(&ex) )
+ {
+ libvlc_exception_clear(&ex);
+ return E_FAIL;
+ }
+ return NOERROR;
+ }
+ return hr;
+};
+
+STDMETHODIMP VLCPlaylist::clear()
+{
+ libvlc_instance_t* p_libvlc;
+ HRESULT hr = _p_instance->getVLC(&p_libvlc);
+ if( SUCCEEDED(hr) )
+ {
+ libvlc_exception_t ex;
+ libvlc_exception_init(&ex);
+
+ libvlc_playlist_clear(p_libvlc, &ex);
+ if( libvlc_exception_raised(&ex) )
+ {
+ libvlc_exception_clear(&ex);
+ return E_FAIL;
+ }
+ return NOERROR;
+ }
+ return hr;
+};
+
+STDMETHODIMP VLCPlaylist::removeItem(int item)
+{
+ libvlc_instance_t* p_libvlc;
+ HRESULT hr = _p_instance->getVLC(&p_libvlc);
+ if( SUCCEEDED(hr) )
+ {
+ libvlc_exception_t ex;
+ libvlc_exception_init(&ex);
+
+ libvlc_playlist_delete_item(p_libvlc, item, &ex);
+ if( libvlc_exception_raised(&ex) )
+ {
+ libvlc_exception_clear(&ex);
+ return E_FAIL;
+ }
+ return NOERROR;
+ }
+ return hr;
+};
+
+/*******************************************************************************/
+
+VLCVideo::~VLCVideo()
+{
+ if( _p_typeinfo )
+ _p_typeinfo->Release();
+};
+
+HRESULT VLCVideo::getTypeInfo(void)
+{
+ HRESULT hr = NOERROR;
+ if( NULL == _p_typeinfo )
+ {
+ ITypeLib *p_typelib;
+
+ hr = _p_instance->getTypeLib(LOCALE_USER_DEFAULT, &p_typelib);
+ if( SUCCEEDED(hr) )
+ {
+ hr = p_typelib->GetTypeInfoOfGuid(IID_IVLCVideo, &_p_typeinfo);
+ if( FAILED(hr) )
+ {
+ _p_typeinfo = NULL;
+ }
+ p_typelib->Release();
+ }
+ }
+ return hr;
+};
+
+STDMETHODIMP VLCVideo::GetTypeInfoCount(UINT* pctInfo)
+{
+ if( NULL == pctInfo )
+ return E_INVALIDARG;
+
+ if( SUCCEEDED(getTypeInfo()) )
+ *pctInfo = 1;
+ else
+ *pctInfo = 0;
+
+ return NOERROR;
+};
+
+STDMETHODIMP VLCVideo::GetTypeInfo(UINT iTInfo, LCID lcid, LPTYPEINFO* ppTInfo)
+{
+ if( NULL == ppTInfo )
+ return E_INVALIDARG;
+
+ if( SUCCEEDED(getTypeInfo()) )
+ {
+ _p_typeinfo->AddRef();
+ *ppTInfo = _p_typeinfo;
+ return NOERROR;
+ }
+ *ppTInfo = NULL;
+ return E_NOTIMPL;
+};
+
+STDMETHODIMP VLCVideo::GetIDsOfNames(REFIID riid, LPOLESTR* rgszNames,
+ UINT cNames, LCID lcid, DISPID* rgDispID)
+{
+ if( SUCCEEDED(getTypeInfo()) )
+ {
+ return DispGetIDsOfNames(_p_typeinfo, rgszNames, cNames, rgDispID);
+ }
+ return E_NOTIMPL;
+};
+
+STDMETHODIMP VLCVideo::Invoke(DISPID dispIdMember, REFIID riid,
+ LCID lcid, WORD wFlags, DISPPARAMS* pDispParams,
+ VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr)
+{
+ if( SUCCEEDED(getTypeInfo()) )
+ {
+ return DispInvoke(this, _p_typeinfo, dispIdMember, wFlags, pDispParams,
+ pVarResult, pExcepInfo, puArgErr);
+ }
+ return E_NOTIMPL;
+};
+
+STDMETHODIMP VLCVideo::get_fullscreen(VARIANT_BOOL* fullscreen)
+{
+ if( NULL == fullscreen )
+ return E_POINTER;
+
+ libvlc_instance_t* p_libvlc;
+ HRESULT hr = _p_instance->getVLC(&p_libvlc);
+ if( SUCCEEDED(hr) )
+ {
+ libvlc_exception_t ex;
+ libvlc_exception_init(&ex);
+
+ libvlc_input_t *p_input = libvlc_playlist_get_input(p_libvlc, &ex);
+ if( ! libvlc_exception_raised(&ex) )
+ {
+ *fullscreen = libvlc_get_fullscreen(p_input, &ex) ? VARIANT_TRUE : VARIANT_FALSE;
+ libvlc_input_free(p_input);
+ if( ! libvlc_exception_raised(&ex) )
+ {
+ return NOERROR;
+ }
+ }
+ libvlc_exception_clear(&ex);
+ return E_FAIL;
+ }
+ return hr;
+};
+
+STDMETHODIMP VLCVideo::put_fullscreen(VARIANT_BOOL fullscreen)
+{
+ libvlc_instance_t* p_libvlc;
+ HRESULT hr = _p_instance->getVLC(&p_libvlc);
+ if( SUCCEEDED(hr) )
+ {
+ libvlc_exception_t ex;
+ libvlc_exception_init(&ex);
+
+ libvlc_input_t *p_input = libvlc_playlist_get_input(p_libvlc, &ex);
+ if( ! libvlc_exception_raised(&ex) )
+ {
+ libvlc_set_fullscreen(p_input, VARIANT_FALSE != fullscreen, &ex);
+ libvlc_input_free(p_input);
+ if( ! libvlc_exception_raised(&ex) )
+ {
+ return NOERROR;
+ }
+ }
+ libvlc_exception_clear(&ex);
+ return E_FAIL;
+ }
+ return hr;
+};
+
+STDMETHODIMP VLCVideo::get_width(int* width)
+{
+ if( NULL == width )
+ return E_POINTER;
+
+ libvlc_instance_t* p_libvlc;
+ HRESULT hr = _p_instance->getVLC(&p_libvlc);
+ if( SUCCEEDED(hr) )
+ {
+ libvlc_exception_t ex;
+ libvlc_exception_init(&ex);
+
+ libvlc_input_t *p_input = libvlc_playlist_get_input(p_libvlc, &ex);
+ if( ! libvlc_exception_raised(&ex) )
+ {
+ *width = libvlc_video_get_width(p_input, &ex);
+ libvlc_input_free(p_input);
+ if( ! libvlc_exception_raised(&ex) )
+ {
+ return NOERROR;
+ }
+ }
+ libvlc_exception_clear(&ex);
+ return E_FAIL;
+ }
+ return hr;
+};
+
+STDMETHODIMP VLCVideo::get_height(int* height)
+{
+ if( NULL == height )
+ return E_POINTER;
+
+ libvlc_instance_t* p_libvlc;
+ HRESULT hr = _p_instance->getVLC(&p_libvlc);
+ if( SUCCEEDED(hr) )
+ {
+ libvlc_exception_t ex;
+ libvlc_exception_init(&ex);
+
+ libvlc_input_t *p_input = libvlc_playlist_get_input(p_libvlc, &ex);
+ if( ! libvlc_exception_raised(&ex) )
+ {
+ *height = libvlc_video_get_height(p_input, &ex);
+ libvlc_input_free(p_input);
+ if( ! libvlc_exception_raised(&ex) )
+ {
+ return NOERROR;
+ }
+ }
+ libvlc_exception_clear(&ex);
+ return E_FAIL;
+ }
+ return hr;
+};
+
+/*******************************************************************************/
+
+VLCControl2::VLCControl2(VLCPlugin *p_instance) :
+ _p_instance(p_instance),
+ _p_typeinfo(NULL),
+ _p_vlcaudio(NULL),
+ _p_vlcinput(NULL),
+ _p_vlcplaylist(NULL),
+ _p_vlcvideo(NULL)
+{
+ _p_vlcaudio = new VLCAudio(p_instance);
+ _p_vlcinput = new VLCInput(p_instance);
+ _p_vlcplaylist = new VLCPlaylist(p_instance);
+ _p_vlcvideo = new VLCVideo(p_instance);
+};
+
+VLCControl2::~VLCControl2()
+{
+ delete _p_vlcvideo;
+ delete _p_vlcplaylist;
+ delete _p_vlcinput;
+ delete _p_vlcaudio;
+ if( _p_typeinfo )
+ _p_typeinfo->Release();
+};
+
+HRESULT VLCControl2::getTypeInfo(void)
+{
+ HRESULT hr = NOERROR;
+ if( NULL == _p_typeinfo )
+ {
+ ITypeLib *p_typelib;
+
+ hr = _p_instance->getTypeLib(LOCALE_USER_DEFAULT, &p_typelib);
+ if( SUCCEEDED(hr) )
+ {
+ hr = p_typelib->GetTypeInfoOfGuid(IID_IVLCControl2, &_p_typeinfo);
+ if( FAILED(hr) )
+ {
+ _p_typeinfo = NULL;
+ }
+ p_typelib->Release();
+ }
+ }
+ return hr;
+};
+
+STDMETHODIMP VLCControl2::GetTypeInfoCount(UINT* pctInfo)
+{
+ if( NULL == pctInfo )
+ return E_INVALIDARG;
+
+ if( SUCCEEDED(getTypeInfo()) )
+ *pctInfo = 1;
+ else
+ *pctInfo = 0;
+
+ return NOERROR;
+};
+
+STDMETHODIMP VLCControl2::GetTypeInfo(UINT iTInfo, LCID lcid, LPTYPEINFO* ppTInfo)
+{
+ if( NULL == ppTInfo )
+ return E_INVALIDARG;
+
+ if( SUCCEEDED(getTypeInfo()) )
+ {
+ _p_typeinfo->AddRef();
+ *ppTInfo = _p_typeinfo;
+ return NOERROR;
+ }
+ *ppTInfo = NULL;
+ return E_NOTIMPL;
+};
+
+STDMETHODIMP VLCControl2::GetIDsOfNames(REFIID riid, LPOLESTR* rgszNames,
+ UINT cNames, LCID lcid, DISPID* rgDispID)
+{
+ if( SUCCEEDED(getTypeInfo()) )
+ {
+ return DispGetIDsOfNames(_p_typeinfo, rgszNames, cNames, rgDispID);
+ }
+ return E_NOTIMPL;
+};
+
+STDMETHODIMP VLCControl2::Invoke(DISPID dispIdMember, REFIID riid,
+ LCID lcid, WORD wFlags, DISPPARAMS* pDispParams,
+ VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr)
+{
+ if( SUCCEEDED(getTypeInfo()) )
+ {
+ return DispInvoke(this, _p_typeinfo, dispIdMember, wFlags, pDispParams,
+ pVarResult, pExcepInfo, puArgErr);
+ }
+ return E_NOTIMPL;
+};
+
+STDMETHODIMP VLCControl2::get_audio(IVLCAudio** obj)
+{
+ if( NULL == obj )
+ return E_POINTER;
+
+ *obj = _p_vlcaudio;
+ if( NULL != _p_vlcaudio )
+ {
+ _p_vlcaudio->AddRef();
+ return NOERROR;
+ }
+ return E_OUTOFMEMORY;
+};
+
+STDMETHODIMP VLCControl2::get_input(IVLCInput** obj)
+{
+ if( NULL == obj )
+ return E_POINTER;
+
+ *obj = _p_vlcinput;
+ if( NULL != _p_vlcinput )
+ {
+ _p_vlcinput->AddRef();
+ return NOERROR;
+ }
+ return E_OUTOFMEMORY;
+};
+
+STDMETHODIMP VLCControl2::get_playlist(IVLCPlaylist** obj)
+{
+ if( NULL == obj )
+ return E_POINTER;
+
+ *obj = _p_vlcplaylist;
+ if( NULL != _p_vlcplaylist )
+ {
+ _p_vlcplaylist->AddRef();
+ return NOERROR;
+ }
+ return E_OUTOFMEMORY;
+};
+
+STDMETHODIMP VLCControl2::get_video(IVLCVideo** obj)
+{
+ if( NULL == obj )
+ return E_POINTER;
+
+ *obj = _p_vlcvideo;
+ if( NULL != _p_vlcvideo )
+ {
+ _p_vlcvideo->AddRef();
+ return NOERROR;
+ }
+ return E_OUTOFMEMORY;
+};
+