[NTDLL_APITEST] Add simple tests for RtlUnicodeStringToAnsiString() that were used...
[reactos.git] / dll / win32 / browseui / shellbars / CISFBand.h
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 #pragma once
9
10 class CISFBand :
11 public CWindow,
12 public CComCoClass<CBandSiteMenu, &CLSID_ISFBand>,
13 public CComObjectRootEx<CComMultiThreadModelNoCS>,
14 public IObjectWithSite,
15 public IDeskBand,
16 public IPersistStream,
17 public IWinEventHandler,
18 public IOleCommandTarget,
19 public IShellFolderBand,
20 public IContextMenu
21 {
22 // Band
23 DWORD m_BandID;
24 CComPtr<IUnknown> m_Site;
25
26 // Toolbar
27 CComPtr<IShellFolder> m_pISF;
28 PCIDLIST_ABSOLUTE m_pidl;
29
30 // Menu
31 BOOL m_textFlag;
32 BOOL m_iconFlag;
33
34 public:
35
36 CISFBand();
37 virtual ~CISFBand();
38
39 // Personal Methods
40 HRESULT CreateSimpleToolbar(HWND hWndParent);
41
42 // IObjectWithSite
43
44 virtual STDMETHODIMP GetSite(
45 IN REFIID riid,
46 OUT void **ppvSite
47 );
48
49 virtual STDMETHODIMP SetSite(
50 IN IUnknown *pUnkSite
51 );
52
53 // IDeskBand
54
55 virtual STDMETHODIMP GetWindow(
56 OUT HWND *phwnd
57 );
58
59 virtual STDMETHODIMP ContextSensitiveHelp(
60 IN BOOL fEnterMode
61 );
62
63 virtual STDMETHODIMP ShowDW(
64 IN BOOL bShow
65 );
66
67 virtual STDMETHODIMP CloseDW(
68 IN DWORD dwReserved
69 );
70
71 virtual STDMETHODIMP ResizeBorderDW(
72 LPCRECT prcBorder,
73 IUnknown *punkToolbarSite,
74 BOOL fReserved
75 );
76
77 virtual STDMETHODIMP GetBandInfo(
78 IN DWORD dwBandID,
79 IN DWORD dwViewMode,
80 IN OUT DESKBANDINFO *pdbi
81 );
82
83 // IPersistStream
84
85 virtual STDMETHODIMP GetClassID(
86 OUT CLSID *pClassID
87 );
88
89 virtual STDMETHODIMP GetSizeMax(
90 OUT ULARGE_INTEGER *pcbSize
91 );
92
93 virtual STDMETHODIMP IsDirty();
94
95 virtual STDMETHODIMP Load(
96 IN IStream *pStm
97 );
98
99 virtual STDMETHODIMP Save(
100 IN IStream *pStm,
101 IN BOOL fClearDirty
102 );
103
104 // IWinEventHandler
105
106 virtual STDMETHODIMP ContainsWindow(
107 IN HWND hWnd
108 );
109
110 virtual STDMETHODIMP OnWinEvent(
111 HWND hWnd,
112 UINT uMsg,
113 WPARAM wParam,
114 LPARAM lParam,
115 LRESULT *theResult
116 );
117
118 virtual STDMETHODIMP IsWindowOwner(
119 HWND hWnd
120 );
121
122 // IOleCommandTarget
123
124 virtual STDMETHODIMP Exec(
125 IN const GUID *pguidCmdGroup,
126 IN DWORD nCmdID,
127 IN DWORD nCmdexecopt,
128 IN VARIANT *pvaIn,
129 IN OUT VARIANT *pvaOut
130 );
131
132 virtual STDMETHODIMP QueryStatus(
133 IN const GUID *pguidCmdGroup,
134 IN ULONG cCmds,
135 IN OUT OLECMD prgCmds[],
136 IN OUT OLECMDTEXT *pCmdText
137 );
138
139 // IShellFolderBand
140 virtual STDMETHODIMP GetBandInfoSFB(
141 PBANDINFOSFB pbi
142 );
143
144 virtual STDMETHODIMP InitializeSFB(
145 IShellFolder *psf,
146 PCIDLIST_ABSOLUTE pidl
147 );
148
149 virtual STDMETHODIMP SetBandInfoSFB(
150 PBANDINFOSFB pbi
151 );
152
153 // IContextMenu
154 virtual STDMETHODIMP GetCommandString(
155 UINT_PTR idCmd,
156 UINT uFlags,
157 UINT *pwReserved,
158 LPSTR pszName,
159 UINT cchMax
160 );
161
162 virtual STDMETHODIMP InvokeCommand(
163 LPCMINVOKECOMMANDINFO pici
164 );
165
166 virtual STDMETHODIMP QueryContextMenu(
167 HMENU hmenu,
168 UINT indexMenu,
169 UINT idCmdFirst,
170 UINT idCmdLast,
171 UINT uFlags
172 );
173
174 //*****************************************************************************************************
175
176 DECLARE_REGISTRY_RESOURCEID(IDR_ISFBAND)
177 DECLARE_NOT_AGGREGATABLE(CISFBand)
178 DECLARE_PROTECT_FINAL_CONSTRUCT()
179
180 BEGIN_COM_MAP(CISFBand)
181 COM_INTERFACE_ENTRY2_IID(IID_IOleWindow, IOleWindow, IDeskBand)
182 COM_INTERFACE_ENTRY2_IID(IID_IDockingWindow, IDockingWindow, IDeskBand)
183 COM_INTERFACE_ENTRY_IID(IID_IDeskBand, IDeskBand)
184 COM_INTERFACE_ENTRY_IID(IID_IObjectWithSite, IObjectWithSite)
185 COM_INTERFACE_ENTRY_IID(IID_IPersist, IPersist)
186 COM_INTERFACE_ENTRY_IID(IID_IPersistStream, IPersistStream)
187 COM_INTERFACE_ENTRY_IID(IID_IWinEventHandler, IWinEventHandler)
188 COM_INTERFACE_ENTRY_IID(IID_IOleCommandTarget, IOleCommandTarget)
189 COM_INTERFACE_ENTRY_IID(IID_IShellFolderBand, IShellFolderBand)
190 COM_INTERFACE_ENTRY_IID(IID_IContextMenu, IContextMenu)
191 END_COM_MAP()
192 };
193
194 // C Constructor
195 extern "C"
196 HRESULT WINAPI CISFBand_CreateInstance(REFIID riid, void** ppv);