ReactOS 0.4.16-dev-311-g9382aa2
CQuickLaunchBand.h
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS shell extensions
3 * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
4 * PURPOSE: Quick Launch Toolbar (Taskbar Shell Extension)
5 * COPYRIGHT: Copyright Shriraj Sawant a.k.a SR13 <sr.official@hotmail.com>
6 */
7#pragma once
8
9extern const GUID CLSID_QuickLaunchBand;
10
11// Component category registration
14
15// COM class for quick launch
17 public CComCoClass<CQuickLaunchBand, &CLSID_QuickLaunchBand>,
18 public CComObjectRootEx<CComMultiThreadModelNoCS>,
19 public IObjectWithSite,
20 public IDeskBand,
21 public IPersistStream,
22 public IWinEventHandler,
23 public IOleCommandTarget,
24 public IContextMenu
25{
27 CComPtr<IUnknown> m_punkISFB;
28
29public:
31 virtual ~CQuickLaunchBand();
32
34
35// ATL construct
36
38
39// IObjectWithSite
40
43 OUT void **ppvSite) override;
44
45 STDMETHOD(SetSite)(IN IUnknown *pUnkSite) override;
46
47// IDeskBand
48
49 STDMETHOD(GetWindow)(OUT HWND *phwnd) override;
50
51 STDMETHOD(ContextSensitiveHelp)(IN BOOL fEnterMode) override;
52
53 STDMETHOD(ShowDW)(IN BOOL bShow) override;
54
56
58 LPCRECT prcBorder,
59 IUnknown *punkToolbarSite,
60 BOOL fReserved) override;
61
63 IN DWORD dwBandID,
64 IN DWORD dwViewMode,
65 IN OUT DESKBANDINFO *pdbi) override;
66
67// IPersistStream
68
69 STDMETHOD(GetClassID)(OUT CLSID *pClassID) override;
70
71 STDMETHOD(GetSizeMax)(OUT ULARGE_INTEGER *pcbSize) override;
72
73 STDMETHOD(IsDirty)() override;
74
75 STDMETHOD(Load)(IN IStream *pStm) override;
76
78 IN IStream *pStm,
79 IN BOOL fClearDirty) override;
80
81// IWinEventHandler
82
84 HWND hWnd,
85 UINT uMsg,
88 LRESULT *theResult) override;
89
91
92// IOleCommandTarget
93
95 IN const GUID *pguidCmdGroup,
96 IN DWORD nCmdID,
97 IN DWORD nCmdexecopt,
98 IN VARIANT *pvaIn,
99 IN OUT VARIANT *pvaOut) override;
100
102 IN const GUID *pguidCmdGroup,
103 IN ULONG cCmds,
104 IN OUT OLECMD prgCmds[],
105 IN OUT OLECMDTEXT *pCmdText) override;
106
107// IContextMenu
109 UINT_PTR idCmd,
110 UINT uFlags,
111 UINT *pwReserved,
112 LPSTR pszName,
113 UINT cchMax) override;
114
116
118 HMENU hmenu,
119 UINT indexMenu,
120 UINT idCmdFirst,
121 UINT idCmdLast,
122 UINT uFlags) override;
123
124//*****************************************************************************************************
125
128
132 COM_INTERFACE_ENTRY_IID(IID_IDeskBand, IDeskBand)
136 COM_INTERFACE_ENTRY_IID(IID_IWinEventHandler, IWinEventHandler)
137 COM_INTERFACE_ENTRY_IID(IID_IOleCommandTarget, IOleCommandTarget)
138 COM_INTERFACE_ENTRY_IID(IID_IContextMenu, IContextMenu)
140};
const GUID CLSID_QuickLaunchBand
HRESULT UnregisterComCat()
HRESULT RegisterComCat()
UINT cchMax
HWND hWnd
Definition: settings.c:17
#define STDMETHOD(m)
Definition: basetyps.h:62
STDMETHOD() GetBandInfo(IN DWORD dwBandID, IN DWORD dwViewMode, IN OUT DESKBANDINFO *pdbi) override
STDMETHOD() ContainsWindow(IN HWND hWnd)
STDMETHOD() Save(IN IStream *pStm, IN BOOL fClearDirty) override
STDMETHOD() GetWindow(OUT HWND *phwnd) override
STDMETHOD() GetSizeMax(OUT ULARGE_INTEGER *pcbSize) override
CComPtr< IUnknown > m_punkISFB
STDMETHOD() InvokeCommand(LPCMINVOKECOMMANDINFO pici) override
STDMETHOD() IsDirty() override
STDMETHOD() SetSite(IN IUnknown *pUnkSite) override
STDMETHOD() Exec(IN const GUID *pguidCmdGroup, IN DWORD nCmdID, IN DWORD nCmdexecopt, IN VARIANT *pvaIn, IN OUT VARIANT *pvaOut) override
STDMETHOD() CloseDW(IN DWORD dwReserved) override
STDMETHOD() IsWindowOwner(HWND hWnd) override
STDMETHOD() Load(IN IStream *pStm) override
STDMETHOD() ResizeBorderDW(LPCRECT prcBorder, IUnknown *punkToolbarSite, BOOL fReserved) override
STDMETHOD() GetClassID(OUT CLSID *pClassID) override
STDMETHOD() GetSite(IN REFIID riid, OUT void **ppvSite) override
STDMETHOD() OnWinEvent(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *theResult) override
STDMETHOD() ContextSensitiveHelp(IN BOOL fEnterMode) override
STDMETHOD() QueryContextMenu(HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) override
STDMETHOD() ShowDW(IN BOOL bShow) override
STDMETHOD() GetCommandString(UINT_PTR idCmd, UINT uFlags, UINT *pwReserved, LPSTR pszName, UINT cchMax) override
STDMETHOD() QueryStatus(IN const GUID *pguidCmdGroup, IN ULONG cCmds, IN OUT OLECMD prgCmds[], IN OUT OLECMDTEXT *pCmdText) override
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
UINT uFlags
Definition: api.c:59
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
REFIID riid
Definition: atlbase.h:39
#define COM_INTERFACE_ENTRY2_IID(iid, x, x2)
Definition: atlcom.h:609
#define BEGIN_COM_MAP(x)
Definition: atlcom.h:581
#define COM_INTERFACE_ENTRY_IID(iid, x)
Definition: atlcom.h:601
#define DECLARE_PROTECT_FINAL_CONSTRUCT()
Definition: atlcom.h:679
#define DECLARE_NOT_AGGREGATABLE(x)
Definition: atlcom.h:651
#define END_COM_MAP()
Definition: atlcom.h:592
const IID IID_IObjectWithSite
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:63
unsigned __int3264 UINT_PTR
Definition: mstsclib_h.h:274
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
Definition: mswsock.h:95
unsigned int UINT
Definition: ndis.h:50
const GUID IID_IOleWindow
const GUID IID_IPersist
Definition: proxy.cpp:14
const GUID IID_IPersistStream
Definition: proxy.cpp:13
#define REFIID
Definition: guiddef.h:118
#define IN
Definition: typedefs.h:39
uint32_t ULONG
Definition: typedefs.h:59
#define OUT
Definition: typedefs.h:40
static HMENU hmenu
Definition: win.c:66
LONG_PTR LPARAM
Definition: windef.h:208
LONG_PTR LRESULT
Definition: windef.h:209
UINT_PTR WPARAM
Definition: windef.h:207
char * LPSTR
Definition: xmlstorage.h:182