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