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>
8 #include "com_apitest.h"
13 static const CLASS_AND_INTERFACES ExpectedInterfaces
[] =
16 ID_NAME(CLSID_ActiveDesktop
),
18 { 0x0, &IID_IActiveDesktop
},
19 { 0x0, &IID_IUnknown
},
20 { 0x4, &IID_IActiveDesktopP
},
21 { 0x8, &IID_IADesktopP2
},
22 { 0xc, &IID_IPropertyBag
},
26 ID_NAME(CLSID_CDBurn
),
28 { 0x0, &IID_IObjectWithSite
},
29 { 0x0, &IID_IUnknown
},
30 { 0x8, &IID_IShellExtInit
},
31 { 0xc, &IID_IContextMenu
},
32 { 0x10, &IID_IShellPropSheetExt
},
33 { 0x14, &IID_IDiscMasterProgressEvents
},
34 { 0x18, &IID_IDropTarget
},
35 { 0x1c, &IID_IPersistFile
},
36 { 0x20, &IID_IOleCommandTarget
},
37 { 0x24, &IID_ICDBurn
},
38 { 0x28, &IID_ICDBurnPriv
},
39 { 0x2c, &IID_IPersistPropertyBag
},
40 { 0x30, &IID_IDriveFolderExtOld
},
41 { 0x34, &IID_INamespaceWalkCB
},
42 { 0x3c, &IID_IServiceProvider
},
43 { 0x40, &IID_ITransferAdviseSinkPriv
},
44 { 0x44, &IID_IQueryCancelAutoPlay
},
48 ID_NAME(CLSID_ControlPanel
),
50 { 0x0, &IID_IUnknown
},
51 { 0x10, &IID_IPersistFolder2
},
52 { 0x10, &IID_IPersistFolder
},
53 { 0x10, &IID_IPersist
},
54 { FARAWY
, &IID_IShellIconOverlay
},
55 { FARAWY
, &IID_IShellFolder2
},
56 { FARAWY
, &IID_IShellFolder
},
60 ID_NAME(CLSID_CopyToMenu
),
62 { 0x0, &IID_IContextMenu3
},
63 { 0x0, &IID_IContextMenu2
},
64 { 0x0, &IID_IContextMenu
},
65 { 0x0, &IID_IUnknown
},
66 { 0x4, &IID_IShellExtInit
},
67 { 0x8, &IID_IObjectWithSite
},
68 { 0x10, &IID_IFolderFilter
},
72 ID_NAME(CLSID_DeskMovr
),
74 { 0x0, &IID_IUnknown
},
75 { 0x70, &IID_IDeskMovr
},
76 { 0x74, &IID_IOleObject
},
77 { 0x78, &IID_IPersistPropertyBag
},
78 { 0x7c, &IID_IOleControl
},
79 { 0x80, &IID_IOleInPlaceActiveObject
},
80 { 0x84, &IID_IViewObjectEx
},
81 { 0x84, &IID_IViewObject2
},
82 { 0x84, &IID_IViewObject
},
83 { 0x88, &IID_IOleWindow
},
84 { 0x88, &IID_IOleInPlaceObject
},
85 { 0x88, &IID_IOleInPlaceObjectWindowless
},
86 { 0x8c, &IID_IQuickActivate
},
90 ID_NAME(CLSID_DragDropHelper
),
92 { 0x0, &IID_IDragSourceHelper
},
93 { 0x0, &IID_IUnknown
},
94 { 0x4, &IID_IDropTargetHelper
},
98 ID_NAME(CLSID_FadeTask
),
100 { 0x0, &IID_IUnknown
},
104 ID_NAME(CLSID_FileSearchBand
),
106 { 0x0, &IID_IFileSearchBand
},
107 { 0x0, &IID_IDispatch
},
108 { 0x0, &IID_IUnknown
},
109 { 0x4, &IID_IObjectWithSite
},
110 { 0x8, &IID_IPersistStream
},
111 { 0x8, &IID_IPersist
},
112 { 0xc, &IID_IDeskBand
},
113 { 0xc, &IID_IDockingWindow
},
114 { 0xc, &IID_IOleWindow
},
115 { 0x10, &IID_IInputObject
},
116 { 0x14, &IID_IOleClientSite
},
117 { 0x18, &IID_IOleInPlaceSite
},
118 { 0x1c, &IID_IOleControlSite
},
122 ID_NAME(CLSID_FindFolder
),
124 { 0x0, &IID_IShellFolder2
},
125 { 0x0, &IID_IShellFolder
},
126 { 0x0, &IID_IUnknown
},
127 { 0x4, &IID_IShellIcon
},
128 { 0x8, &IID_IShellIconOverlay
},
129 { 0xc, &IID_IPersistFolder2
},
130 { 0xc, &IID_IPersistFolder
},
131 { 0xc, &IID_IPersist
},
135 ID_NAME(CLSID_FolderItem
),
137 //{ 0x0, &CLSID_ShellFolderItem }, // broken QueryInterface that doesn't add a reference
138 { 0x0, &IID_FolderItem2
},
139 { 0x0, &IID_FolderItem
},
140 { 0x0, &IID_IDispatch
},
141 { 0x0, &IID_IUnknown
},
142 { 0x4, &IID_IPersistFolder2
},
143 { 0x4, &IID_IPersistFolder
},
144 { 0x4, &IID_IPersist
},
145 { 0x8, &IID_IObjectSafety
},
146 { 0x10, &IID_IParentAndItem
},
150 ID_NAME(CLSID_FolderItemsFDF
),
152 { 0x0, &IID_FolderItems3
},
153 //{ 0x0, &IID_FolderItems2 }, ????
154 { 0x0, &IID_FolderItems
},
155 { 0x0, &IID_IDispatch
},
156 { 0x0, &IID_IUnknown
},
157 { 0x4, &IID_IPersistFolder
},
158 { 0x8, &IID_IObjectSafety
},
162 ID_NAME(CLSID_FolderShortcut
),
164 { 0x0, &IID_IShellFolder2
},
165 { 0x0, &IID_IShellFolder
},
166 { 0x0, &IID_IUnknown
},
167 { 0x4, &IID_IPersistFolder3
},
168 { 0x4, &IID_IPersistFolder2
},
169 { 0x4, &IID_IPersistFolder
},
170 { 0x4, &IID_IPersist
},
171 { 0x8, &IID_IShellLinkA
},
172 { 0xc, &IID_IShellLinkW
},
173 { 0x10, &IID_IPersistFile
},
174 { 0x14, &IID_IExtractIconW
},
175 { 0x18, &IID_IQueryInfo
},
176 { 0x20, &IID_IPersistStream
},
177 { 0x20, &IID_IPersistStreamInit
},
178 { 0x24, &IID_IPersistPropertyBag
},
179 { 0x28, &IID_IBrowserFrameOptions
},
183 ID_NAME(CLSID_FolderViewHost
),
185 { 0x0, &IID_IFolderViewHost
},
186 { 0x0, &IID_IUnknown
},
187 { 0x4, &IID_IServiceProvider
},
188 { 0x8, &IID_IOleWindow
},
189 { 0xc, &IID_IFolderView
},
190 { 0x10, &IID_IObjectWithSite
},
194 ID_NAME(CLSID_ISFBand
),
196 { -0xac, &IID_IDeskBand
},
197 { -0xac, &IID_IDockingWindow
},
198 { -0xac, &IID_IOleWindow
},
199 { -0xa8, &IID_IObjectWithSite
},
200 { -0xa0, &IID_IInputObject
},
201 { -0x9c, &IID_IPersistStream
},
202 { -0x9c, &IID_IPersist
},
203 { -0x98, &IID_IOleCommandTarget
},
204 { -0x94, &IID_IServiceProvider
},
205 { -0x78, &IID_IWinEventHandler
},
206 { -0x74, &IID_IShellChangeNotify
},
207 { -0x70, &IID_IDropTarget
},
208 { -0x4, &IID_IContextMenu
},
209 { 0x0, &IID_IShellFolderBand
},
210 { 0x0, &IID_IUnknown
},
211 { 0x94, &IID_IFolderBandPriv
},
215 ID_NAME(CLSID_MenuBand
),
217 { -0x30, &IID_IDeskBand
},
218 { -0x30, &IID_IDockingWindow
},
219 { -0x30, &IID_IOleWindow
},
220 { -0x2c, &IID_IObjectWithSite
},
221 { -0x24, &IID_IInputObject
},
222 { -0x20, &IID_IPersistStream
},
223 { -0x20, &IID_IPersist
},
224 { -0x1c, &IID_IOleCommandTarget
},
225 { -0x18, &IID_IServiceProvider
},
226 { 0x0, &IID_IMenuPopup
},
227 { 0x0, &IID_IDeskBar
},
228 { 0x0, &IID_IUnknown
},
229 { 0x4, &IID_IMenuBand
},
230 { 0x8, &IID_IShellMenu2
},
231 { 0x8, &IID_IShellMenu
},
232 { 0xc, &IID_IWinEventHandler
},
233 { 0x10, &IID_IShellMenuAcc
},
237 ID_NAME(CLSID_MenuBandSite
),
239 { 0x0, &IID_IBandSite
},
240 { 0x0, &IID_IUnknown
},
241 { 0x4, &IID_IDeskBarClient
},
242 { 0x4, &IID_IOleWindow
},
243 { 0x8, &IID_IOleCommandTarget
},
244 { 0xc, &IID_IInputObject
},
245 { 0x10, &IID_IInputObjectSite
},
246 { 0x14, &IID_IWinEventHandler
},
247 { 0x18, &IID_IServiceProvider
},
251 ID_NAME(CLSID_MenuDeskBar
),
253 { -0x48, &IID_IOleCommandTarget
},
254 { -0x44, &IID_IServiceProvider
},
255 { -0x40, &IID_IDeskBar
},
256 { -0x40, &IID_IOleWindow
},
257 { -0x3c, &IID_IInputObjectSite
},
258 { -0x38, &IID_IInputObject
},
259 { 0x0, &IID_IMenuPopup
},
260 { 0x0, &IID_IUnknown
},
261 { 0x4, &IID_IObjectWithSite
},
262 { 0x8, &IID_IBanneredBar
},
263 { 0xc, &IID_IInitializeObject
},
266 #if 0 // This is registered to shell32, but can't be instanciated
268 ID_NAME(CLSID_MenuToolbarBase
),
270 { 0x0, &IID_IUnknown
},
275 ID_NAME(CLSID_MergedFolder
),
277 { -0x8, &IID_IShellFolder2
},
278 { -0x4, &IID_IStorage
},
279 { 0x0, &IID_IAugmentedShellFolder2
},
280 { 0x0, &IID_IAugmentedShellFolder
},
281 { 0x0, &IID_IShellFolder
},
282 { 0x0, &IID_IUnknown
},
283 { 0x4, &IID_IShellService
},
284 { 0x8, &IID_ITranslateShellChangeNotify
},
285 { 0xc, &IID_IPersistFolder2
},
286 { 0xc, &IID_IPersistFolder
},
287 { 0xc, &IID_IPersist
},
288 { 0x10, &IID_IPersistPropertyBag
},
289 { 0x14, &IID_IShellIconOverlay
},
290 { 0x18, &IID_ICompositeFolder
},
291 { 0x1c, &IID_IItemNameLimits
},
295 ID_NAME(CLSID_MoveToMenu
),
297 { 0x0, &IID_IContextMenu3
},
298 { 0x0, &IID_IContextMenu2
},
299 { 0x0, &IID_IContextMenu
},
300 { 0x0, &IID_IUnknown
},
301 { 0x4, &IID_IShellExtInit
},
302 { 0x8, &IID_IObjectWithSite
},
303 { 0x10, &IID_IFolderFilter
},
307 ID_NAME(CLSID_MyComputer
),
309 { 0x0, &IID_IUnknown
},
310 { 0x10, &IID_IPersistFolder2
},
311 { 0x10, &IID_IPersistFolder
},
312 { 0x10, &IID_IPersist
},
313 { 0x10, &IID_IPersistFreeThreadedObject
},
314 { FARAWY
, &IID_IShellIconOverlay
},
315 { FARAWY
, &IID_IShellFolder2
},
316 { FARAWY
, &IID_IShellFolder
},
320 ID_NAME(CLSID_MyDocuments
),
322 { -0x4, &IID_IPersistFolder
},
323 { -0x4, &IID_IPersist
},
324 { 0x0, &IID_IShellFolder2
},
325 { 0x0, &IID_IShellFolder
},
326 { 0x0, &IID_IUnknown
},
327 { 0x4, &IID_IShellIconOverlay
},
328 { FARAWY
, &IID_IShellIcon
},
329 { FARAWY
, &IID_IPersistFolder3
},
330 { FARAWY
, &IID_IPersistFolder2
},
331 { FARAWY
, &IID_IStorage
},
332 { FARAWY
, &IID_IContextMenuCB
},
333 { FARAWY
, &IID_IOleCommandTarget
},
334 { FARAWY
, &IID_IItemNameLimits
},
335 { FARAWY
, &IID_IPropertySetStorage
},
339 ID_NAME(CLSID_NetworkPlaces
),
341 { 0x0, &IID_IUnknown
},
342 { 0x10, &IID_IPersistFolder3
},
343 { 0x10, &IID_IPersistFolder2
},
344 { 0x10, &IID_IPersistFolder
},
345 { 0x10, &IID_IPersist
},
346 { 0x10, &IID_IPersistFreeThreadedObject
},
347 { FARAWY
, &IID_IShellIconOverlay
},
348 { FARAWY
, &IID_IShellFolder2
},
349 { FARAWY
, &IID_IShellFolder
},
353 ID_NAME(CLSID_NewMenu
),
355 { -0xc, &IID_IObjectWithSite
},
356 { -0x4, &IID_IContextMenu3
},
357 { -0x4, &IID_IContextMenu2
},
358 { -0x4, &IID_IContextMenu
},
359 { 0x0, &IID_IShellExtInit
},
360 { 0x0, &IID_IUnknown
},
364 ID_NAME(CLSID_PersonalStartMenu
),
366 { -0x30, &IID_IDeskBand
},
367 { -0x30, &IID_IDockingWindow
},
368 { -0x30, &IID_IOleWindow
},
369 { -0x2c, &IID_IObjectWithSite
},
370 { -0x24, &IID_IInputObject
},
371 { -0x20, &IID_IPersistStream
},
372 { -0x20, &IID_IPersist
},
373 { -0x1c, &IID_IOleCommandTarget
},
374 { -0x18, &IID_IServiceProvider
},
375 { 0x0, &IID_IMenuPopup
},
376 { 0x0, &IID_IDeskBar
},
377 { 0x0, &IID_IUnknown
},
378 { 0x4, &IID_IMenuBand
},
379 { 0x8, &IID_IShellMenu2
},
380 { 0x8, &IID_IShellMenu
},
381 { 0xc, &IID_IWinEventHandler
},
382 { 0x10, &IID_IShellMenuAcc
},
386 ID_NAME(CLSID_Printers
),
388 { -0xc, &IID_IRemoteComputer
},
389 { -0x4, &IID_IFolderNotify
},
390 { 0x0, &IID_IShellFolder2
},
391 { 0x0, &IID_IShellFolder
},
392 { 0x0, &IID_IUnknown
},
393 { 0x4, &IID_IPersistFolder2
},
394 { 0x4, &IID_IPersistFolder
},
395 { 0x4, &IID_IPersist
},
396 { 0x8, &IID_IContextMenuCB
},
397 { 0xc, &IID_IShellIconOverlay
},
401 ID_NAME(CLSID_QueryAssociations
),
403 { 0x0, &IID_IAssociationArrayOld
},
404 { 0x0, &IID_IUnknown
},
405 { 0x4, &IID_IAssociationArrayInitialize
},
406 { 0x8, &IID_IQueryAssociations
},
410 ID_NAME(CLSID_QuickLinks
),
412 { -0xac, &IID_IDeskBand
},
413 { -0xac, &IID_IDockingWindow
},
414 { -0xac, &IID_IOleWindow
},
415 { -0xa8, &IID_IObjectWithSite
},
416 { -0xa0, &IID_IInputObject
},
417 { -0x9c, &IID_IPersistStream
},
418 { -0x9c, &IID_IPersist
},
419 { -0x98, &IID_IOleCommandTarget
},
420 { -0x94, &IID_IServiceProvider
},
421 { -0x78, &IID_IWinEventHandler
},
422 { -0x74, &IID_IShellChangeNotify
},
423 { -0x70, &IID_IDropTarget
},
424 { -0x4, &IID_IContextMenu
},
425 { 0x0, &IID_IShellFolderBand
},
426 { 0x0, &IID_IUnknown
},
427 { 0x94, &IID_IFolderBandPriv
},
431 ID_NAME(CLSID_RecycleBin
),
433 { 0x0, &IID_IPersistFolder2
},
434 { 0x0, &IID_IPersistFolder
},
435 //{ 0x0, &IID_IPersist },
436 { 0x0, &IID_IUnknown
},
437 { 0x4, &IID_IShellFolder2
},
438 { 0x4, &IID_IShellFolder
},
439 { 0x8, &IID_IContextMenu
},
440 { 0xc, &IID_IShellPropSheetExt
},
441 { 0x10, &IID_IShellExtInit
},
445 ID_NAME(CLSID_SendToMenu
),
447 { -0x4, &IID_IContextMenu3
},
448 { -0x4, &IID_IContextMenu2
},
449 { -0x4, &IID_IContextMenu
},
450 { 0x0, &IID_IShellExtInit
},
451 { 0x0, &IID_IUnknown
},
452 { 0x4, &IID_IOleWindow
},
456 ID_NAME(CLSID_Shell
),
458 { 0x0, &IID_IShellDispatch4
},
459 { 0x0, &IID_IShellDispatch3
},
460 { 0x0, &IID_IShellDispatch2
},
461 { 0x0, &IID_IShellDispatch
},
462 { 0x0, &IID_IDispatch
},
463 { 0x0, &IID_IUnknown
},
464 { 0x4, &IID_IObjectSafety
},
465 { 0x20, &IID_IObjectWithSite
},
469 ID_NAME(CLSID_ShellDesktop
),
471 { -0x8, &CLSID_ShellDesktop
},
472 { -0x8, &IID_IObjectWithSite
},
473 { 0x0, &IID_IUnknown
},
474 { 0x4, &IID_IStorage
},
475 { 0x8, &IID_IPersistFolder2
},
476 { 0x8, &IID_IPersistFolder
},
477 { 0x8, &IID_IPersist
},
478 { 0xc, &IID_IShellIcon
},
479 { 0x14, &IID_IContextMenuCB
},
480 { 0x18, &IID_ITranslateShellChangeNotify
},
481 { 0x1c, &IID_IItemNameLimits
},
482 { 0x20, &IID_IOleCommandTarget
},
483 { FARAWY
, &IID_IShellIconOverlay
},
484 { FARAWY
, &IID_IShellFolder2
},
485 { FARAWY
, &IID_IShellFolder
},
489 ID_NAME(CLSID_ShellFSFolder
),
491 { 0x0, &IID_IUnknown
},
492 { 0xc, &IID_IShellFolder2
},
493 { 0xc, &IID_IShellFolder
},
494 { 0x10, &IID_IShellIcon
},
495 { 0x14, &IID_IShellIconOverlay
},
496 { 0x18, &IID_IPersistFolder3
},
497 { 0x18, &IID_IPersistFolder2
},
498 { 0x18, &IID_IPersistFolder
},
499 { 0x18, &IID_IPersist
},
500 { 0x18, &IID_IPersistFreeThreadedObject
},
501 { 0x1c, &IID_IStorage
},
502 { 0x24, &IID_IPropertySetStorage
},
503 { 0x28, &IID_IItemNameLimits
},
504 { 0x2c, &IID_IContextMenuCB
},
505 { 0x34, &IID_IOleCommandTarget
},
509 ID_NAME(CLSID_ShellFldSetExt
),
511 { 0x0, &IID_IShellPropSheetExt
},
512 { 0x0, &IID_IUnknown
},
513 { 0x4, &IID_IShellExtInit
},
514 { 0x8, &IID_IObjectWithSite
},
518 ID_NAME(CLSID_ShellFolderView
),
520 { 0x0, &IID_IShellFolderViewDual2
},
521 { 0x0, &IID_IShellFolderViewDual
},
522 { 0x0, &IID_IDispatch
},
523 { 0x0, &IID_IUnknown
},
524 { 0x4, &IID_IShellService
},
525 { 0x8, &IID_IServiceProvider
},
526 { 0xc, &IID_IObjectSafety
},
527 { 0x14, &IID_IObjectWithSite
},
528 { 0x1c, &IID_IConnectionPointContainer
},
532 ID_NAME(CLSID_ShellFolderViewOC
),
534 { 0x0, &IID_IFolderViewOC
},
535 { 0x0, &IID_IDispatch
},
536 { 0x0, &IID_IUnknown
},
537 { 0x4, &IID_IProvideClassInfo2
},
538 { 0x4, &IID_IProvideClassInfo
},
539 { 0x8, &IID_IObjectSafety
},
540 { 0x10, &IID_IConnectionPointContainer
},
541 { 0x88, &IID_IPersistStreamInit
},
542 { 0x88, &IID_IPersist
},
543 { 0x8c, &IID_IOleControl
},
544 { 0x90, &IID_IOleObject
},
545 { 0x94, &IID_IOleInPlaceActiveObject
},
546 { 0x98, &IID_IOleInPlaceObjectWindowless
},
547 { 0x98, &IID_IOleInPlaceObject
},
548 { 0x98, &IID_IOleWindow
},
552 ID_NAME(CLSID_ShellItem
),
554 { 0x0, &IID_IShellItem
},
555 { 0x0, &IID_IUnknown
},
556 { 0x4, &IID_IPersistIDList
},
557 { 0x8, &IID_IParentAndItem
},
561 ID_NAME(CLSID_ShellLink
),
563 { 0x0, &IID_IShellLinkA
},
564 { 0x0, &IID_IUnknown
},
565 { 0x4, &IID_IShellLinkW
},
566 { 0x8, &IID_IPersistStream
},
567 { 0xc, &IID_IPersistFile
},
568 { 0x10, &IID_IShellExtInit
},
569 { 0x14, &IID_IContextMenu3
},
570 { 0x14, &IID_IContextMenu2
},
571 { 0x14, &IID_IContextMenu
},
572 { 0x18, &IID_IDropTarget
},
573 { 0x1c, &IID_IQueryInfo
},
574 { 0x20, &IID_IShellLinkDataList
},
575 { 0x24, &IID_IExtractIconA
},
576 { 0x28, &IID_IExtractIconW
},
577 { 0x2c, &IID_IExtractImage2
},
578 { 0x2c, &IID_IExtractImage
},
579 { 0x30, &IID_IPersistPropertyBag
},
580 { 0x34, &IID_IServiceProvider
},
581 { 0x38, &IID_IFilter
},
582 { 0x3c, &IID_IObjectWithSite
},
583 { 0x44, &IID_ICustomizeInfoTip
},
584 { FARAWY
, &IID_ISLTracker
},
587 #if 0 // Apparently we can only get this through Folder.Items().GetLink
589 ID_NAME(CLSID_ShellLinkObject
),
591 { 0x0, &IID_IUnknown
},
596 ID_NAME(CLSID_StartMenu
),
598 { -0x48, &IID_IOleCommandTarget
},
599 { -0x44, &IID_IServiceProvider
},
600 { -0x40, &IID_IDeskBar
},
601 { -0x40, &IID_IOleWindow
},
602 { -0x3c, &IID_IInputObjectSite
},
603 { -0x38, &IID_IInputObject
},
604 { 0x0, &IID_IMenuPopup
},
605 { 0x0, &IID_IUnknown
},
606 { 0x4, &IID_IObjectWithSite
},
607 { 0x8, &IID_IBanneredBar
},
608 { 0xc, &IID_IInitializeObject
},
612 ID_NAME(CLSID_StartMenuPin
),
614 { 0x0, &IID_IShellExtInit
},
615 { 0x0, &IID_IUnknown
},
616 { 0x4, &IID_IContextMenu
},
617 { 0xc, &IID_IObjectWithSite
},
621 ID_NAME(CLSID_Thumbnail
),
623 { 0x0, &IID_IUnknown
},
624 { 0x4, &IID_IParentAndItem
},
625 { 0x8, &IID_IObjectWithSite
},
629 ID_NAME(CLSID_TrackShellMenu
),
631 { 0x0, &IID_ITrackShellMenu
},
632 { 0x0, &IID_IShellMenu
},
633 { 0x0, &IID_IUnknown
},
634 { 0x4, &IID_IShellMenu2
},
635 { 0x8, &IID_IObjectWithSite
},
636 { 0xc, &IID_IServiceProvider
},
640 ID_NAME(CLSID_UserNotification
),
642 { 0x0, &IID_IUserNotification
},
643 { 0x0, &IID_IUnknown
},
644 // { 0x4, &IID_IUserNotification2 }, // On Vista+
648 static const INT ExpectedInterfaceCount
= RTL_NUMBER_OF(ExpectedInterfaces
);
652 TestClasses(L
"shell32", ExpectedInterfaces
, ExpectedInterfaceCount
);