-/*****************************************************************************\r
- * oleobject.h: ActiveX control for VLC\r
- *****************************************************************************\r
- * Copyright (C) 2005 VideoLAN\r
- *\r
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>\r
- *\r
- * This program is free software; you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation; either version 2 of the License, or\r
- * (at your option) any later version.\r
- *\r
- * This program is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
- * GNU General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program; if not, write to the Free Software\r
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.\r
- *****************************************************************************/\r
-\r
-#ifndef __OLEOBJECT_H__\r
-#define __OLEOBJECT_H__\r
-\r
-class VLCOleObject : public IOleObject\r
-{\r
-\r
-public:\r
-\r
- VLCOleObject(VLCPlugin *p_instance);\r
- virtual ~VLCOleObject();\r
-\r
- // IUnknown methods\r
- STDMETHODIMP QueryInterface(REFIID riid, void **ppv)\r
- {\r
- if( (NULL != ppv)\r
- && (IID_IUnknown == riid)\r
- && (IID_IOleObject == riid) ) \r
- {\r
- AddRef();\r
- *ppv = reinterpret_cast<LPVOID>(this);\r
- return NOERROR;\r
- }\r
- return _p_instance->QueryInterface(riid, ppv);\r
- };\r
-\r
- STDMETHODIMP_(ULONG) AddRef(void) { return _p_instance->AddRef(); };\r
- STDMETHODIMP_(ULONG) Release(void) { return _p_instance->Release(); };\r
-\r
- // IOleObject methods\r
- STDMETHODIMP Advise(IAdviseSink *, LPDWORD);\r
- STDMETHODIMP Close(DWORD);\r
- STDMETHODIMP DoVerb(LONG, LPMSG, LPOLECLIENTSITE, LONG, HWND, LPCRECT);\r
- STDMETHODIMP EnumAdvise(IEnumSTATDATA **);\r
- STDMETHODIMP EnumVerbs(IEnumOleVerb **);\r
- STDMETHODIMP GetClientSite(LPOLECLIENTSITE *);\r
- STDMETHODIMP GetClipboardData(DWORD, LPDATAOBJECT *);\r
- STDMETHODIMP GetExtent(DWORD, SIZEL *);\r
- STDMETHODIMP GetMiscStatus(DWORD, DWORD *);\r
- STDMETHODIMP GetMoniker(DWORD, DWORD, LPMONIKER *);\r
- STDMETHODIMP GetUserClassID(CLSID *);\r
- STDMETHODIMP GetUserType(DWORD, LPOLESTR *);\r
- STDMETHODIMP InitFromData(IDataObject *, BOOL, DWORD);\r
- STDMETHODIMP IsUpToDate(void);\r
- STDMETHODIMP SetClientSite(LPOLECLIENTSITE);\r
- STDMETHODIMP SetColorScheme(LOGPALETTE *);\r
- STDMETHODIMP SetExtent(DWORD, SIZEL *);\r
- STDMETHODIMP SetHostNames(LPCOLESTR, LPCOLESTR) ;\r
- STDMETHODIMP SetMoniker(DWORD, LPMONIKER);\r
- STDMETHODIMP Unadvise(DWORD);\r
- STDMETHODIMP Update(void);\r
-\r
-private:\r
-\r
- HRESULT doInPlaceActivate(LPMSG lpMsg, LPOLECLIENTSITE pActiveSite, HWND hwndParent, LPCRECT lprcPosRect);\r
- HRESULT doUIActivate(LPMSG lpMsg, LPOLECLIENTSITE pActiveSite, HWND hwndParent, LPCRECT lprcPosRect);\r
-\r
- IOleAdviseHolder *_p_advise_holder;\r
- IOleClientSite *_p_clientsite;\r
-\r
- VLCPlugin *_p_instance;\r
-};\r
-\r
-#endif\r
-\r
+/*****************************************************************************
+ * oleobject.h: ActiveX control for VLC
+ *****************************************************************************
+ * Copyright (C) 2005 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.
+ *****************************************************************************/
+
+#ifndef __OLEOBJECT_H__
+#define __OLEOBJECT_H__
+
+class VLCOleObject : public IOleObject
+{
+
+public:
+
+ VLCOleObject(VLCPlugin *p_instance);
+ virtual ~VLCOleObject();
+
+ // IUnknown methods
+ STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
+ {
+ if( NULL == ppv )
+ return E_POINTER;
+ if( (IID_IUnknown == riid)
+ || (IID_IOleObject == 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(); };
+
+ // IOleObject methods
+ STDMETHODIMP Advise(IAdviseSink *, LPDWORD);
+ STDMETHODIMP Close(DWORD);
+ STDMETHODIMP DoVerb(LONG, LPMSG, LPOLECLIENTSITE, LONG, HWND, LPCRECT);
+ STDMETHODIMP EnumAdvise(IEnumSTATDATA **);
+ STDMETHODIMP EnumVerbs(IEnumOleVerb **);
+ STDMETHODIMP GetClientSite(LPOLECLIENTSITE *);
+ STDMETHODIMP GetClipboardData(DWORD, LPDATAOBJECT *);
+ STDMETHODIMP GetExtent(DWORD, SIZEL *);
+ STDMETHODIMP GetMiscStatus(DWORD, DWORD *);
+ STDMETHODIMP GetMoniker(DWORD, DWORD, LPMONIKER *);
+ STDMETHODIMP GetUserClassID(CLSID *);
+ STDMETHODIMP GetUserType(DWORD, LPOLESTR *);
+ STDMETHODIMP InitFromData(IDataObject *, BOOL, DWORD);
+ STDMETHODIMP IsUpToDate(void);
+ STDMETHODIMP SetClientSite(LPOLECLIENTSITE);
+ STDMETHODIMP SetColorScheme(LOGPALETTE *);
+ STDMETHODIMP SetExtent(DWORD, SIZEL *);
+ STDMETHODIMP SetHostNames(LPCOLESTR, LPCOLESTR) ;
+ STDMETHODIMP SetMoniker(DWORD, LPMONIKER);
+ STDMETHODIMP Unadvise(DWORD);
+ STDMETHODIMP Update(void);
+
+private:
+
+ HRESULT doInPlaceActivate(LPMSG lpMsg, LPOLECLIENTSITE pActiveSite, HWND hwndParent, LPCRECT lprcPosRect, BOOL uiActivate);
+
+ IOleAdviseHolder *_p_advise_holder;
+ IOleClientSite *_p_clientsite;
+
+ VLCPlugin *_p_instance;
+};
+
+#endif
+