#include <ole2.h>
#include <olectl.h>
-#include <vlc/vlc.h>
+#include <vlc/libvlc.h>
-extern const GUID CLSID_VLCPlugin;
-extern const GUID LIBID_AXVLC;
-extern const GUID DIID_DVLCEvents;
+extern const GUID CLSID_VLCPlugin;
+extern const GUID CLSID_VLCPlugin2;
+extern const GUID LIBID_AXVLC;
+extern const GUID DIID_DVLCEvents;
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);
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; };
LPLONG _p_class_ref;
HINSTANCE _hinstance;
+ CLSID _classid;
ATOM _inplace_wndclass_atom;
- ATOM _video_wndclass_atom;
LPPICTURE _inplace_picture;
};
/* 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; };
/*
};
inline BOOL getAutoPlay(void) { return _b_autoplay; };
- inline void setAutoLoop(BOOL autoloop)
+ inline void setAutoLoop(BOOL autoloop)
{
_b_autoloop = autoloop;
setDirty(TRUE);
inline BOOL getAutoLoop(void) { return _b_autoloop;};
void setVolume(int volume);
- BOOL getVolume(void) { return _i_volume; };
+ int getVolume(void) { return _i_volume; };
+
+ void setBackColor(OLE_COLOR backcolor);
+ OLE_COLOR getBackColor(void) { return _i_backcolor; };
void setVisible(BOOL fVisible);
BOOL getVisible(void) { return _b_visible; };
+ BOOL isVisible(void) { return _b_visible || (! _b_usermode); };
+
+ 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)
{
};
const SIZEL& getExtent(void) { return _extent; };
- // transient properties
+ // transient properties
inline void setMute(BOOL mute) { _b_mute = mute; };
inline void setPicture(LPPICTURE pict)
_p_pict->AddRef();
return _p_pict;
};
-
+
BOOL hasFocus(void);
void setFocus(BOOL fFocus);
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; };
+ RECT getPosRect(void) { return _posRect; };
inline HWND getInPlaceWindow(void) const { return _inplacewnd; };
BOOL isInPlaceActive(void);
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;
+ LPPICTURE _p_pict;
// persistable properties
+ BSTR _bstr_baseurl;
BSTR _bstr_mrl;
BOOL _b_autoplay;
BOOL _b_autoloop;
int _i_volume;
int _i_time;
SIZEL _extent;
- LPPICTURE _p_pict;
+ OLE_COLOR _i_backcolor;
// indicates whether properties needs persisting
BOOL _b_dirty;
};
#endif
-