X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=activex%2Fplugin.h;h=873c39c715733c1e9a6cff1ad8d728a775abc6c0;hb=1148a9e41bf38bde489c5fea014aad10a3d5cfd8;hp=1dba8151eba40fedd388a015f278383933dbb032;hpb=824efac5436d84ca6ba9bc4bcb38b341e06084ac;p=vlc diff --git a/activex/plugin.h b/activex/plugin.h index 1dba8151eb..873c39c715 100644 --- a/activex/plugin.h +++ b/activex/plugin.h @@ -26,9 +26,10 @@ #include #include -#include +#include extern const GUID CLSID_VLCPlugin; +extern const GUID CLSID_VLCPlugin2; extern const GUID LIBID_AXVLC; extern const GUID DIID_DVLCEvents; @@ -37,7 +38,7 @@ class VLCPluginClass : public IClassFactory public: - VLCPluginClass(LONG *p_class_ref,HINSTANCE hInstance); + VLCPluginClass(LONG *p_class_ref, HINSTANCE hInstance, REFCLSID rclsid); /* IUnknown methods */ STDMETHODIMP QueryInterface(REFIID riid, void **ppv); @@ -48,8 +49,9 @@ public: STDMETHODIMP CreateInstance(LPUNKNOWN pUnkOuter, REFIID riid, void **ppv); STDMETHODIMP LockServer(BOOL fLock); - LPCSTR getInPlaceWndClassName(void) const { return TEXT("VLC Plugin In-Place"); }; - LPCSTR getVideoWndClassName(void) const { return TEXT("VLC Plugin Video"); }; + REFCLSID getClassID(void) { return (REFCLSID)_classid; }; + + LPCTSTR getInPlaceWndClassName(void) const { return TEXT("VLC Plugin In-Place"); }; HINSTANCE getHInstance(void) const { return _hinstance; }; LPPICTURE getInPlacePict(void) const { if( NULL != _inplace_picture) _inplace_picture->AddRef(); return _inplace_picture; }; @@ -62,8 +64,8 @@ private: LPLONG _p_class_ref; HINSTANCE _hinstance; + CLSID _classid; ATOM _inplace_wndclass_atom; - ATOM _video_wndclass_atom; LPPICTURE _inplace_picture; }; @@ -81,7 +83,7 @@ public: /* custom methods */ HRESULT getTypeLib(LCID lcid, ITypeLib **pTL) { return LoadRegTypeLib(LIBID_AXVLC, 1, 0, lcid, pTL); }; - REFCLSID getClassID(void) { return (REFCLSID)CLSID_VLCPlugin; }; + REFCLSID getClassID(void) { return _p_class->getClassID(); }; REFIID getDispEventID(void) { return (REFIID)DIID_DVLCEvents; }; /* @@ -116,9 +118,24 @@ public: BOOL getVisible(void) { return _b_visible; }; BOOL isVisible(void) { return _b_visible || (! _b_usermode); }; + inline void setStartTime(int time) + { + _i_time = time; + setDirty(TRUE); + }; + inline int getStartTime(void) { return _i_time; }; + void setTime(int time); int getTime(void) { return _i_time; }; + void setBaseURL(BSTR url) + { + SysFreeString(_bstr_baseurl); + _bstr_baseurl = SysAllocStringLen(url, SysStringLen(url)); + setDirty(TRUE); + }; + const BSTR getBaseURL(void) { return _bstr_baseurl; }; + // control size in HIMETRIC inline void setExtent(const SIZEL& extent) { @@ -145,7 +162,7 @@ public: _p_pict->AddRef(); return _p_pict; }; - + BOOL hasFocus(void); void setFocus(BOOL fFocus); @@ -165,9 +182,10 @@ public: inline BOOL isDirty(void) { return _b_dirty; }; inline void setDirty(BOOL dirty) { _b_dirty = dirty; }; - inline BOOL isRunning(void) { return 0 != _i_vlc; }; + inline BOOL isRunning(void) { return NULL != _p_libvlc; }; HRESULT getVLCObject(int *i_vlc); - + HRESULT getVLC(libvlc_instance_t** p_vlc); + void setErrorInfo(REFIID riid, const char *description); // control geometry within container RECT getPosRect(void) { return _posRect; }; @@ -218,23 +236,24 @@ private: class VLCConnectionPointContainer *vlcConnectionPointContainer; class VLCObjectSafety *vlcObjectSafety; class VLCControl *vlcControl; + class VLCControl2 *vlcControl2; class VLCViewObject *vlcViewObject; class VLCDataObject *vlcDataObject; + class VLCSupportErrorInfo *vlcSupportErrorInfo; - // in place activated window (Clipping window) + // in place activated window (Plugin window) HWND _inplacewnd; - // video window (Drawing window) - HWND _videownd; - VLCPluginClass *_p_class; + VLCPluginClass* _p_class; ULONG _i_ref; + libvlc_instance_t* _p_libvlc; UINT _i_codepage; BOOL _b_usermode; - int _i_vlc; RECT _posRect; // persistable properties + BSTR _bstr_baseurl; BSTR _bstr_mrl; BOOL _b_autoplay; BOOL _b_autoloop; @@ -249,4 +268,3 @@ private: }; #endif -