Sync with trunk r63637.
[reactos.git] / dll / win32 / shell32 / CMenuDeskBar.h
1 #pragma once
2
3 class CMenuDeskBar:
4 public CComCoClass<CMenuDeskBar, &CLSID_MenuDeskBar>,
5 public CComObjectRootEx<CComMultiThreadModelNoCS>,
6 public IOleCommandTarget,
7 public IServiceProvider,
8 public IInputObjectSite,
9 public IInputObject,
10 public IMenuPopup,
11 public IObjectWithSite,
12 public IBanneredBar,
13 public IInitializeObject
14 {
15 public:
16
17 // *** IMenuPopup methods ***
18 virtual HRESULT STDMETHODCALLTYPE Popup(POINTL *ppt, RECTL *prcExclude, MP_POPUPFLAGS dwFlags);
19 virtual HRESULT STDMETHODCALLTYPE OnSelect(DWORD dwSelectType);
20 virtual HRESULT STDMETHODCALLTYPE SetSubMenu(IMenuPopup *pmp,BOOL fSet);
21
22 // *** IDeskBar methods ***
23 virtual HRESULT STDMETHODCALLTYPE SetClient(IUnknown *punkClient);
24 virtual HRESULT STDMETHODCALLTYPE GetClient(IUnknown **ppunkClient);
25 virtual HRESULT STDMETHODCALLTYPE OnPosRectChangeDB(RECT *prc);
26
27 // *** IOleWindow methods ***
28 virtual HRESULT STDMETHODCALLTYPE GetWindow(HWND *phwnd);
29 virtual HRESULT STDMETHODCALLTYPE ContextSensitiveHelp(BOOL fEnterMode);
30
31 // *** IObjectWithSite methods ***
32 virtual HRESULT STDMETHODCALLTYPE SetSite(IUnknown *pUnkSite);
33 virtual HRESULT STDMETHODCALLTYPE GetSite(REFIID riid,PVOID *ppvSite);
34
35 // *** IBanneredBar methods ***
36 virtual HRESULT STDMETHODCALLTYPE SetIconSize(THIS_ DWORD iIcon);
37 virtual HRESULT STDMETHODCALLTYPE GetIconSize(THIS_ DWORD* piIcon);
38 virtual HRESULT STDMETHODCALLTYPE SetBitmap(THIS_ HBITMAP hBitmap);
39 virtual HRESULT STDMETHODCALLTYPE GetBitmap(THIS_ HBITMAP* phBitmap);
40
41 // *** IInitializeObject methods ***
42 virtual HRESULT STDMETHODCALLTYPE Initialize(THIS);
43
44 // *** IOleCommandTarget methods ***
45 virtual HRESULT STDMETHODCALLTYPE QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText);
46 virtual HRESULT STDMETHODCALLTYPE Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut);
47
48 // *** IServiceProvider methods ***
49 virtual HRESULT STDMETHODCALLTYPE QueryService(REFGUID guidService, REFIID riid, void **ppvObject);
50
51 // *** IInputObjectSite methods ***
52 virtual HRESULT STDMETHODCALLTYPE OnFocusChangeIS(THIS_ LPUNKNOWN lpUnknown, BOOL bFocus);
53
54 // *** IInputObject methods ***
55 virtual HRESULT STDMETHODCALLTYPE UIActivateIO(THIS_ BOOL bActivating, LPMSG lpMsg);
56 virtual HRESULT STDMETHODCALLTYPE HasFocusIO(THIS);
57 virtual HRESULT STDMETHODCALLTYPE TranslateAcceleratorIO(THIS_ LPMSG lpMsg);
58
59 DECLARE_REGISTRY_RESOURCEID(IDR_MENUDESKBAR)
60 DECLARE_NOT_AGGREGATABLE(CMenuDeskBar)
61 DECLARE_PROTECT_FINAL_CONSTRUCT()
62
63 BEGIN_COM_MAP(CMenuDeskBar)
64 COM_INTERFACE_ENTRY_IID(IID_IMenuPopup, IMenuPopup)
65 COM_INTERFACE_ENTRY_IID(IID_IOleCommandTarget, IOleCommandTarget)
66 COM_INTERFACE_ENTRY_IID(IID_IServiceProvider, IServiceProvider)
67 COM_INTERFACE_ENTRY_IID(IID_IInputObjectSite, IInputObjectSite)
68 COM_INTERFACE_ENTRY_IID(IID_IInputObject, IInputObject)
69 COM_INTERFACE_ENTRY_IID(IID_IDeskBar, IMenuPopup)
70 COM_INTERFACE_ENTRY_IID(IID_IOleWindow, IMenuPopup)
71 COM_INTERFACE_ENTRY_IID(IID_IObjectWithSite, IObjectWithSite)
72 COM_INTERFACE_ENTRY_IID(IID_IBanneredBar, IBanneredBar)
73 COM_INTERFACE_ENTRY_IID(IID_IInitializeObject, IInitializeObject)
74 END_COM_MAP()
75
76 };