2 * PROJECT: ReactOS api tests
3 * LICENSE: GPLv2+ - See COPYING in the top level directory
4 * PURPOSE: COM interface test for shdocvw 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_AdminFolderShortcut
),
18 { 0x0, &IID_IShellFolder2
},
19 { 0x0, &IID_IShellFolder
},
20 { 0x0, &IID_IUnknown
},
21 { 0x4, &IID_IPersistFolder3
},
22 { 0x4, &IID_IPersistFolder2
},
23 { 0x4, &IID_IPersistFolder
},
24 { 0x4, &IID_IPersist
},
25 { 0x8, &IID_IShellLinkA
},
26 { 0xc, &IID_IShellLinkW
},
27 { 0x10, &IID_IPersistFile
},
28 { 0x14, &IID_IExtractIconW
},
29 { 0x18, &IID_IQueryInfo
},
30 { 0x20, &IID_IPersistStream
},
31 { 0x20, &IID_IPersistStreamInit
},
32 { 0x24, &IID_IPersistPropertyBag
},
33 { 0x28, &IID_IBrowserFrameOptions
},
37 ID_NAME(CLSID_ExplorerBand
),
39 { -0xb4, &IID_IDeskBand
},
40 { -0xb4, &IID_IDockingWindow
},
41 { -0xb4, &IID_IOleWindow
},
42 { -0xb0, &IID_IObjectWithSite
},
43 { -0xa8, &IID_IInputObject
},
44 { -0xa4, &IID_IPersistStream
},
45 { -0xa4, &IID_IPersist
},
46 { -0xa0, &IID_IOleCommandTarget
},
47 { -0x9c, &IID_IServiceProvider
},
48 { -0x84, &IID_IContextMenu
},
49 { -0x80, &IID_IBandNavigate
},
50 { -0x7c, &IID_IWinEventHandler
},
51 { -0x78, &IID_INamespaceProxy
},
52 { 0x0, &IID_IDispatch
},
53 { 0x0, &IID_IUnknown
},
57 ID_NAME(CLSID_FontsFolderShortcut
),
59 { 0x0, &IID_IShellFolder2
},
60 { 0x0, &IID_IShellFolder
},
61 { 0x0, &IID_IUnknown
},
62 { 0x4, &IID_IPersistFolder3
},
63 { 0x4, &IID_IPersistFolder2
},
64 { 0x4, &IID_IPersistFolder
},
65 { 0x4, &IID_IPersist
},
66 { 0x8, &IID_IShellLinkA
},
67 { 0xc, &IID_IShellLinkW
},
68 { 0x10, &IID_IPersistFile
},
69 { 0x14, &IID_IExtractIconW
},
70 { 0x18, &IID_IQueryInfo
},
71 { 0x20, &IID_IPersistStream
},
72 { 0x20, &IID_IPersistStreamInit
},
73 { 0x24, &IID_IPersistPropertyBag
},
74 { 0x28, &IID_IBrowserFrameOptions
},
77 #if 0 // E_OUTOFMEMORY?
79 ID_NAME(CLSID_ShellDispatchInproc
),
81 { 0x0, &IID_IUnknown
},
86 ID_NAME(CLSID_MruLongList
),
88 { 0x0, &IID_IUnknown
},
92 ID_NAME(CLSID_SearchAssistantOC
),
94 { 0x0, &IID_ISearchAssistantOC3
},
95 { 0x0, &IID_ISearchAssistantOC
},
96 { 0x0, &IID_IDispatch
},
97 { 0x0, &IID_IUnknown
},
98 { 0x10, &IID_IOleObject
},
99 { 0x14, &IID_IOleInPlaceActiveObject
},
100 { 0x18, &IID_IViewObjectEx
},
101 { 0x18, &IID_IViewObject2
},
102 { 0x18, &IID_IViewObject
},
103 { 0x1c, &IID_IOleInPlaceObjectWindowless
},
104 { 0x1c, &IID_IOleInPlaceObject
},
105 { 0x1c, &IID_IOleWindow
},
106 { 0x20, &IID_IDataObject
},
107 { 0x34, &IID_IObjectSafety
},
108 { 0x3c, &IID_IOleCommandTarget
},
109 { 0x40, &IID_IObjectWithSite
},
113 ID_NAME(CLSID_ShellSearchAssistantOC
),
115 { 0x0, &IID_ISearchAssistantOC3
},
116 { 0x0, &IID_ISearchAssistantOC
},
117 { 0x0, &IID_IDispatch
},
118 { 0x0, &IID_IUnknown
},
119 { 0x10, &IID_IOleObject
},
120 { 0x14, &IID_IOleInPlaceActiveObject
},
121 { 0x18, &IID_IViewObjectEx
},
122 { 0x18, &IID_IViewObject2
},
123 { 0x18, &IID_IViewObject
},
124 { 0x1c, &IID_IOleInPlaceObjectWindowless
},
125 { 0x1c, &IID_IOleInPlaceObject
},
126 { 0x1c, &IID_IOleWindow
},
127 { 0x20, &IID_IDataObject
},
128 { 0x34, &IID_IObjectSafety
},
129 { 0x3c, &IID_IOleCommandTarget
},
130 { 0x40, &IID_IObjectWithSite
},
134 ID_NAME(CLSID_ShellShellNameSpace
),
136 { 0x0, &IID_IShellNameSpace
},
137 { 0x0, &IID_IShellFavoritesNameSpace
},
138 { 0x0, &IID_IDispatch
},
139 { 0x0, &IID_IUnknown
},
140 { 0x8, &IID_IPersistStreamInit
},
141 { 0xc, &IID_IPersistPropertyBag
},
142 { 0x18, &IID_IOleObject
},
143 { 0x1c, &IID_IOleInPlaceActiveObject
},
144 { 0x20, &IID_IViewObjectEx
},
145 { 0x20, &IID_IViewObject2
},
146 { 0x20, &IID_IViewObject
},
147 { 0x24, &IID_IOleInPlaceObjectWindowless
},
148 { 0x24, &IID_IOleInPlaceObject
},
149 { 0x24, &IID_IOleWindow
},
150 { 0x3c, &IID_IShellChangeNotify
},
151 { 0x40, &IID_IDropTarget
},
152 { 0xb4, &IID_IObjectWithSite
},
153 { 0xbc, &IID_INSCTree2
},
154 { 0xbc, &IID_INSCTree
},
155 { 0xc0, &IID_IWinEventHandler
},
156 { 0xc4, &IID_IShellBrowser
},
157 { 0xc8, &IID_IFolderFilterSite
},
161 ID_NAME(CLSID_TaskbarList
),
163 { 0x0, &IID_ITaskbarList2
},
164 { 0x0, &IID_ITaskbarList
},
165 { 0x0, &IID_IUnknown
},
169 static const INT ExpectedInterfaceCount
= RTL_NUMBER_OF(ExpectedInterfaces
);
173 TestClasses(L
"shdocvw", ExpectedInterfaces
, ExpectedInterfaceCount
);