ReactOS 0.4.16-dev-1946-g52006dd
shell32.c
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS api tests
3 * LICENSE: GPLv2+ - See COPYING in the top level directory
4 * PURPOSE: COM interface test for shell32 classes
5 * PROGRAMMER: Thomas Faber <thomas.faber@reactos.org>
6 * Carl Bialorucki <carl.bialorucki@reactos.org>
7 */
8
9#include "com_apitest.h"
10
11#define NDEBUG
12#include <debug.h>
13
15{
16 {
17 ID_NAME(CLSID_ACLCustomMRU, NTDDI_WIN7, NTDDI_MAX),
18 {
21 { NTDDI_WIN7, NTDDI_MAX, &IID_IACList },
22 { NTDDI_WIN7, NTDDI_MAX, &IID_IACLCustomMRU },
23 },
24 },
25 {
26 ID_NAME(CLSID_ACLHistory, NTDDI_WIN7, NTDDI_MAX),
27 {
30 },
31 },
32 {
33 ID_NAME(CLSID_ACLMRU, NTDDI_WIN7, NTDDI_MAX),
34 {
37 { NTDDI_WIN7, NTDDI_MAX, &IID_IACList },
38 { NTDDI_WIN7, NTDDI_MAX, &IID_IACLCustomMRU },
39 },
40 },
41 {
42 ID_NAME(CLSID_ACLMulti, NTDDI_WIN7, NTDDI_MAX),
43 {
46 { NTDDI_WIN7, NTDDI_MAX, &IID_IObjMgr },
47 { NTDDI_WIN7, NTDDI_MAX, &IID_IACList },
49 { NTDDI_WIN7, NTDDI_MAX, &IID_IPersistFolder },
50 }
51 },
52 {
53 ID_NAME(CLSID_ACListISF, NTDDI_WIN7, NTDDI_MAX),
54 {
57 { NTDDI_WIN7, NTDDI_MAX, &IID_IACList2 },
58 { NTDDI_WIN7, NTDDI_MAX, &IID_IACList },
59 { NTDDI_WIN7, NTDDI_MAX, &IID_ICurrentWorkingDirectory },
60 { NTDDI_WIN7, NTDDI_MAX, &IID_IPersistFolder },
61 { NTDDI_WIN7, NTDDI_MAX, &IID_IPersistIDList },
62 }
63 },
64 {
65 ID_NAME(CLSID_ActiveDesktop, NTDDI_MIN, NTDDI_MAX),
66 {
67 { NTDDI_MIN, NTDDI_MAX, &IID_IActiveDesktop },
68 { NTDDI_MIN, NTDDI_MAX, &IID_IActiveDesktopP },
69 { NTDDI_MIN, NTDDI_MAX, &IID_IADesktopP2 },
72 }
73 },
74 {
75 ID_NAME(CLSID_AutoComplete, NTDDI_WIN7, NTDDI_MAX),
76 {
77 { NTDDI_WIN7, NTDDI_MAX, &IID_IAutoComplete2 },
78 { NTDDI_WIN7, NTDDI_MAX, &IID_IAutoComplete },
80 { NTDDI_WIN7, NTDDI_MAX, &IID_IAutoCompleteDropDown },
82 { NTDDI_WIN7, NTDDI_MAX, &IID_IAccessible },
84 { NTDDI_WIN7, NTDDI_MAX, &IID_IShellService },
85 }
86 },
87 {
88 ID_NAME(CLSID_BackgroundTaskScheduler, NTDDI_WIN7, NTDDI_VISTASP4),
89 {
90 { NTDDI_WIN7, NTDDI_MAX, &IID_IShellTaskScheduler },
92 { NTDDI_WIN7, NTDDI_MAX, &IID_IMarshal },
93 }
94 },
95 {
96 ID_NAME(CLSID_BandProxy, NTDDI_WIN7, NTDDI_MAX),
97 {
100 { NTDDI_WIN7, NTDDI_MAX, &IID_IServiceProvider },
101 }
102 },
103 {
104 ID_NAME(CLSID_CDBurn, NTDDI_MIN, NTDDI_MAX),
105 {
106 { NTDDI_MIN, NTDDI_WS03SP4, &IID_ICDBurnPriv },
107 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IDiscMasterProgressEvents },
108 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IDriveFolderExtOld },
109 { NTDDI_MIN, NTDDI_WS03SP4, &IID_ITransferAdviseSinkPriv },
110
111 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IOleCommandTarget },
112
113 { NTDDI_MIN, NTDDI_MAX, &IID_ICDBurn },
114 { NTDDI_MIN, NTDDI_MAX, &IID_IContextMenu },
115 { NTDDI_MIN, NTDDI_MAX, &IID_IDropTarget },
116 { NTDDI_MIN, NTDDI_MAX, &IID_INamespaceWalkCB },
120 { NTDDI_MIN, NTDDI_MAX, &IID_IQueryCancelAutoPlay },
121 { NTDDI_MIN, NTDDI_MAX, &IID_IServiceProvider },
122 { NTDDI_MIN, NTDDI_MAX, &IID_IShellExtInit },
123 { NTDDI_MIN, NTDDI_MAX, &IID_IShellPropSheetExt },
125
126 { NTDDI_VISTA, NTDDI_MAX, &IID_IDriveFolderExt },
127 }
128 },
129 {
130 ID_NAME(CLSID_ControlPanel, NTDDI_MIN, NTDDI_MAX),
131 {
132 { NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder },
133 { NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder2 },
135 { NTDDI_MIN, NTDDI_MAX, &IID_IShellIconOverlay },
136 { NTDDI_MIN, NTDDI_MAX, &IID_IShellFolder },
137 { NTDDI_MIN, NTDDI_MAX, &IID_IShellFolder2 },
139
140 { NTDDI_VISTA, NTDDI_VISTASP4, &IID_IAliasRegistrationCallback },
141 { NTDDI_VISTA, NTDDI_VISTASP4, &IID_IControlPanelEnumerator },
142 { NTDDI_VISTA, NTDDI_VISTASP4, &IID_IRegItemCustomEnumerator },
143
144 { NTDDI_VISTA, NTDDI_WIN7SP1, &IID_ITransferProvider },
145
146 { NTDDI_VISTA, NTDDI_WINBLUE, &IID_IRegItemFolder },
147
148 { NTDDI_VISTA, NTDDI_MAX, &IID_IBackReferencedObject },
149 { NTDDI_VISTA, NTDDI_MAX, &IID_IContextMenuCB },
150 { NTDDI_VISTA, NTDDI_MAX, &IID_IDelegateHostItemContainer },
151 { NTDDI_VISTA, NTDDI_MAX, &IID_IFolderType },
152 { NTDDI_VISTA, NTDDI_MAX, &IID_IObjectWithBackReferences },
153 { NTDDI_VISTA, NTDDI_MAX, &IID_IRegItemCustomAttributes },
154
155 { NTDDI_WIN7, NTDDI_MAX, &IID_IShellIcon },
156 { NTDDI_WIN7, NTDDI_MAX, &IID_IStorage },
157 }
158 },
159 {
160 ID_NAME(CLSID_CopyToMenu, NTDDI_MIN, NTDDI_MAX),
161 {
162 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IContextMenu2 },
163 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IContextMenu3 },
164
165 { NTDDI_MIN, NTDDI_MAX, &IID_IContextMenu },
166 { NTDDI_MIN, NTDDI_MAX, &IID_IFolderFilter },
168 { NTDDI_MIN, NTDDI_MAX, &IID_IShellExtInit },
170 }
171 },
172 {
173 ID_NAME(CLSID_CRegTreeOptions, NTDDI_WIN7, NTDDI_MAX),
174 {
175 { NTDDI_WIN7, NTDDI_WIN7SP1, &IID_IRegTreeOptions },
176
179 }
180 },
181 {
182 ID_NAME(CLSID_DeskMovr, NTDDI_MIN, NTDDI_WS03SP4),
183 {
185 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IDeskMovr },
192 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleInPlaceObjectWindowless },
193 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IQuickActivate },
194 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IViewObjectEx },
197 }
198 },
199 {
200 ID_NAME(CLSID_DragDropHelper, NTDDI_MIN, NTDDI_MAX),
201 {
202 { NTDDI_MIN, NTDDI_MAX, &IID_IDragSourceHelper },
204 { NTDDI_MIN, NTDDI_MAX, &IID_IDropTargetHelper },
205 }
206 },
207 {
208 ID_NAME(CLSID_FadeTask, NTDDI_MIN, NTDDI_MAX),
209 {
211 }
212 },
213 {
214 ID_NAME(CLSID_FileSearchBand, NTDDI_MIN, NTDDI_WS03SP4),
215 {
221 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IDockingWindow },
222 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IDeskBand },
223 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IInputObject },
225 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IFileSearchBand },
229 }
230 },
231 {
232 ID_NAME(CLSID_FindFolder, NTDDI_MIN, NTDDI_WS03SP4),
233 {
234 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IShellFolder2 },
235 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IShellFolder },
237 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IShellIcon },
238 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IShellIconOverlay },
239 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IPersistFolder2 },
240 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IPersistFolder },
242 }
243 },
244 {
245 ID_NAME(CLSID_FolderItem, NTDDI_MIN, NTDDI_MAX),
246 {
247 { NTDDI_MIN, NTDDI_MAX, &IID_FolderItem2 },
248 { NTDDI_MIN, NTDDI_MAX, &IID_FolderItem },
251 { NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder2 },
252 { NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder },
254 { NTDDI_MIN, NTDDI_MAX, &IID_IObjectSafety },
255 { NTDDI_MIN, NTDDI_MAX, &IID_IParentAndItem },
256 }
257 },
258 {
259 ID_NAME(CLSID_FolderItemsFDF, NTDDI_MIN, NTDDI_MAX),
260 {
261 { NTDDI_MIN, NTDDI_WIN7SP1, &IID_IObjectSafety },
262
263 { NTDDI_MIN, NTDDI_MAX, &IID_FolderItems3 },
264 { NTDDI_MIN, NTDDI_MAX, &IID_FolderItems },
267 { NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder },
268
270 }
271 },
272 {
273 ID_NAME(CLSID_FolderShortcut, NTDDI_MIN, NTDDI_MAX),
274 {
275 { NTDDI_MIN, NTDDI_MAX, &IID_IShellFolder2 },
276 { NTDDI_MIN, NTDDI_MAX, &IID_IShellFolder },
278 { NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder3 },
279 { NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder2 },
280 { NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder },
282 { NTDDI_MIN, NTDDI_MAX, &IID_IShellLinkA },
283 { NTDDI_MIN, NTDDI_MAX, &IID_IShellLinkW },
285 { NTDDI_MIN, NTDDI_MAX, &IID_IExtractIconW },
286 { NTDDI_MIN, NTDDI_MAX, &IID_IQueryInfo },
290 { NTDDI_MIN, NTDDI_MAX, &IID_IBrowserFrameOptions },
291
292 { NTDDI_VISTA, NTDDI_VISTASP4, &IID_IFolderWithSearchRoot },
293 { NTDDI_VISTA, NTDDI_MAX, &IID_IShellIconOverlay },
294 }
295 },
296 {
297 ID_NAME(CLSID_FolderViewHost, NTDDI_MIN, NTDDI_MAX),
298 {
299 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IFolderView },
300
301 { NTDDI_MIN, NTDDI_MAX, &IID_IFolderViewHost },
303 { NTDDI_MIN, NTDDI_MAX, &IID_IServiceProvider },
306
307 { NTDDI_VISTA, NTDDI_VISTASP4, &IID_IShellBrowserService4 },
308
309 { NTDDI_VISTA, NTDDI_MAX, &IID_IShellBrowser },
310 { NTDDI_VISTA, NTDDI_MAX, &IID_IExplorerBrowser },
311 { NTDDI_VISTA, NTDDI_MAX, &IID_ICommDlgBrowser3 },
312 { NTDDI_VISTA, NTDDI_MAX, &IID_ICommDlgBrowser2 },
313 { NTDDI_VISTA, NTDDI_MAX, &IID_ICommDlgBrowser },
316 { NTDDI_VISTA, NTDDI_MAX, &IID_IPersistHistory },
318 { NTDDI_VISTA, NTDDI_MAX, &IID_IInputObject },
319 { NTDDI_VISTA, NTDDI_MAX, &IID_IFolderFilterSite },
320 { NTDDI_VISTA, NTDDI_MAX, &IID_IUrlHistoryNotify },
321 { NTDDI_VISTA, NTDDI_MAX, &IID_IOleCommandTarget },
322 { NTDDI_VISTA, NTDDI_MAX, &IID_INamespaceWalkCB2 },
323 { NTDDI_VISTA, NTDDI_MAX, &IID_INamespaceWalkCB },
324
325 { NTDDI_WIN7, NTDDI_MAX, &IID_IShellBrowserService },
326 }
327 },
328 {
329 ID_NAME(CLSID_ISFBand, NTDDI_MIN, NTDDI_MAX),
330 {
331 { NTDDI_MIN, NTDDI_MAX, &IID_IDeskBand },
332 { NTDDI_MIN, NTDDI_MAX, &IID_IDockingWindow },
335 { NTDDI_MIN, NTDDI_MAX, &IID_IInputObject },
338 { NTDDI_MIN, NTDDI_MAX, &IID_IOleCommandTarget },
339 { NTDDI_MIN, NTDDI_MAX, &IID_IServiceProvider },
340 { NTDDI_MIN, NTDDI_MAX, &IID_IWinEventHandler },
341 { NTDDI_MIN, NTDDI_MAX, &IID_IShellChangeNotify },
342 { NTDDI_MIN, NTDDI_MAX, &IID_IDropTarget },
343 { NTDDI_MIN, NTDDI_MAX, &IID_IContextMenu },
344 { NTDDI_MIN, NTDDI_MAX, &IID_IShellFolderBand },
346 { NTDDI_MIN, NTDDI_MAX, &IID_IFolderBandPriv },
347 }
348 },
349 {
350 ID_NAME(CLSID_MenuBand, NTDDI_MIN, NTDDI_MAX),
351 {
352 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IShellMenuAcc },
353
354 { NTDDI_MIN, NTDDI_MAX, &IID_IDeskBand },
355 { NTDDI_MIN, NTDDI_MAX, &IID_IDockingWindow },
358 { NTDDI_MIN, NTDDI_MAX, &IID_IInputObject },
361 { NTDDI_MIN, NTDDI_MAX, &IID_IOleCommandTarget },
362 { NTDDI_MIN, NTDDI_MAX, &IID_IServiceProvider },
363 { NTDDI_MIN, NTDDI_MAX, &IID_IMenuPopup },
364 { NTDDI_MIN, NTDDI_MAX, &IID_IDeskBar },
366 { NTDDI_MIN, NTDDI_MAX, &IID_IMenuBand },
367 { NTDDI_MIN, NTDDI_MAX, &IID_IShellMenu2 },
368 { NTDDI_MIN, NTDDI_MAX, &IID_IShellMenu },
369 { NTDDI_MIN, NTDDI_MAX, &IID_IWinEventHandler },
370 }
371 },
372 {
374 {
375 { NTDDI_MIN, NTDDI_MAX, &IID_IBandSite },
377 { NTDDI_MIN, NTDDI_MAX, &IID_IDeskBarClient },
379 { NTDDI_MIN, NTDDI_MAX, &IID_IOleCommandTarget },
380 { NTDDI_MIN, NTDDI_MAX, &IID_IInputObject },
381 { NTDDI_MIN, NTDDI_MAX, &IID_IInputObjectSite },
382 { NTDDI_MIN, NTDDI_MAX, &IID_IWinEventHandler },
383 { NTDDI_MIN, NTDDI_MAX, &IID_IServiceProvider },
384 }
385 },
386 {
387 ID_NAME(CLSID_MenuDeskBar, NTDDI_MIN, NTDDI_MAX),
388 {
389 { NTDDI_MIN, NTDDI_MAX, &IID_IOleCommandTarget },
390 { NTDDI_MIN, NTDDI_MAX, &IID_IServiceProvider },
391 { NTDDI_MIN, NTDDI_MAX, &IID_IDeskBar },
393 { NTDDI_MIN, NTDDI_MAX, &IID_IInputObjectSite },
394 { NTDDI_MIN, NTDDI_MAX, &IID_IInputObject },
395 { NTDDI_MIN, NTDDI_MAX, &IID_IMenuPopup },
398 { NTDDI_MIN, NTDDI_MAX, &IID_IBanneredBar },
399 { NTDDI_MIN, NTDDI_MAX, &IID_IInitializeObject },
400 }
401 },
402#if 0 // This is registered to shell32, but can't be instantiated
403 {
404 ID_NAME(CLSID_MenuToolbarBase, NTDDI_MIN, NTDDI_WS03SP4),
405 {
407 }
408 },
409#endif
410 {
411 ID_NAME(CLSID_MergedFolder, NTDDI_MIN, NTDDI_MAX),
412 {
414 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IShellIconOverlay },
415 { NTDDI_MIN, NTDDI_WS03SP4, &IID_ICompositeFolder },
416 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IItemNameLimits },
417 { NTDDI_MIN, NTDDI_WS03SP4, &IID_ITranslateShellChangeNotify },
418 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IAugmentedShellFolder2 },
419 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IAugmentedShellFolder },
420
421 { NTDDI_MIN, NTDDI_MAX, &IID_IShellFolder2 },
422 { NTDDI_MIN, NTDDI_MAX, &IID_IStorage },
423 { NTDDI_MIN, NTDDI_MAX, &IID_IShellFolder },
425 { NTDDI_MIN, NTDDI_MAX, &IID_IShellService },
426 { NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder2 },
427 { NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder },
429
430 { NTDDI_VISTA, NTDDI_VISTASP4, &IID_ITranslateShellChangeNotify },
431
432 { NTDDI_VISTA, NTDDI_WIN7SP1, &IID_ILocalizableItemParent },
433
434 { NTDDI_VISTA, NTDDI_MAX, &IID_IFolderType },
435 { NTDDI_VISTA, NTDDI_MAX, &IID_IObjectWithBackReferences },
436 }
437 },
438 {
439 ID_NAME(CLSID_MoveToMenu, NTDDI_MIN, NTDDI_MAX),
440 {
441 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IContextMenu3 },
442 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IContextMenu2 },
443
444 { NTDDI_MIN, NTDDI_MAX, &IID_IContextMenu },
446 { NTDDI_MIN, NTDDI_MAX, &IID_IShellExtInit },
448 { NTDDI_MIN, NTDDI_MAX, &IID_IFolderFilter },
449 }
450 },
451 {
452 ID_NAME(CLSID_MruLongList, NTDDI_VISTA, NTDDI_WINBLUE),
453 {
454 { NTDDI_VISTA, NTDDI_WIN7SP1, &IID_IMruDataList },
455
457 }
458 },
459 {
460 ID_NAME(CLSID_MruPidlList, NTDDI_VISTA, NTDDI_WINBLUE),
461 {
463 }
464 },
465 {
466 ID_NAME(CLSID_MyComputer, NTDDI_MIN, NTDDI_WINBLUE),
467 {
468 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IPersistFreeThreadedObject },
469
471 { NTDDI_MIN, NTDDI_WINBLUE, &IID_IPersistFolder2 },
472 { NTDDI_MIN, NTDDI_WINBLUE, &IID_IPersistFolder },
474 { NTDDI_MIN, NTDDI_WINBLUE, &IID_IShellIconOverlay },
475 { NTDDI_MIN, NTDDI_WINBLUE, &IID_IShellFolder2 },
476 { NTDDI_MIN, NTDDI_WINBLUE, &IID_IShellFolder },
477
478 { NTDDI_VISTA, NTDDI_VISTASP4, &IID_IFolderWithSearchRoot },
479
480 { NTDDI_VISTA, NTDDI_WIN7SP1, &IID_IFolderProperties },
481 { NTDDI_VISTA, NTDDI_WIN7SP1, &IID_ITransferProvider },
482
483 { NTDDI_VISTA, NTDDI_WINBLUE, &IID_IItemNameLimits },
484 { NTDDI_VISTA, NTDDI_WINBLUE, &IID_IContextMenuCB },
485 { NTDDI_VISTA, NTDDI_WINBLUE, &IID_INewItemAdvisor },
486 { NTDDI_VISTA, NTDDI_WINBLUE, &IID_IObjectWithBackReferences },
487 { NTDDI_VISTA, NTDDI_WINBLUE, &IID_IRegItemFolder },
488 { NTDDI_VISTA, NTDDI_WINBLUE, &IID_IDelegateHostItemContainer },
489 { NTDDI_VISTA, NTDDI_WINBLUE, &IID_IBackReferencedObject },
490
491 { NTDDI_WIN7, NTDDI_WINBLUE, &IID_IShellIcon },
492 { NTDDI_WIN7, NTDDI_WINBLUE, &IID_IStorage },
493
496 }
497 },
498 {
499 ID_NAME(CLSID_MyDocuments, NTDDI_MIN, NTDDI_MAX),
500 {
501 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IPropertySetStorage },
502
503 { NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder },
505 { NTDDI_MIN, NTDDI_MAX, &IID_IShellFolder2 },
506 { NTDDI_MIN, NTDDI_MAX, &IID_IShellFolder },
508 { NTDDI_MIN, NTDDI_MAX, &IID_IShellIconOverlay },
509 { NTDDI_MIN, NTDDI_MAX, &IID_IShellIcon },
510 { NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder3 },
511 { NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder2 },
512 { NTDDI_MIN, NTDDI_MAX, &IID_IStorage },
513 { NTDDI_MIN, NTDDI_MAX, &IID_IContextMenuCB },
514 { NTDDI_MIN, NTDDI_MAX, &IID_IOleCommandTarget },
515 { NTDDI_MIN, NTDDI_MAX, &IID_IItemNameLimits },
516
517 { NTDDI_VISTA, NTDDI_VISTASP4, &IID_IAliasRegistrationCallback },
518
519 { NTDDI_VISTA, NTDDI_WIN7SP1, &IID_ILocalizableItemParent },
520
523 { NTDDI_VISTA, NTDDI_MAX, &IID_IObjectWithBackReferences },
524 { NTDDI_VISTA, NTDDI_MAX, &IID_IRemoteComputer },
525 { NTDDI_VISTA, NTDDI_MAX, &IID_IFolderType },
526 { NTDDI_VISTA, NTDDI_MAX, &IID_IBackReferencedObject },
527
528 { NTDDI_WIN7, NTDDI_MAX, &IID_IParentAndItem },
529 }
530 },
531 {
532 ID_NAME(CLSID_NetworkPlaces, NTDDI_MIN, NTDDI_MAX),
533 {
534 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IPersistFreeThreadedObject },
535
537 { NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder3 },
538 { NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder2 },
539 { NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder },
541 { NTDDI_MIN, NTDDI_MAX, &IID_IShellIconOverlay },
542 { NTDDI_MIN, NTDDI_MAX, &IID_IShellFolder2 },
543 { NTDDI_MIN, NTDDI_MAX, &IID_IShellFolder },
544
545 { NTDDI_VISTA, NTDDI_VISTASP4, &IID_IFolderWithSearchRoot },
546
547 { NTDDI_VISTA, NTDDI_WIN7SP1, &IID_ITransferProvider },
548
549 { NTDDI_VISTA, NTDDI_WINBLUE, &IID_IRegItemFolder },
550
551 { NTDDI_VISTA, NTDDI_MAX, &IID_IContextMenuCB },
552 { NTDDI_VISTA, NTDDI_MAX, &IID_INewItemAdvisor },
553 { NTDDI_VISTA, NTDDI_MAX, &IID_IObjectWithBackReferences },
554 { NTDDI_VISTA, NTDDI_MAX, &IID_IBackReferencedObject },
555 { NTDDI_VISTA, NTDDI_MAX, &IID_IDelegateHostItemContainer },
556
557 { NTDDI_WIN7, NTDDI_MAX, &IID_IShellIcon},
558 { NTDDI_WIN7, NTDDI_MAX, &IID_IStorage},
559
561 }
562 },
563 {
564 ID_NAME(CLSID_NewMenu, NTDDI_MIN, NTDDI_MAX),
565 {
567 { NTDDI_MIN, NTDDI_MAX, &IID_IContextMenu3 },
568 { NTDDI_MIN, NTDDI_MAX, &IID_IContextMenu2 },
569 { NTDDI_MIN, NTDDI_MAX, &IID_IContextMenu },
570 { NTDDI_MIN, NTDDI_MAX, &IID_IShellExtInit },
572 }
573 },
574 {
575 ID_NAME(CLSID_PersonalStartMenu, NTDDI_MIN, NTDDI_WINBLUE),
576 {
577 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IDeskBand },
578 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IDockingWindow },
580 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IInputObject },
583 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleCommandTarget },
584 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IServiceProvider },
585 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IMenuPopup },
586 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IDeskBar },
587 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IMenuBand },
588 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IShellMenu2 },
589 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IShellMenu },
590 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IWinEventHandler },
591 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IShellMenuAcc },
592
595
596 { NTDDI_VISTA, NTDDI_WINBLUE, &IID_IShellItemFilter },
597 }
598 },
599 {
600 ID_NAME(CLSID_Printers, NTDDI_MIN, NTDDI_VISTASP4),
601 {
602 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IRemoteComputer },
603 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IFolderNotify },
604 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IShellFolder2 },
605 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IShellFolder },
607 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IPersistFolder2 },
608 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IPersistFolder },
610 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IContextMenuCB },
611 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IShellIconOverlay },
612
613 { NTDDI_VISTA, NTDDI_VISTASP4, &IID_IObjectWithBackReferences },
614 { NTDDI_VISTA, NTDDI_VISTASP4, &IID_IResolveShellLink },
615 { NTDDI_VISTA, NTDDI_VISTASP4, &IID_IFolderType },
616 { NTDDI_VISTA, NTDDI_VISTASP4, &IID_IRegItemFolder },
617 { NTDDI_VISTA, NTDDI_VISTASP4, &IID_ITransferProvider },
618 { NTDDI_VISTA, NTDDI_VISTASP4, &IID_IDelegateHostItemContainer },
619 { NTDDI_VISTA, NTDDI_VISTASP4, &IID_IBackReferencedObject },
620 }
621 },
622 {
623 ID_NAME(CLSID_ProgressDialog, NTDDI_VISTA, NTDDI_MAX),
624 {
625 { NTDDI_VISTA, NTDDI_MAX, &IID_IProgressDialog },
628 { NTDDI_VISTA, NTDDI_MAX, &IID_IActionProgressDialog },
629 { NTDDI_VISTA, NTDDI_MAX, &IID_IActionProgress },
631 },
632 L"Both"
633 },
634 {
635 ID_NAME(CLSID_QueryAssociations, NTDDI_MIN, NTDDI_WINBLUE),
636 {
637 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IAssociationArrayOld },
638 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IAssociationArrayInitialize },
639
640 { NTDDI_MIN, NTDDI_WINBLUE, &IID_IQueryAssociations },
642
643 { NTDDI_VISTA, NTDDI_WIN7SP1, &IID_IAssociationArray },
644 { NTDDI_VISTA, NTDDI_WIN7SP1, &IID_IObjectWithAssociationList },
645 }
646 },
647 {
648 ID_NAME(CLSID_QuickLinks, NTDDI_MIN, NTDDI_MAX),
649 {
650 { NTDDI_MIN, NTDDI_MAX, &IID_IDeskBand },
651 { NTDDI_MIN, NTDDI_MAX, &IID_IDockingWindow },
654 { NTDDI_MIN, NTDDI_MAX, &IID_IInputObject },
657 { NTDDI_MIN, NTDDI_MAX, &IID_IOleCommandTarget },
658 { NTDDI_MIN, NTDDI_MAX, &IID_IServiceProvider },
659 { NTDDI_MIN, NTDDI_MAX, &IID_IWinEventHandler },
660 { NTDDI_MIN, NTDDI_MAX, &IID_IShellChangeNotify },
661 { NTDDI_MIN, NTDDI_MAX, &IID_IDropTarget },
662 { NTDDI_MIN, NTDDI_MAX, &IID_IContextMenu },
663 { NTDDI_MIN, NTDDI_MAX, &IID_IShellFolderBand },
665 { NTDDI_MIN, NTDDI_MAX, &IID_IFolderBandPriv },
666 }
667 },
668 {
669 ID_NAME(CLSID_RecycleBin, NTDDI_MIN, NTDDI_MAX),
670 {
671 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IContextMenu },
672
673 { NTDDI_MIN, NTDDI_MAX, &IID_IShellPropSheetExt },
674 { NTDDI_MIN, NTDDI_MAX, &IID_IShellExtInit },
675 { NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder2 },
676 { NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder },
677 { NTDDI_MIN, NTDDI_MAX, &IID_IShellFolder2 },
678 { NTDDI_MIN, NTDDI_MAX, &IID_IShellFolder },
680
682 { NTDDI_VISTA, NTDDI_MAX, &IID_IContextMenuCB },
683 { NTDDI_VISTA, NTDDI_MAX, &IID_IFolderType },
684 { NTDDI_VISTA, NTDDI_MAX, &IID_IObjectWithBackReferences },
685
686 { NTDDI_WIN7, NTDDI_MAX, &IID_IShellIconOverlay },
687 }
688 },
689 {
690 ID_NAME(CLSID_SearchBand, NTDDI_WIN8, NTDDI_MAX),
691 {
692 { NTDDI_WIN8, NTDDI_MAX, &IID_IContextMenu },
694 { NTDDI_WIN8, NTDDI_MAX, &IID_IShellExtInit },
697 { NTDDI_WIN8, NTDDI_MAX, &IID_IShellFolder },
698 }
699 },
700 {
702 {
703 { NTDDI_MIN, NTDDI_MAX, &IID_IContextMenu3 },
704 { NTDDI_MIN, NTDDI_MAX, &IID_IContextMenu2 },
705 { NTDDI_MIN, NTDDI_MAX, &IID_IContextMenu },
706 { NTDDI_MIN, NTDDI_MAX, &IID_IShellExtInit },
709
711 { NTDDI_VISTA, NTDDI_MAX, &IID_IServiceProvider },
712
713 { NTDDI_WIN7, NTDDI_MAX, &IID_INamespaceWalkCB2 },
714 { NTDDI_WIN7, NTDDI_MAX, &IID_INamespaceWalkCB },
715 { NTDDI_WIN7, NTDDI_MAX, &IID_IMarshal },
716 }
717 },
718 {
719 ID_NAME(CLSID_SharedTaskScheduler, NTDDI_WIN7, NTDDI_WINBLUE),
720 {
721 { NTDDI_WIN7, NTDDI_WINBLUE, &IID_IShellTaskScheduler },
723 { NTDDI_WIN7, NTDDI_WINBLUE, &IID_IMarshal},
724 }
725 },
726 {
727 ID_NAME(CLSID_Shell, NTDDI_MIN, NTDDI_MAX),
728 {
729 { NTDDI_MIN, NTDDI_MAX, &IID_IShellDispatch4 },
730 { NTDDI_MIN, NTDDI_MAX, &IID_IShellDispatch3 },
731 { NTDDI_MIN, NTDDI_MAX, &IID_IShellDispatch2 },
732 { NTDDI_MIN, NTDDI_MAX, &IID_IShellDispatch },
735 { NTDDI_MIN, NTDDI_MAX, &IID_IObjectSafety },
737
738 { NTDDI_VISTA, NTDDI_MAX, &IID_IShellDispatch5 },
739
740 { NTDDI_WIN8, NTDDI_MAX, &IID_IShellDispatch6 },
741 }
742 },
743 {
744 /* CLSID_ShellDesktop is also registered to shell32 on Windows Vista, 7, and 8.1,
745 * but instantiating it crashes the test on CoUninitialize. */
746 ID_NAME(CLSID_ShellDesktop, NTDDI_MIN, NTDDI_WS03SP4),
747 {
748 { NTDDI_MIN, NTDDI_WS03SP4, &CLSID_ShellDesktop },
751 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IStorage },
752 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IPersistFolder2 },
753 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IPersistFolder },
755 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IShellIcon },
756 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IContextMenuCB },
757 { NTDDI_MIN, NTDDI_WS03SP4, &IID_ITranslateShellChangeNotify },
758 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IItemNameLimits },
759 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleCommandTarget },
760 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IShellIconOverlay },
761 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IShellFolder2 },
762 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IShellFolder },
763 }
764 },
765 {
766 /* CLSID_ShellFSFolder is also registered to shell32 on
767 * Windows 8.1, but instantiating it crashes the test on CoUninitialize. */
768 ID_NAME(CLSID_ShellFSFolder, NTDDI_MIN, NTDDI_WIN7SP1),
769 {
770 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IPersistFreeThreadedObject },
771 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IPropertySetStorage },
772
774 { NTDDI_MIN, NTDDI_WIN7SP1, &IID_IShellFolder2 },
775 { NTDDI_MIN, NTDDI_WIN7SP1, &IID_IShellFolder },
776 { NTDDI_MIN, NTDDI_WIN7SP1, &IID_IShellIcon },
777 { NTDDI_MIN, NTDDI_WIN7SP1, &IID_IShellIconOverlay },
778 { NTDDI_MIN, NTDDI_WIN7SP1, &IID_IPersistFolder3 },
779 { NTDDI_MIN, NTDDI_WIN7SP1, &IID_IPersistFolder2 },
780 { NTDDI_MIN, NTDDI_WIN7SP1, &IID_IPersistFolder },
782 { NTDDI_MIN, NTDDI_WIN7SP1, &IID_IStorage },
783 { NTDDI_MIN, NTDDI_WIN7SP1, &IID_IItemNameLimits },
784 { NTDDI_MIN, NTDDI_WIN7SP1, &IID_IContextMenuCB },
785 { NTDDI_MIN, NTDDI_WIN7SP1, &IID_IOleCommandTarget },
786
787 { NTDDI_VISTA, NTDDI_VISTASP4, &IID_IAliasRegistrationCallback },
788
790 { NTDDI_VISTA, NTDDI_WIN7SP1, &IID_ILocalizableItemParent },
792 { NTDDI_VISTA, NTDDI_WIN7SP1, &IID_IObjectWithBackReferences },
793 { NTDDI_VISTA, NTDDI_WIN7SP1, &IID_IRemoteComputer },
794 { NTDDI_VISTA, NTDDI_WIN7SP1, &IID_IFolderType },
795 { NTDDI_VISTA, NTDDI_WIN7SP1, &IID_IBackReferencedObject },
796
797 { NTDDI_WIN7, NTDDI_WIN7SP1, &IID_IParentAndItem },
798 }
799 },
800 {
801 ID_NAME(CLSID_ShellFldSetExt, NTDDI_MIN, NTDDI_MAX),
802 {
803 { NTDDI_MIN, NTDDI_MAX, &IID_IShellPropSheetExt },
805 { NTDDI_MIN, NTDDI_MAX, &IID_IShellExtInit },
807 }
808 },
809 {
810 ID_NAME(CLSID_ShellFolderView, NTDDI_MIN, NTDDI_MAX),
811 {
812 { NTDDI_MIN, NTDDI_MAX, &IID_IShellFolderViewDual2 },
813 { NTDDI_MIN, NTDDI_MAX, &IID_IShellFolderViewDual },
816 { NTDDI_MIN, NTDDI_MAX, &IID_IShellService },
817 { NTDDI_MIN, NTDDI_MAX, &IID_IServiceProvider },
818 { NTDDI_MIN, NTDDI_MAX, &IID_IObjectSafety },
821
822 { NTDDI_VISTA, NTDDI_MAX, &IID_IShellFolderViewDual3 },
823 }
824 },
825 {
826 ID_NAME(CLSID_ShellFolderViewOC, NTDDI_MIN, NTDDI_MAX),
827 {
828 { NTDDI_MIN, NTDDI_MAX, &IID_IFolderViewOC },
833 { NTDDI_MIN, NTDDI_MAX, &IID_IObjectSafety },
840 { NTDDI_MIN, NTDDI_MAX, &IID_IOleInPlaceObjectWindowless },
843 }
844 },
845 /* CLSID_ShellItem has two entries because the threading model changed between versions. */
846 {
847 ID_NAME(CLSID_ShellItem, NTDDI_MIN, NTDDI_VISTASP4),
848 {
849 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IShellItem },
851 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IPersistIDList },
852 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IParentAndItem },
853
854 { NTDDI_VISTA, NTDDI_VISTASP4, &IID_IShellItem2 },
855 { NTDDI_VISTA, NTDDI_VISTASP4, &IID_IMarshal },
858 }
859 },
860 {
861 ID_NAME(CLSID_ShellItem, NTDDI_WIN7, NTDDI_WINBLUE),
862 {
863 { NTDDI_WIN7, NTDDI_WINBLUE, &IID_IMarshal },
864 { NTDDI_WIN7, NTDDI_WINBLUE, &IID_IShellItem2 },
865 { NTDDI_WIN7, NTDDI_WINBLUE, &IID_IShellItem },
866 { NTDDI_WIN7, NTDDI_WINBLUE, &IID_IPersistIDList },
868 { NTDDI_WIN7, NTDDI_WINBLUE, &IID_IParentAndItem },
871 { NTDDI_WIN7, NTDDI_WINBLUE, &IID_IObjectWithBackReferences },
872 },
873 L"Both",
874 },
875 /* CLSID_ShellLink has two entries because the threading model changed between versions. */
876 {
877 ID_NAME(CLSID_ShellLink, NTDDI_MIN, NTDDI_VISTASP4),
878 {
879 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IShellLinkA },
881 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IShellLinkW },
884 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IShellExtInit },
885 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IContextMenu3 },
886 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IContextMenu2 },
887 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IContextMenu },
888 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IDropTarget },
889 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IQueryInfo },
890 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IShellLinkDataList },
891 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IExtractIconA },
892 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IExtractIconW },
893 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IExtractImage2 },
894 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IExtractImage },
896 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IServiceProvider },
897 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IFilter },
899 { NTDDI_MIN, NTDDI_VISTASP4, &IID_ICustomizeInfoTip },
900 { NTDDI_MIN, NTDDI_VISTASP4, &IID_ISLTracker },
901
903 { NTDDI_VISTA, NTDDI_VISTASP4, &IID_IPropertyStore },
905 }
906 },
907 {
908 ID_NAME(CLSID_ShellLink, NTDDI_WIN7, NTDDI_WINBLUE),
909 {
910 { NTDDI_WIN7, NTDDI_WINBLUE, &IID_IMarshal },
911 { NTDDI_WIN7, NTDDI_WINBLUE, &IID_IShellLinkA },
912 { NTDDI_WIN7, NTDDI_WINBLUE, &IID_IShellLinkW },
916 { NTDDI_WIN7, NTDDI_WINBLUE, &IID_IShellExtInit },
917 { NTDDI_WIN7, NTDDI_WINBLUE, &IID_IContextMenu3 },
918 { NTDDI_WIN7, NTDDI_WINBLUE, &IID_IContextMenu2 },
919 { NTDDI_WIN7, NTDDI_WINBLUE, &IID_IContextMenu },
920 { NTDDI_WIN7, NTDDI_WINBLUE, &IID_IDropTarget },
921 { NTDDI_WIN7, NTDDI_WINBLUE, &IID_IQueryInfo },
922 { NTDDI_WIN7, NTDDI_WINBLUE, &IID_IShellLinkDataList },
923 { NTDDI_WIN7, NTDDI_WINBLUE, &IID_IExtractIconA },
924 { NTDDI_WIN7, NTDDI_WINBLUE, &IID_IExtractIconW },
926 { NTDDI_WIN7, NTDDI_WINBLUE, &IID_IExtractImage2 },
927 { NTDDI_WIN7, NTDDI_WINBLUE, &IID_IExtractImage },
929 { NTDDI_WIN7, NTDDI_WINBLUE, &IID_IServiceProvider },
931 { NTDDI_WIN7, NTDDI_WINBLUE, &IID_IPropertyStore },
932 { NTDDI_WIN7, NTDDI_WINBLUE, &IID_ICustomizeInfoTip },
933 { NTDDI_WIN7, NTDDI_WINBLUE, &IID_ISLTracker },
934 },
935 L"Both",
936 },
937#if 0 // Apparently we can only get this through Folder.Items().GetLink
938 {
939 ID_NAME(CLSID_ShellLinkObject, NTDDI_MIN, NTDDI_VISTASP4),
940 {
942 }
943 },
944#endif
945 {
946 ID_NAME(CLSID_ShellSearchExt, NTDDI_WIN7, NTDDI_MAX),
947 {
948 { NTDDI_WIN7, NTDDI_MAX, &IID_IContextMenu },
951 }
952 },
953 {
954 ID_NAME(CLSID_ShellTaskScheduler, NTDDI_WIN7, NTDDI_WINBLUE),
955 {
956 { NTDDI_WIN7, NTDDI_WINBLUE, &IID_IShellTaskScheduler },
958 { NTDDI_WIN7, NTDDI_WINBLUE, &IID_IMarshal},
959 },
960 },
961 {
962 /* CLSID_StartMenu is also registered to shell32 on Windows Vista,
963 * but it crashes the test on CoUninitialize. */
965 {
966 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleCommandTarget },
967 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IServiceProvider },
968 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IDeskBar },
970 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IInputObjectSite },
971 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IInputObject },
972 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IMenuPopup },
975 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IBanneredBar },
976 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IInitializeObject },
977 }
978 },
979 {
980 ID_NAME(CLSID_StartMenuPin, NTDDI_MIN, NTDDI_MAX),
981 {
982 { NTDDI_MIN, NTDDI_MAX, &IID_IShellExtInit },
984 { NTDDI_MIN, NTDDI_MAX, &IID_IContextMenu },
986
987 {NTDDI_VISTA, NTDDI_VISTASP4, &IID_IPinnedListOld},
988
989 {NTDDI_WIN7, NTDDI_WINBLUE, &IID_IPinnedList},
990 }
991 },
992 {
993 ID_NAME(CLSID_Thumbnail, NTDDI_MIN, NTDDI_MAX),
994 {
997
998 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IParentAndItem },
999 },
1000 },
1001 {
1002 ID_NAME(CLSID_TrackShellMenu, NTDDI_MIN, NTDDI_MAX),
1003 {
1004 { NTDDI_MIN, NTDDI_MAX, &IID_ITrackShellMenu },
1005 { NTDDI_MIN, NTDDI_MAX, &IID_IShellMenu },
1007 { NTDDI_MIN, NTDDI_MAX, &IID_IShellMenu2 },
1009 { NTDDI_MIN, NTDDI_MAX, &IID_IServiceProvider },
1010 }
1011 },
1012 {
1013 ID_NAME(CLSID_UserAssist, NTDDI_WIN7, NTDDI_MAX),
1014 {
1016 },
1017 L"Both"
1018 },
1019 {
1020 ID_NAME(CLSID_UserNotification, NTDDI_MIN, NTDDI_MAX),
1021 {
1022 { NTDDI_MIN, NTDDI_MAX, &IID_IUserNotification },
1024
1025 {NTDDI_VISTA, NTDDI_MAX, &IID_IUserNotification2 },
1026 }
1027 },
1028};
1029
1031{
1033}
const GUID CLSID_SendToMenu
Definition: CSendToMenu.h:24
@ shell32
Definition: LocaleTests.cpp:20
#define RTL_NUMBER_OF(x)
Definition: RtlRegistry.c:12
#define NTDDI_MIN
Definition: apitest.h:20
#define NTDDI_MAX
Definition: apitest.h:21
#define START_TEST(x)
Definition: atltest.h:75
const GUID IID_IUnknown
VOID TestClasses(_In_ PCWSTR ModuleName, _In_ PCCLASS_AND_INTERFACES ExpectedInterfaces, _In_ INT ExpectedInterfaceCount)
Definition: com_apitest.c:815
#define ID_NAME(c)
Definition: com_apitest.c:38
const GUID CLSID_MenuBandSite
const GUID CLSID_StartMenu
#define L(x)
Definition: resources.c:13
const IID IID_IObjectWithSite
const GUID IID_IOleInPlaceActiveObject
const GUID IID_IOleInPlaceSite
const GUID IID_IViewObject
const GUID IID_IConnectionPointContainer
const GUID IID_IProvideClassInfo
const GUID IID_IPropertyBag
const GUID IID_IOleWindow
const GUID IID_IViewObject2
const GUID IID_IEnumString
const GUID IID_IOleControlSite
const GUID IID_IProvideClassInfo2
const GUID IID_IOleClientSite
const GUID IID_IDispatch
const GUID IID_IOleInPlaceObject
const GUID IID_IOleObject
const GUID IID_IOleInPlaceUIWindow
const GUID IID_IOleControl
const GUID IID_IPersistStreamInit
const GUID IID_IPersistFile
const GUID IID_IPersist
Definition: proxy.cpp:14
const GUID IID_IPersistStream
Definition: proxy.cpp:13
const GUID IID_IPersistPropertyBag
Definition: proxy.cpp:11
#define NTDDI_WIN8
Definition: sdkddkver.h:114
#define NTDDI_VISTA
Definition: sdkddkver.h:103
#define NTDDI_VISTASP4
Definition: sdkddkver.h:107
#define NTDDI_WS03SP4
Definition: sdkddkver.h:96
#define NTDDI_WIN7
Definition: sdkddkver.h:112
#define NTDDI_WIN7SP1
Definition: sdkddkver.h:113
#define NTDDI_WINBLUE
Definition: sdkddkver.h:115
static const CLASS_AND_INTERFACES ExpectedInterfaces[]
Definition: shell32.c:14