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_SH_FavBand
),
94 { -0x30, &IID_IDeskBand
},
95 { -0x30, &IID_IDockingWindow
},
96 { -0x30, &IID_IOleWindow
},
97 { -0x2c, &IID_IObjectWithSite
},
98 { -0x24, &IID_IInputObject
},
99 { -0x20, &IID_IPersistStream
},
100 { -0x20, &IID_IPersist
},
101 { -0x1c, &IID_IOleCommandTarget
},
102 { -0x18, &IID_IServiceProvider
},
103 { 0x0, &IID_IContextMenu
},
104 { 0x0, &IID_IUnknown
},
105 { 0x4, &IID_IBandNavigate
},
106 { 0x8, &IID_IWinEventHandler
},
107 { 0xc, &IID_INamespaceProxy
},
111 ID_NAME(CLSID_SH_HistBand
),
113 { -0xb4, &IID_IDeskBand
},
114 { -0xb4, &IID_IDockingWindow
},
115 { -0xb4, &IID_IOleWindow
},
116 { -0xb0, &IID_IObjectWithSite
},
117 { -0xa8, &IID_IInputObject
},
118 { -0xa4, &IID_IPersistStream
},
119 { -0xa4, &IID_IPersist
},
120 { -0xa0, &IID_IOleCommandTarget
},
121 { -0x9c, &IID_IServiceProvider
},
122 { -0x84, &IID_IContextMenu
},
123 { -0x80, &IID_IBandNavigate
},
124 { -0x7c, &IID_IWinEventHandler
},
125 { -0x78, &IID_INamespaceProxy
},
126 { 0x0, &IID_IShellFolderSearchableCallback
},
127 { 0x0, &IID_IUnknown
},
131 ID_NAME(CLSID_SearchAssistantOC
),
133 { 0x0, &IID_ISearchAssistantOC3
},
134 { 0x0, &IID_ISearchAssistantOC
},
135 { 0x0, &IID_IDispatch
},
136 { 0x0, &IID_IUnknown
},
137 { 0x4, &IID_IProvideClassInfo2
},
138 { 0x4, &IID_IProvideClassInfo
},
139 { 0x8, &IID_IQuickActivate
},
140 { 0xc, &IID_IOleControl
},
141 { 0x10, &IID_IOleObject
},
142 { 0x14, &IID_IOleInPlaceActiveObject
},
143 { 0x18, &IID_IViewObjectEx
},
144 { 0x18, &IID_IViewObject2
},
145 { 0x18, &IID_IViewObject
},
146 { 0x1c, &IID_IOleInPlaceObjectWindowless
},
147 { 0x1c, &IID_IOleInPlaceObject
},
148 { 0x1c, &IID_IOleWindow
},
149 { 0x20, &IID_IDataObject
},
150 { 0x30, &IID_IConnectionPointContainer
},
151 { 0x34, &IID_IObjectSafety
},
152 { 0x3c, &IID_IOleCommandTarget
},
153 { 0x40, &IID_IObjectWithSite
},
157 ID_NAME(CLSID_SearchBand
),
159 { 0x0, &IID_IContextMenu
},
160 { 0x0, &IID_IUnknown
},
161 { 0x4, &IID_IShellExtInit
},
162 { 0x8, &IID_IPersistPropertyBag
},
163 { 0x8, &IID_IPersist
},
167 ID_NAME(CLSID_ShellSearchAssistantOC
),
169 { 0x0, &IID_ISearchAssistantOC3
},
170 { 0x0, &IID_ISearchAssistantOC
},
171 { 0x0, &IID_IDispatch
},
172 { 0x0, &IID_IUnknown
},
173 { 0x4, &IID_IProvideClassInfo2
},
174 { 0x4, &IID_IProvideClassInfo
},
175 { 0x8, &IID_IQuickActivate
},
176 { 0xc, &IID_IOleControl
},
177 { 0x10, &IID_IOleObject
},
178 { 0x14, &IID_IOleInPlaceActiveObject
},
179 { 0x18, &IID_IViewObjectEx
},
180 { 0x18, &IID_IViewObject2
},
181 { 0x18, &IID_IViewObject
},
182 { 0x1c, &IID_IOleInPlaceObjectWindowless
},
183 { 0x1c, &IID_IOleInPlaceObject
},
184 { 0x1c, &IID_IOleWindow
},
185 { 0x20, &IID_IDataObject
},
186 { 0x30, &IID_IConnectionPointContainer
},
187 { 0x34, &IID_IObjectSafety
},
188 { 0x3c, &IID_IOleCommandTarget
},
189 { 0x40, &IID_IObjectWithSite
},
193 ID_NAME(CLSID_ShellShellNameSpace
),
195 { 0x0, &IID_IShellNameSpace
},
196 { 0x0, &IID_IShellFavoritesNameSpace
},
197 { 0x0, &IID_IDispatch
},
198 { 0x0, &IID_IUnknown
},
199 { 0x4, &IID_IProvideClassInfo2
},
200 { 0x4, &IID_IProvideClassInfo
},
201 { 0x8, &IID_IPersistStreamInit
},
202 { 0xc, &IID_IPersistPropertyBag
},
203 { 0x10, &IID_IQuickActivate
},
204 { 0x14, &IID_IOleControl
},
205 { 0x18, &IID_IOleObject
},
206 { 0x1c, &IID_IOleInPlaceActiveObject
},
207 { 0x20, &IID_IViewObjectEx
},
208 { 0x20, &IID_IViewObject2
},
209 { 0x20, &IID_IViewObject
},
210 { 0x24, &IID_IOleInPlaceObjectWindowless
},
211 { 0x24, &IID_IOleInPlaceObject
},
212 { 0x24, &IID_IOleWindow
},
213 { 0x28, &IID_ISpecifyPropertyPages
},
214 { 0x38, &IID_IConnectionPointContainer
},
215 { 0x3c, &IID_IShellChangeNotify
},
216 { 0x40, &IID_IDropTarget
},
217 { 0xb4, &IID_IObjectWithSite
},
218 { 0xbc, &IID_INSCTree2
},
219 { 0xbc, &IID_INSCTree
},
220 { 0xc0, &IID_IWinEventHandler
},
221 { 0xc4, &IID_IShellBrowser
},
222 { 0xc8, &IID_IFolderFilterSite
},
226 ID_NAME(CLSID_TaskbarList
),
228 { 0x0, &IID_ITaskbarList2
},
229 { 0x0, &IID_ITaskbarList
},
230 { 0x0, &IID_IUnknown
},
234 static const INT ExpectedInterfaceCount
= RTL_NUMBER_OF(ExpectedInterfaces
);
238 TestClasses(L
"shdocvw", ExpectedInterfaces
, ExpectedInterfaceCount
);