📄 vlccontrol2.h
字号:
private: VLCPlugin* _p_instance; ITypeInfo* _p_typeinfo;}; class VLCLog : public IVLCLog{public: friend class VLCMessages; friend class VLCMessageIterator; VLCLog(VLCPlugin *p_instance) : _p_log(NULL), _p_instance(p_instance), _p_typeinfo(NULL), _p_vlcmessages(NULL) { _p_vlcmessages = new VLCMessages(p_instance, this); }; virtual ~VLCLog(); // IUnknown methods STDMETHODIMP QueryInterface(REFIID riid, void **ppv) { if( NULL == ppv ) return E_POINTER; if( (IID_IUnknown == riid) || (IID_IDispatch == riid) || (IID_IVLCLog == riid) ) { AddRef(); *ppv = reinterpret_cast<LPVOID>(this); return NOERROR; } // behaves as a standalone object return E_NOINTERFACE; }; STDMETHODIMP_(ULONG) AddRef(void) { return _p_instance->pUnkOuter->AddRef(); }; STDMETHODIMP_(ULONG) Release(void) { return _p_instance->pUnkOuter->Release(); }; // IDispatch methods STDMETHODIMP GetTypeInfoCount(UINT*); STDMETHODIMP GetTypeInfo(UINT, LCID, LPTYPEINFO*); STDMETHODIMP GetIDsOfNames(REFIID,LPOLESTR*,UINT,LCID,DISPID*); STDMETHODIMP Invoke(DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*); // IVLCLog methods STDMETHODIMP get_messages(IVLCMessages**); STDMETHODIMP get_verbosity(long *); STDMETHODIMP put_verbosity(long);protected: HRESULT loadTypeInfo(); libvlc_log_t *_p_log;private: VLCPlugin* _p_instance; ITypeInfo* _p_typeinfo; VLCMessages* _p_vlcmessages;};class VLCPlaylistItems : public IVLCPlaylistItems{public: VLCPlaylistItems(VLCPlugin *p_instance) : _p_instance(p_instance), _p_typeinfo(NULL) {}; virtual ~VLCPlaylistItems(); // IUnknown methods STDMETHODIMP QueryInterface(REFIID riid, void **ppv) { if( NULL == ppv ) return E_POINTER; if( (IID_IUnknown == riid) || (IID_IDispatch == riid) || (IID_IVLCPlaylistItems == riid) ) { AddRef(); *ppv = reinterpret_cast<LPVOID>(this); return NOERROR; } // behaves as a standalone object return E_NOINTERFACE; }; STDMETHODIMP_(ULONG) AddRef(void) { return _p_instance->pUnkOuter->AddRef(); }; STDMETHODIMP_(ULONG) Release(void) { return _p_instance->pUnkOuter->Release(); }; // IDispatch methods STDMETHODIMP GetTypeInfoCount(UINT*); STDMETHODIMP GetTypeInfo(UINT, LCID, LPTYPEINFO*); STDMETHODIMP GetIDsOfNames(REFIID,LPOLESTR*,UINT,LCID,DISPID*); STDMETHODIMP Invoke(DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*); // IVLCPlaylistItems methods STDMETHODIMP get_count(long*); STDMETHODIMP clear(); STDMETHODIMP remove(long);protected: HRESULT loadTypeInfo();private: VLCPlugin* _p_instance; ITypeInfo* _p_typeinfo;};class VLCPlaylist : public IVLCPlaylist{public: VLCPlaylist(VLCPlugin *p_instance) : _p_instance(p_instance), _p_typeinfo(NULL), _p_vlcplaylistitems(NULL) { _p_vlcplaylistitems = new VLCPlaylistItems(p_instance); }; virtual ~VLCPlaylist(); // IUnknown methods STDMETHODIMP QueryInterface(REFIID riid, void **ppv) { if( NULL == ppv ) return E_POINTER; if( (IID_IUnknown == riid) || (IID_IDispatch == riid) || (IID_IVLCPlaylist == riid) ) { AddRef(); *ppv = reinterpret_cast<LPVOID>(this); return NOERROR; } // behaves as a standalone object return E_NOINTERFACE; }; STDMETHODIMP_(ULONG) AddRef(void) { return _p_instance->pUnkOuter->AddRef(); }; STDMETHODIMP_(ULONG) Release(void) { return _p_instance->pUnkOuter->Release(); }; // IDispatch methods STDMETHODIMP GetTypeInfoCount(UINT*); STDMETHODIMP GetTypeInfo(UINT, LCID, LPTYPEINFO*); STDMETHODIMP GetIDsOfNames(REFIID,LPOLESTR*,UINT,LCID,DISPID*); STDMETHODIMP Invoke(DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*); // IVLCPlaylist methods STDMETHODIMP get_itemCount(long*); STDMETHODIMP get_isPlaying(VARIANT_BOOL*); STDMETHODIMP add(BSTR, VARIANT, VARIANT, long*); STDMETHODIMP play(); STDMETHODIMP playItem(long); STDMETHODIMP togglePause(); STDMETHODIMP stop(); STDMETHODIMP next(); STDMETHODIMP prev(); STDMETHODIMP clear(); STDMETHODIMP removeItem(long); STDMETHODIMP get_items(IVLCPlaylistItems**);protected: HRESULT loadTypeInfo();private: VLCPlugin* _p_instance; ITypeInfo* _p_typeinfo; VLCPlaylistItems* _p_vlcplaylistitems;};class VLCVideo : public IVLCVideo{public: VLCVideo(VLCPlugin *p_instance) : _p_instance(p_instance), _p_typeinfo(NULL) {}; virtual ~VLCVideo(); // IUnknown methods STDMETHODIMP QueryInterface(REFIID riid, void **ppv) { if( NULL == ppv ) return E_POINTER; if( (IID_IUnknown == riid) || (IID_IDispatch == riid) || (IID_IVLCVideo == riid) ) { AddRef(); *ppv = reinterpret_cast<LPVOID>(this); return NOERROR; } // behaves as a standalone object return E_NOINTERFACE; }; STDMETHODIMP_(ULONG) AddRef(void) { return _p_instance->pUnkOuter->AddRef(); }; STDMETHODIMP_(ULONG) Release(void) { return _p_instance->pUnkOuter->Release(); }; // IDispatch methods STDMETHODIMP GetTypeInfoCount(UINT*); STDMETHODIMP GetTypeInfo(UINT, LCID, LPTYPEINFO*); STDMETHODIMP GetIDsOfNames(REFIID,LPOLESTR*,UINT,LCID,DISPID*); STDMETHODIMP Invoke(DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*); // IVLCVideo methods STDMETHODIMP get_fullscreen(VARIANT_BOOL*); STDMETHODIMP put_fullscreen(VARIANT_BOOL); STDMETHODIMP get_width(long*); STDMETHODIMP get_height(long*); STDMETHODIMP get_aspectRatio(BSTR*); STDMETHODIMP put_aspectRatio(BSTR); STDMETHODIMP get_subtitle(long*); STDMETHODIMP put_subtitle(long); STDMETHODIMP get_crop(BSTR*); STDMETHODIMP put_crop(BSTR); STDMETHODIMP get_teletext(long*); STDMETHODIMP put_teletext(long); STDMETHODIMP takeSnapshot(LPPICTUREDISP*); STDMETHODIMP toggleFullscreen(); STDMETHODIMP toggleTeletext();protected: HRESULT loadTypeInfo();private: VLCPlugin* _p_instance; ITypeInfo* _p_typeinfo;};class VLCControl2 : public IVLCControl2{public: VLCControl2(VLCPlugin *p_instance); virtual ~VLCControl2(); // IUnknown methods STDMETHODIMP QueryInterface(REFIID riid, void **ppv) { if( NULL == ppv ) return E_POINTER; if( (IID_IUnknown == riid) || (IID_IDispatch == riid) || (IID_IVLCControl2 == riid) ) { AddRef(); *ppv = reinterpret_cast<LPVOID>(this); return NOERROR; } return _p_instance->pUnkOuter->QueryInterface(riid, ppv); }; STDMETHODIMP_(ULONG) AddRef(void) { return _p_instance->pUnkOuter->AddRef(); }; STDMETHODIMP_(ULONG) Release(void) { return _p_instance->pUnkOuter->Release(); }; // IDispatch methods STDMETHODIMP GetTypeInfoCount(UINT*); STDMETHODIMP GetTypeInfo(UINT, LCID, LPTYPEINFO*); STDMETHODIMP GetIDsOfNames(REFIID,LPOLESTR*,UINT,LCID,DISPID*); STDMETHODIMP Invoke(DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*); // IVLCControl2 methods STDMETHODIMP get_AutoLoop(VARIANT_BOOL *autoloop); STDMETHODIMP put_AutoLoop(VARIANT_BOOL autoloop); STDMETHODIMP get_AutoPlay(VARIANT_BOOL *autoplay); STDMETHODIMP put_AutoPlay(VARIANT_BOOL autoplay); STDMETHODIMP get_BaseURL(BSTR *url); STDMETHODIMP put_BaseURL(BSTR url); STDMETHODIMP get_MRL(BSTR *mrl); STDMETHODIMP put_MRL(BSTR mrl); STDMETHODIMP get_Toolbar(VARIANT_BOOL *visible); STDMETHODIMP put_Toolbar(VARIANT_BOOL visible); STDMETHODIMP get_StartTime(long *seconds); STDMETHODIMP put_StartTime(long seconds); STDMETHODIMP get_VersionInfo(BSTR *version); STDMETHODIMP get_Visible(VARIANT_BOOL *visible); STDMETHODIMP put_Visible(VARIANT_BOOL visible); STDMETHODIMP get_Volume(long *volume); STDMETHODIMP put_Volume(long volume); STDMETHODIMP get_BackColor(OLE_COLOR *backcolor); STDMETHODIMP put_BackColor(OLE_COLOR backcolor); STDMETHODIMP get_audio(IVLCAudio**); STDMETHODIMP get_input(IVLCInput**); STDMETHODIMP get_log(IVLCLog**); STDMETHODIMP get_playlist(IVLCPlaylist**); STDMETHODIMP get_video(IVLCVideo**);protected: HRESULT loadTypeInfo();private: VLCPlugin* _p_instance; ITypeInfo* _p_typeinfo; VLCAudio* _p_vlcaudio; VLCInput* _p_vlcinput; VLCLog * _p_vlclog; VLCPlaylist* _p_vlcplaylist; VLCVideo* _p_vlcvideo;};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -