ReactOS 0.4.15-dev-7918-g2a2556c
CISFBand.h
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS shell extensions
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: dll/shellext/qcklnch/CISFBand.h
5 * PURPOSE: Quick Launch Toolbar (Taskbar Shell Extension)
6 * PROGRAMMERS: Shriraj Sawant a.k.a SR13 <sr.official@hotmail.com>
7 */
8
9#pragma once
10
11class CISFBand :
12 public CWindow,
13 public CComCoClass<CBandSiteMenu, &CLSID_ISFBand>,
14 public CComObjectRootEx<CComMultiThreadModelNoCS>,
15 public IObjectWithSite,
16 public IDeskBand,
17 public IPersistStream,
18 public IWinEventHandler,
19 public IOleCommandTarget,
20 public IShellFolderBand,
21 public IContextMenu
22{
23 // Band
25 CComPtr<IUnknown> m_Site;
26
27 // Toolbar
28 CComPtr<IShellFolder> m_pISF;
30
31 // Menu
35
36public:
37
38 CISFBand();
39 virtual ~CISFBand();
40
41// Personal Methods
43
46 );
47
48// IObjectWithSite
49
52 OUT void **ppvSite
53 ) override;
54
56 IN IUnknown *pUnkSite
57 ) override;
58
59// IDeskBand
60
62 OUT HWND *phwnd
63 ) override;
64
66 IN BOOL fEnterMode
67 ) override;
68
70 IN BOOL bShow
71 ) override;
72
75 ) override;
76
78 LPCRECT prcBorder,
79 IUnknown *punkToolbarSite,
80 BOOL fReserved
81 ) override;
82
84 IN DWORD dwBandID,
85 IN DWORD dwViewMode,
86 IN OUT DESKBANDINFO *pdbi
87 ) override;
88
89// IPersistStream
90
92 OUT CLSID *pClassID
93 ) override;
94
96 OUT ULARGE_INTEGER *pcbSize
97 ) override;
98
99 STDMETHOD(IsDirty)() override;
100
102 IN IStream *pStm
103 ) override;
104
106 IN IStream *pStm,
107 IN BOOL fClearDirty
108 ) override;
109
110// IWinEventHandler
111
113 HWND hWnd,
114 UINT uMsg,
117 LRESULT *theResult
118 ) override;
119
121 HWND hWnd
122 ) override;
123
124// IOleCommandTarget
125
127 IN const GUID *pguidCmdGroup,
128 IN DWORD nCmdID,
129 IN DWORD nCmdexecopt,
130 IN VARIANT *pvaIn,
131 IN OUT VARIANT *pvaOut
132 ) override;
133
135 IN const GUID *pguidCmdGroup,
136 IN ULONG cCmds,
137 IN OUT OLECMD prgCmds[],
138 IN OUT OLECMDTEXT *pCmdText
139 ) override;
140
141// IShellFolderBand
144 ) override;
145
147 IShellFolder *psf,
149 ) override;
150
153 ) override;
154
155// IContextMenu
157 UINT_PTR idCmd,
158 UINT uFlags,
159 UINT *pwReserved,
160 LPSTR pszName,
162 ) override;
163
166 ) override;
167
169 HMENU hmenu,
170 UINT indexMenu,
171 UINT idCmdFirst,
172 UINT idCmdLast,
174 ) override;
175
176//*****************************************************************************************************
177
181
185 COM_INTERFACE_ENTRY_IID(IID_IDeskBand, IDeskBand)
189 COM_INTERFACE_ENTRY_IID(IID_IWinEventHandler, IWinEventHandler)
190 COM_INTERFACE_ENTRY_IID(IID_IOleCommandTarget, IOleCommandTarget)
191 COM_INTERFACE_ENTRY_IID(IID_IShellFolderBand, IShellFolderBand)
192 COM_INTERFACE_ENTRY_IID(IID_IContextMenu, IContextMenu)
194};
195
HRESULT WINAPI RSHELL_CISFBand_CreateInstance(REFIID riid, void **ppv)
Definition: CISFBand.cpp:669
UINT cchMax
HWND hWnd
Definition: settings.c:17
#define STDMETHOD(m)
Definition: basetyps.h:62
STDMETHOD() ContextSensitiveHelp(IN BOOL fEnterMode) override
Definition: CISFBand.cpp:165
HRESULT CreateSimpleToolbar(HWND hWndParent)
Definition: CISFBand.cpp:54
CComPtr< IUnknown > m_Site
Definition: CISFBand.h:25
STDMETHOD() ShowDW(IN BOOL bShow) override
Definition: CISFBand.cpp:171
STDMETHOD() Load(IN IStream *pStm) override
Definition: CISFBand.cpp:299
STDMETHOD() SetSite(IN IUnknown *pUnkSite) override
Definition: CISFBand.cpp:115
STDMETHOD() GetCommandString(UINT_PTR idCmd, UINT uFlags, UINT *pwReserved, LPSTR pszName, UINT cchMax) override
Definition: CISFBand.cpp:534
STDMETHOD() InitializeSFB(IShellFolder *psf, PCIDLIST_ABSOLUTE pidl) override
Definition: CISFBand.cpp:469
STDMETHOD() CloseDW(IN DWORD dwReserved) override
Definition: CISFBand.cpp:182
STDMETHOD() QueryContextMenu(HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) override
Definition: CISFBand.cpp:638
CISFBand()
Definition: CISFBand.cpp:28
DWORD m_BandID
Definition: CISFBand.h:24
BOOL m_QLaunch
Definition: CISFBand.h:34
PIDLIST_ABSOLUTE m_pidl
Definition: CISFBand.h:29
STDMETHOD() OnWinEvent(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *theResult) override
Definition: CISFBand.cpp:334
STDMETHOD() GetBandInfo(IN DWORD dwBandID, IN DWORD dwViewMode, IN OUT DESKBANDINFO *pdbi) override
Definition: CISFBand.cpp:209
BOOL m_textFlag
Definition: CISFBand.h:32
STDMETHOD() ContainsWindow(IN HWND hWnd)
Definition: CISFBand.cpp:323
STDMETHOD() InvokeCommand(LPCMINVOKECOMMANDINFO pici) override
Definition: CISFBand.cpp:565
virtual ~CISFBand()
Definition: CISFBand.cpp:37
STDMETHOD() ResizeBorderDW(LPCRECT prcBorder, IUnknown *punkToolbarSite, BOOL fReserved) override
Definition: CISFBand.cpp:202
STDMETHOD() Exec(IN const GUID *pguidCmdGroup, IN DWORD nCmdID, IN DWORD nCmdexecopt, IN VARIANT *pvaIn, IN OUT VARIANT *pvaOut) override
Definition: CISFBand.cpp:430
STDMETHOD() IsDirty() override
Definition: CISFBand.cpp:292
STDMETHOD() QueryStatus(IN const GUID *pguidCmdGroup, IN ULONG cCmds, IN OUT OLECMD prgCmds[], IN OUT OLECMDTEXT *pCmdText) override
Definition: CISFBand.cpp:423
BOOL m_iconFlag
Definition: CISFBand.h:33
STDMETHOD() GetWindow(OUT HWND *phwnd) override
Definition: CISFBand.cpp:154
STDMETHOD() GetSizeMax(OUT ULARGE_INTEGER *pcbSize) override
Definition: CISFBand.cpp:314
STDMETHOD() GetSite(IN REFIID riid, OUT void **ppvSite) override
Definition: CISFBand.cpp:137
STDMETHOD() IsWindowOwner(HWND hWnd) override
Definition: CISFBand.cpp:416
STDMETHOD() GetClassID(OUT CLSID *pClassID) override
Definition: CISFBand.cpp:285
CComPtr< IShellFolder > m_pISF
Definition: CISFBand.h:28
STDMETHOD() SetBandInfoSFB(PBANDINFOSFB pbi) override
Definition: CISFBand.cpp:517
STDMETHOD() GetBandInfoSFB(PBANDINFOSFB pbi) override
Definition: CISFBand.cpp:456
STDMETHOD() Save(IN IStream *pStm, IN BOOL fClearDirty) override
Definition: CISFBand.cpp:307
Definition: terminate.cpp:24
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
UINT uFlags
Definition: api.c:59
#define IDR_ISFBAND
Definition: resource.h:105
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
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 DECLARE_REGISTRY_RESOURCEID(x)
Definition: atlcom.h:645
#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
_Inout_ PERBANDINFO * pbi
Definition: winddi.h:3917
LONG_PTR LPARAM
Definition: windef.h:208
LONG_PTR LRESULT
Definition: windef.h:209
UINT_PTR WPARAM
Definition: windef.h:207
#define WINAPI
Definition: msvc.h:6
char * LPSTR
Definition: xmlstorage.h:182