ReactOS 0.4.15-dev-7196-g0fe0b40
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
44// IObjectWithSite
45
46 virtual STDMETHODIMP GetSite(
48 OUT void **ppvSite
49 );
50
51 virtual STDMETHODIMP SetSite(
52 IN IUnknown *pUnkSite
53 );
54
55// IDeskBand
56
57 virtual STDMETHODIMP GetWindow(
58 OUT HWND *phwnd
59 );
60
62 IN BOOL fEnterMode
63 );
64
65 virtual STDMETHODIMP ShowDW(
66 IN BOOL bShow
67 );
68
69 virtual STDMETHODIMP CloseDW(
71 );
72
74 LPCRECT prcBorder,
75 IUnknown *punkToolbarSite,
76 BOOL fReserved
77 );
78
80 IN DWORD dwBandID,
81 IN DWORD dwViewMode,
82 IN OUT DESKBANDINFO *pdbi
83 );
84
85// IPersistStream
86
88 OUT CLSID *pClassID
89 );
90
92 OUT ULARGE_INTEGER *pcbSize
93 );
94
95 virtual STDMETHODIMP IsDirty();
96
97 virtual STDMETHODIMP Load(
98 IN IStream *pStm
99 );
100
101 virtual STDMETHODIMP Save(
102 IN IStream *pStm,
103 IN BOOL fClearDirty
104 );
105
106// IWinEventHandler
107
109 IN HWND hWnd
110 );
111
112 virtual STDMETHODIMP OnWinEvent(
113 HWND hWnd,
114 UINT uMsg,
117 LRESULT *theResult
118 );
119
121 HWND hWnd
122 );
123
124// IOleCommandTarget
125
126 virtual STDMETHODIMP Exec(
127 IN const GUID *pguidCmdGroup,
128 IN DWORD nCmdID,
129 IN DWORD nCmdexecopt,
130 IN VARIANT *pvaIn,
131 IN OUT VARIANT *pvaOut
132 );
133
135 IN const GUID *pguidCmdGroup,
136 IN ULONG cCmds,
137 IN OUT OLECMD prgCmds[],
138 IN OUT OLECMDTEXT *pCmdText
139 );
140
141// IShellFolderBand
144 );
145
147 IShellFolder *psf,
149 );
150
153 );
154
155// IContextMenu
157 UINT_PTR idCmd,
158 UINT uFlags,
159 UINT *pwReserved,
160 LPSTR pszName,
162 );
163
166 );
167
169 HMENU hmenu,
170 UINT indexMenu,
171 UINT idCmdFirst,
172 UINT idCmdLast,
174 );
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 STDMETHODIMP
Definition: basetyps.h:43
virtual STDMETHODIMP GetSite(IN REFIID riid, OUT void **ppvSite)
Definition: CISFBand.cpp:137
virtual STDMETHODIMP GetWindow(OUT HWND *phwnd)
Definition: CISFBand.cpp:154
HRESULT CreateSimpleToolbar(HWND hWndParent)
Definition: CISFBand.cpp:54
virtual STDMETHODIMP GetCommandString(UINT_PTR idCmd, UINT uFlags, UINT *pwReserved, LPSTR pszName, UINT cchMax)
Definition: CISFBand.cpp:534
CComPtr< IUnknown > m_Site
Definition: CISFBand.h:25
virtual STDMETHODIMP CloseDW(IN DWORD dwReserved)
Definition: CISFBand.cpp:182
virtual STDMETHODIMP ResizeBorderDW(LPCRECT prcBorder, IUnknown *punkToolbarSite, BOOL fReserved)
Definition: CISFBand.cpp:202
virtual STDMETHODIMP ShowDW(IN BOOL bShow)
Definition: CISFBand.cpp:171
CISFBand()
Definition: CISFBand.cpp:28
DWORD m_BandID
Definition: CISFBand.h:24
virtual STDMETHODIMP QueryContextMenu(HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags)
Definition: CISFBand.cpp:638
BOOL m_QLaunch
Definition: CISFBand.h:34
virtual STDMETHODIMP InvokeCommand(LPCMINVOKECOMMANDINFO pici)
Definition: CISFBand.cpp:565
PIDLIST_ABSOLUTE m_pidl
Definition: CISFBand.h:29
virtual STDMETHODIMP IsWindowOwner(HWND hWnd)
Definition: CISFBand.cpp:416
BOOL m_textFlag
Definition: CISFBand.h:32
virtual STDMETHODIMP GetClassID(OUT CLSID *pClassID)
Definition: CISFBand.cpp:285
virtual STDMETHODIMP QueryStatus(IN const GUID *pguidCmdGroup, IN ULONG cCmds, IN OUT OLECMD prgCmds[], IN OUT OLECMDTEXT *pCmdText)
Definition: CISFBand.cpp:423
virtual STDMETHODIMP Save(IN IStream *pStm, IN BOOL fClearDirty)
Definition: CISFBand.cpp:307
virtual STDMETHODIMP ContainsWindow(IN HWND hWnd)
Definition: CISFBand.cpp:323
virtual STDMETHODIMP IsDirty()
Definition: CISFBand.cpp:292
virtual STDMETHODIMP Load(IN IStream *pStm)
Definition: CISFBand.cpp:299
virtual STDMETHODIMP SetBandInfoSFB(PBANDINFOSFB pbi)
Definition: CISFBand.cpp:517
virtual STDMETHODIMP SetSite(IN IUnknown *pUnkSite)
Definition: CISFBand.cpp:115
virtual ~CISFBand()
Definition: CISFBand.cpp:37
virtual STDMETHODIMP InitializeSFB(IShellFolder *psf, PCIDLIST_ABSOLUTE pidl)
Definition: CISFBand.cpp:469
BOOL m_iconFlag
Definition: CISFBand.h:33
virtual STDMETHODIMP GetSizeMax(OUT ULARGE_INTEGER *pcbSize)
Definition: CISFBand.cpp:314
virtual STDMETHODIMP GetBandInfoSFB(PBANDINFOSFB pbi)
Definition: CISFBand.cpp:456
virtual STDMETHODIMP OnWinEvent(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *theResult)
Definition: CISFBand.cpp:334
virtual STDMETHODIMP ContextSensitiveHelp(IN BOOL fEnterMode)
Definition: CISFBand.cpp:165
CComPtr< IShellFolder > m_pISF
Definition: CISFBand.h:28
virtual STDMETHODIMP Exec(IN const GUID *pguidCmdGroup, IN DWORD nCmdID, IN DWORD nCmdexecopt, IN VARIANT *pvaIn, IN OUT VARIANT *pvaOut)
Definition: CISFBand.cpp:430
virtual STDMETHODIMP GetBandInfo(IN DWORD dwBandID, IN DWORD dwViewMode, IN OUT DESKBANDINFO *pdbi)
Definition: CISFBand.cpp:209
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