1 /*****************************************************************************
2 * oleobject.h: ActiveX control for VLC
3 *****************************************************************************
4 * Copyright (C) 2005 the VideoLAN team
6 * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
21 *****************************************************************************/
23 #ifndef __OLEOBJECT_H__
24 #define __OLEOBJECT_H__
26 class VLCOleObject
: public IOleObject
31 VLCOleObject(VLCPlugin
*p_instance
);
32 virtual ~VLCOleObject();
35 STDMETHODIMP
QueryInterface(REFIID riid
, void **ppv
)
39 if( (IID_IUnknown
== riid
)
40 || (IID_IOleObject
== riid
) )
43 *ppv
= reinterpret_cast<LPVOID
>(this);
46 return _p_instance
->pUnkOuter
->QueryInterface(riid
, ppv
);
49 STDMETHODIMP_(ULONG
) AddRef(void) { return _p_instance
->pUnkOuter
->AddRef(); };
50 STDMETHODIMP_(ULONG
) Release(void) { return _p_instance
->pUnkOuter
->Release(); };
53 STDMETHODIMP
Advise(IAdviseSink
*, LPDWORD
);
54 STDMETHODIMP
Close(DWORD
);
55 STDMETHODIMP
DoVerb(LONG
, LPMSG
, LPOLECLIENTSITE
, LONG
, HWND
, LPCRECT
);
56 STDMETHODIMP
EnumAdvise(IEnumSTATDATA
**);
57 STDMETHODIMP
EnumVerbs(IEnumOleVerb
**);
58 STDMETHODIMP
GetClientSite(LPOLECLIENTSITE
*);
59 STDMETHODIMP
GetClipboardData(DWORD
, LPDATAOBJECT
*);
60 STDMETHODIMP
GetExtent(DWORD
, SIZEL
*);
61 STDMETHODIMP
GetMiscStatus(DWORD
, DWORD
*);
62 STDMETHODIMP
GetMoniker(DWORD
, DWORD
, LPMONIKER
*);
63 STDMETHODIMP
GetUserClassID(CLSID
*);
64 STDMETHODIMP
GetUserType(DWORD
, LPOLESTR
*);
65 STDMETHODIMP
InitFromData(IDataObject
*, BOOL
, DWORD
);
66 STDMETHODIMP
IsUpToDate(void);
67 STDMETHODIMP
SetClientSite(LPOLECLIENTSITE
);
68 STDMETHODIMP
SetColorScheme(LOGPALETTE
*);
69 STDMETHODIMP
SetExtent(DWORD
, SIZEL
*);
70 STDMETHODIMP
SetHostNames(LPCOLESTR
, LPCOLESTR
) ;
71 STDMETHODIMP
SetMoniker(DWORD
, LPMONIKER
);
72 STDMETHODIMP
Unadvise(DWORD
);
73 STDMETHODIMP
Update(void);
77 HRESULT
doInPlaceActivate(LPMSG lpMsg
, LPOLECLIENTSITE pActiveSite
, HWND hwndParent
, LPCRECT lprcPosRect
, BOOL uiActivate
);
79 IOleAdviseHolder
*_p_advise_holder
;
80 IOleClientSite
*_p_clientsite
;
82 VLCPlugin
*_p_instance
;