[COM_APITEST] Add a test for CLSID_ActiveDesktop
[reactos.git] / modules / rostests / apitests / com / browseui.c
1 /*
2 * PROJECT: ReactOS api tests
3 * LICENSE: GPLv2+ - See COPYING in the top level directory
4 * PURPOSE: COM interface test for browseui classes
5 * PROGRAMMER: Thomas Faber <thomas.faber@reactos.org>
6 */
7
8 #include "com_apitest.h"
9
10 #define NDEBUG
11 #include <debug.h>
12
13 static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
14 {
15 {
16 ID_NAME(CLSID_ACLCustomMRU),
17 {
18 { 0x0, &IID_IEnumString },
19 { 0x0, &IID_IUnknown },
20 { 0x4, &IID_IACList },
21 { 0x8, &IID_IACLCustomMRU },
22 },
23 },
24 {
25 ID_NAME(CLSID_ACLHistory),
26 {
27 { 0x0, &IID_IEnumString },
28 { 0x0, &IID_IUnknown },
29 },
30 },
31 {
32 ID_NAME(CLSID_ACLMRU),
33 {
34 { 0x0, &IID_IEnumString },
35 { 0x0, &IID_IUnknown },
36 { 0x4, &IID_IACList },
37 { 0x8, &IID_IACLCustomMRU },
38 },
39 },
40 {
41 ID_NAME(CLSID_ACLMulti),
42 {
43 { 0x0, &IID_IEnumString },
44 { 0x0, &IID_IUnknown },
45 { 0x4, &IID_IObjMgr },
46 { 0x8, &IID_IACList },
47 }
48 },
49 {
50 ID_NAME(CLSID_ACListISF),
51 {
52 { 0x0, &IID_IEnumString },
53 { 0x0, &IID_IUnknown },
54 { 0x4, &IID_IACList2 },
55 { 0x4, &IID_IACList },
56 { 0x8, &IID_ICurrentWorkingDirectory },
57 { 0xc, &IID_IShellService },
58 { 0x10, &IID_IPersistFolder },
59 }
60 },
61 {
62 ID_NAME(CLSID_AddressEditBox),
63 {
64 { 0x0, &IID_IWinEventHandler },
65 { 0x0, &IID_IUnknown },
66 { 0x4, &IID_IDispatch },
67 { 0x8, &IID_IAddressBand },
68 { 0xc, &IID_IAddressEditBox },
69 { 0x10, &IID_IOleCommandTarget },
70 { 0x14, &IID_IPersistStream },
71 { 0x18, &IID_IShellService },
72 }
73 },
74 {
75 ID_NAME(CLSID_AugmentedShellFolder),
76 {
77 { 0x0, &IID_IAugmentedShellFolder2 },
78 { 0x0, &IID_IAugmentedShellFolder },
79 { 0x0, &IID_IShellFolder },
80 { 0x0, &IID_IUnknown },
81 { 0x4, &IID_IShellService },
82 { 0x8, &IID_ITranslateShellChangeNotify },
83 }
84 },
85 {
86 ID_NAME(CLSID_AugmentedShellFolder2),
87 {
88 { 0x0, &IID_IAugmentedShellFolder2 },
89 { 0x0, &IID_IAugmentedShellFolder },
90 { 0x0, &IID_IShellFolder },
91 { 0x0, &IID_IUnknown },
92 { 0x4, &IID_IShellFolder2 },
93 { 0x8, &IID_IShellService },
94 { 0xc, &IID_ITranslateShellChangeNotify },
95 { 0x10, &IID_IDropTarget },
96 }
97 },
98 {
99 ID_NAME(CLSID_AutoComplete),
100 {
101 { 0x0, &IID_IAutoComplete2 },
102 { 0x0, &IID_IAutoComplete },
103 { 0x0, &IID_IUnknown },
104 { 0x4, &IID_IAutoCompleteDropDown },
105 { 0x8, &IID_IEnumString },
106 { 0xc, &IID_IAccessible },
107 { 0xc, &IID_IDispatch },
108 }
109 },
110 {
111 ID_NAME(CLSID_BackgroundTaskScheduler),
112 {
113 { 0x0, &IID_IShellTaskScheduler },
114 { 0x0, &IID_IUnknown },
115 }
116 },
117 {
118 ID_NAME(CLSID_BandProxy),
119 {
120 { 0x0, &IID_IBandProxy },
121 { 0x0, &IID_IUnknown },
122 }
123 },
124 {
125 ID_NAME(CLSID_BandSiteMenu),
126 {
127 { 0x0, &IID_IContextMenu3 },
128 { 0x0, &IID_IContextMenu2 },
129 { 0x0, &IID_IContextMenu },
130 { 0x0, &IID_IUnknown },
131 { 0x4, &IID_IShellService },
132 }
133 },
134 {
135 ID_NAME(CLSID_BrandBand),
136 {
137 { 0x0, &IID_IDeskBand },
138 { 0x0, &IID_IDockingWindow },
139 { 0x0, &IID_IOleWindow },
140 { 0x0, &IID_IUnknown },
141 { 0x4, &IID_IObjectWithSite },
142 { 0xc, &IID_IInputObject },
143 { 0x10, &IID_IPersistStream },
144 { 0x10, &IID_IPersist },
145 { 0x14, &IID_IOleCommandTarget },
146 { 0x18, &IID_IServiceProvider },
147 { 0x30, &IID_IWinEventHandler },
148 { 0x34, &IID_IDispatch },
149 }
150 },
151 {
152 ID_NAME(CLSID_BrowserBand),
153 {
154 { -0x30, &IID_IDeskBand },
155 { -0x30, &IID_IDockingWindow },
156 { -0x30, &IID_IOleWindow },
157 { -0x2c, &IID_IObjectWithSite },
158 { -0x24, &IID_IInputObject },
159 { -0x20, &IID_IPersistStream },
160 { -0x20, &IID_IPersist },
161 { -0x1c, &IID_IOleCommandTarget },
162 { -0x18, &IID_IServiceProvider },
163 { 0x0, &IID_IContextMenu },
164 { 0x0, &IID_IUnknown },
165 { 0x4, &IID_IWinEventHandler },
166 { 0x8, &IID_IDispatch },
167 { 0x10, &IID_IPersistPropertyBag },
168 },
169 },
170 {
171 ID_NAME(CLSID_CCommonBrowser),
172 {
173 { 0x0, &IID_IUnknown },
174 { 0xc, &IID_IShellBrowser },
175 { 0xc, &IID_IOleWindow },
176 { 0x10, &IID_IBrowserService3 },
177 { 0x10, &IID_IBrowserService2 },
178 { 0x10, &IID_IBrowserService },
179 { 0x14, &IID_IServiceProvider },
180 { 0x18, &IID_IOleCommandTarget },
181 { 0x1c, &IID_IDockingWindowSite },
182 { 0x20, &IID_IDockingWindowFrame },
183 { 0x24, &IID_IInputObjectSite },
184 { 0x28, &IID_IDropTarget },
185 { 0x2c, &IID_IShellBrowserService },
186 }
187 },
188 {
189 ID_NAME(CLSID_CDockingBarPropertyBag),
190 {
191 { 0x0, &IID_IPropertyBag },
192 { 0x0, &IID_IUnknown },
193 },
194 },
195 {
196 ID_NAME(CLSID_CRegTreeOptions),
197 {
198 { 0x0, &IID_IRegTreeOptions },
199 { 0x0, &IID_IUnknown },
200 { 0x4, &IID_IObjectWithSite },
201 }
202 },
203 {
204 ID_NAME(CLSID_CommBand),
205 {
206 { -0x30, &IID_IDeskBand },
207 { -0x30, &IID_IDockingWindow },
208 { -0x30, &IID_IOleWindow },
209 { -0x2c, &IID_IObjectWithSite },
210 { -0x24, &IID_IInputObject },
211 { -0x20, &IID_IPersistStream },
212 { -0x20, &IID_IPersist },
213 { -0x1c, &IID_IOleCommandTarget },
214 { -0x18, &IID_IServiceProvider },
215 { 0x0, &IID_IContextMenu },
216 { 0x0, &IID_IUnknown },
217 { 0x4, &IID_IWinEventHandler },
218 { 0x8, &IID_IDispatch },
219 { 0x10, &IID_IPersistPropertyBag },
220 },
221 },
222 {
223 ID_NAME(CLSID_DeskBar),
224 {
225 { -0xb8, &IID_IOleCommandTarget },
226 { -0xb4, &IID_IServiceProvider },
227 { -0xb0, &IID_IDeskBar },
228 { -0xb0, &IID_IOleWindow },
229 { -0xac, &IID_IInputObjectSite },
230 { -0xa8, &IID_IInputObject },
231 { -0x70, &IID_IDockingWindow },
232 { -0x6c, &IID_IObjectWithSite },
233 { -0x68, &IID_IPersistStreamInit },
234 { -0x68, &IID_IPersistStream },
235 { -0x68, &IID_IPersist },
236 { -0x64, &IID_IPersistPropertyBag },
237 { 0x0, &IID_IUnknown },
238 }
239 },
240 {
241 ID_NAME(CLSID_DeskBarApp),
242 {
243 { -0xb8, &IID_IOleCommandTarget },
244 { -0xb4, &IID_IServiceProvider },
245 { -0xb0, &IID_IDeskBar },
246 { -0xb0, &IID_IOleWindow },
247 { -0xac, &IID_IInputObjectSite },
248 { -0xa8, &IID_IInputObject },
249 { -0x70, &IID_IDockingWindow },
250 { -0x6c, &IID_IObjectWithSite },
251 { -0x68, &IID_IPersistStreamInit },
252 { -0x68, &IID_IPersistStream },
253 { -0x68, &IID_IPersist },
254 { -0x64, &IID_IPersistPropertyBag },
255 { 0x0, &IID_IUnknown },
256 { 0x8, &IID_IContextMenu3 },
257 { 0x8, &IID_IContextMenu2 },
258 { 0x8, &IID_IContextMenu },
259 }
260 },
261 {
262 ID_NAME(CLSID_GlobalFolderSettings),
263 {
264 { 0x0, &IID_IGlobalFolderSettings },
265 { 0x0, &IID_IUnknown },
266 },
267 L"Both"
268 },
269 {
270 ID_NAME(CLSID_ImageListCache),
271 {
272 { 0x0, &IID_IUnknown },
273 },
274 L"Both"
275 },
276 {
277 ID_NAME(CLSID_ImgCtxThumbnailExtractor),
278 {
279 { 0x0, &IID_IExtractImage2 },
280 { 0x0, &IID_IExtractImage },
281 { 0x0, &IID_IUnknown },
282 { 0x8, &IID_IPersistFile },
283 },
284 L"Both"
285 },
286 {
287 ID_NAME(CLSID_InternetToolbar),
288 {
289 { -0x54, &IID_IOleCommandTarget },
290 { -0x50, &IID_IServiceProvider },
291 { -0x4c, &IID_IDeskBar },
292 { -0x4c, &IID_IOleWindow },
293 { -0x48, &IID_IInputObjectSite },
294 { -0x44, &IID_IInputObject },
295 { -0xc, &IID_IDockingWindow },
296 { -0x8, &IID_IObjectWithSite },
297 { -0x4, &IID_IExplorerToolbar },
298 { 0x0, &DIID_DWebBrowserEvents },
299 { 0x0, &IID_IDispatch },
300 { 0x0, &IID_IUnknown },
301 { 0x4, &IID_IPersistStreamInit },
302 { 0x8, &IID_IShellChangeNotify },
303 }
304 },
305 {
306 ID_NAME(CLSID_ProgressDialog),
307 {
308 { 0x0, &IID_IProgressDialog },
309 { 0x0, &IID_IUnknown },
310 { 0x4, &IID_IOleWindow },
311 { 0x8, &IID_IActionProgressDialog },
312 { 0xc, &IID_IActionProgress },
313 { 0x10, &IID_IObjectWithSite },
314 },
315 L"Both"
316 },
317 {
318 ID_NAME(CLSID_RebarBandSite),
319 {
320 { 0x0, &IID_IUnknown },
321 { 0xc, &IID_IBandSite },
322 { 0x10, &IID_IInputObjectSite },
323 { 0x14, &IID_IInputObject },
324 { 0x18, &IID_IDeskBarClient },
325 { 0x18, &IID_IOleWindow },
326 { 0x1c, &IID_IWinEventHandler },
327 { 0x20, &IID_IPersistStream },
328 { 0x20, &IID_IPersist },
329 { 0x24, &IID_IDropTarget },
330 { 0x28, &IID_IServiceProvider },
331 { 0x2c, &IID_IBandSiteHelper },
332 { 0x30, &IID_IOleCommandTarget },
333 }
334 },
335 {
336 ID_NAME(CLSID_SH_AddressBand),
337 {
338 { 0x0, &IID_IDeskBand },
339 { 0x0, &IID_IDockingWindow },
340 { 0x0, &IID_IOleWindow },
341 { 0x0, &IID_IUnknown },
342 { 0x4, &IID_IObjectWithSite },
343 { 0xc, &IID_IInputObject },
344 { 0x10, &IID_IPersistStream },
345 { 0x10, &IID_IPersist },
346 { 0x14, &IID_IOleCommandTarget },
347 { 0x18, &IID_IServiceProvider },
348 { 0x30, &IID_IWinEventHandler },
349 { 0x34, &IID_IAddressBand },
350 { 0x38, &IID_IInputObjectSite },
351 }
352 },
353 {
354 ID_NAME(CLSID_SH_SearchBand),
355 {
356 { 0x0, &IID_IUnknown },
357 { 0x74, &IID_IOleContainer },
358 { 0x78, &IID_IOleInPlaceFrame },
359 //{ 0x78, &IID_IOleInPlaceUIWindow },
360 { 0x78, &IID_IOleWindow },
361 { 0xb0, &IID_IDeskBand },
362 { 0xb0, &IID_IDockingWindow },
363 { 0xb4, &IID_IInputObject },
364 { 0xb8, &IID_IObjectWithSite },
365 { 0xbc, &IID_IContextMenu },
366 { 0xc0, &IID_IServiceProvider },
367 { 0xc8, &IID_ISearchBar },
368 { 0xcc, &IID_IFileSearchBand },
369 { 0xcc, &IID_IDispatch },
370 { 0xd0, &IID_IBandNavigate },
371 { 0xd8, &IID_IPersist },
372 }
373 },
374 {
375 ID_NAME(CLSID_SharedTaskScheduler),
376 {
377 { 0x0, &IID_IShellTaskScheduler },
378 { 0x0, &IID_IUnknown },
379 }
380 },
381 {
382 ID_NAME(CLSID_ShellSearchExt),
383 {
384 { 0x0, &IID_IContextMenu },
385 { 0x0, &IID_IUnknown },
386 { 0x4, &IID_IObjectWithSite },
387 }
388 },
389 {
390 ID_NAME(CLSID_ShellTaskScheduler),
391 {
392 { 0x0, &IID_IShellTaskScheduler },
393 { 0x0, &IID_IUnknown },
394 },
395 },
396 {
397 ID_NAME(CLSID_UserAssist),
398 {
399 { 0x0, &IID_IUnknown },
400 },
401 L"Both"
402 },
403 {
404 ID_NAME(CLSID_WebSearchExt),
405 {
406 { 0x0, &IID_IContextMenu },
407 { 0x0, &IID_IUnknown },
408 { 0x4, &IID_IObjectWithSite },
409 },
410 },
411 };
412 static const INT ExpectedInterfaceCount = RTL_NUMBER_OF(ExpectedInterfaces);
413
414 START_TEST(browseui)
415 {
416 TestClasses(L"browseui", ExpectedInterfaces, ExpectedInterfaceCount);
417 }