ReactOS 0.4.16-dev-1946-g52006dd
shdocvw.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 shdocvw 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
14{
15 /* CLSID_AdminFolderShortcut has two entries here because the threading model
16 * changed between Windows versions. */
17 {
19 {
20 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IShellLinkA },
21 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IShellLinkW },
23 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IExtractIconW },
24 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IQueryInfo },
27 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IBrowserFrameOptions },
28
29 { NTDDI_MIN, NTDDI_MAX, &IID_IShellFolder2 },
30 { NTDDI_MIN, NTDDI_MAX, &IID_IShellFolder },
32 { NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder3 },
33 { NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder2 },
34 { NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder },
37
38 { NTDDI_VISTA, NTDDI_VISTASP4, &IID_IAliasRegistrationCallback },
39
40 { NTDDI_VISTA, NTDDI_WIN7SP1, &IID_ILocalizableItemParent },
41
43 { NTDDI_VISTA, NTDDI_MAX, &IID_IShellIcon },
44 { NTDDI_VISTA, NTDDI_MAX, &IID_IShellIconOverlay },
45 { NTDDI_VISTA, NTDDI_MAX, &IID_IStorage },
46 { NTDDI_VISTA, NTDDI_MAX, &IID_IItemNameLimits },
47 { NTDDI_VISTA, NTDDI_MAX, &IID_IContextMenuCB },
48 { NTDDI_VISTA, NTDDI_MAX, &IID_IOleCommandTarget },
49 { NTDDI_VISTA, NTDDI_MAX, &IID_IOleCommandTarget },
50 { NTDDI_VISTA, NTDDI_MAX, &IID_IObjectWithBackReferences },
51 { NTDDI_VISTA, NTDDI_MAX, &IID_IRemoteComputer },
52 { NTDDI_VISTA, NTDDI_MAX, &IID_IFolderType },
53 { NTDDI_VISTA, NTDDI_MAX, &IID_IBackReferencedObject },
54 }
55 },
56 {
58 {
59 { NTDDI_MIN, NTDDI_MAX, &IID_IShellFolder2 },
60 { NTDDI_MIN, NTDDI_MAX, &IID_IShellFolder },
62 { NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder3 },
63 { NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder2 },
64 { NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder },
67
68 { NTDDI_VISTA, NTDDI_WIN7SP1, &IID_ILocalizableItemParent },
69
71 { NTDDI_VISTA, NTDDI_MAX, &IID_IShellIcon },
72 { NTDDI_VISTA, NTDDI_MAX, &IID_IShellIconOverlay },
73 { NTDDI_VISTA, NTDDI_MAX, &IID_IStorage },
74 { NTDDI_VISTA, NTDDI_MAX, &IID_IItemNameLimits },
75 { NTDDI_VISTA, NTDDI_MAX, &IID_IContextMenuCB },
76 { NTDDI_VISTA, NTDDI_MAX, &IID_IOleCommandTarget },
77 { NTDDI_VISTA, NTDDI_MAX, &IID_IOleCommandTarget },
78 { NTDDI_VISTA, NTDDI_MAX, &IID_IObjectWithBackReferences },
79 { NTDDI_VISTA, NTDDI_MAX, &IID_IRemoteComputer },
80 { NTDDI_VISTA, NTDDI_MAX, &IID_IFolderType },
81 { NTDDI_VISTA, NTDDI_MAX, &IID_IBackReferencedObject },
82
83 { NTDDI_WIN7, NTDDI_MAX, &IID_IParentAndItem },
84 },
85 L"Both"
86 },
87 {
88 ID_NAME(CLSID_ExplorerBand, NTDDI_MIN, NTDDI_WS03SP4),
89 {
90 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IDeskBand },
91 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IDockingWindow },
94 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IInputObject },
97 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleCommandTarget },
98 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IServiceProvider },
99 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IContextMenu },
100 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IBandNavigate },
101 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IWinEventHandler },
102 { NTDDI_MIN, NTDDI_WS03SP4, &IID_INamespaceProxy },
105 }
106 },
107 {
109 {
110 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IShellFolder2 },
111 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IShellFolder },
113 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IPersistFolder3 },
114 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IPersistFolder2 },
115 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IPersistFolder },
117 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IShellLinkA },
118 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IShellLinkW },
120 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IExtractIconW },
121 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IQueryInfo },
125 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IBrowserFrameOptions },
126
127 { NTDDI_VISTA, NTDDI_VISTASP4, &IID_IFolderWithSearchRoot },
128 { NTDDI_VISTA, NTDDI_VISTASP4, &IID_IShellIconOverlay },
129 }
130 },
131#if 0 // E_OUTOFMEMORY?
132 {
133 ID_NAME(CLSID_ShellDispatchInproc, NTDDI_MIN, NTDDI_WS03SP4),
134 {
136 }
137 },
138#endif
139 {
140 ID_NAME(CLSID_MruLongList, NTDDI_MIN, NTDDI_WS03SP4),
141 {
142 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IMruDataList },
144 }
145 },
146 {
147 ID_NAME(CLSID_MruPidlList, NTDDI_MIN, NTDDI_WS03SP4),
148 {
149 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IMruPidlList },
151 }
152 },
153 {
154 ID_NAME(CLSID_SH_FavBand, NTDDI_MIN, NTDDI_WS03SP4),
155 {
156 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IDeskBand },
157 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IDockingWindow },
160 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IInputObject },
163 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleCommandTarget },
164 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IServiceProvider },
165 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IContextMenu },
167 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IBandNavigate },
168 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IWinEventHandler },
169 { NTDDI_MIN, NTDDI_WS03SP4, &IID_INamespaceProxy },
170 }
171 },
172 {
173 ID_NAME(CLSID_SH_HistBand, NTDDI_MIN, NTDDI_WS03SP4),
174 {
175 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IDeskBand },
176 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IDockingWindow },
179 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IInputObject },
182 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleCommandTarget },
183 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IServiceProvider },
184 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IContextMenu },
185 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IBandNavigate },
186 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IWinEventHandler },
187 { NTDDI_MIN, NTDDI_WS03SP4, &IID_INamespaceProxy },
188 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IShellFolderSearchableCallback },
190 }
191 },
192 {
193 ID_NAME(CLSID_SearchAssistantOC, NTDDI_MIN, NTDDI_WS03SP4),
194 {
195 { NTDDI_MIN, NTDDI_WS03SP4, &IID_ISearchAssistantOC3 },
196 { NTDDI_MIN, NTDDI_WS03SP4, &IID_ISearchAssistantOC },
201 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IQuickActivate },
205 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IViewObjectEx },
208 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleInPlaceObjectWindowless },
213 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IObjectSafety },
214 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleCommandTarget },
216 }
217 },
218 {
219 ID_NAME(CLSID_SearchBand, NTDDI_MIN, NTDDI_WIN7SP1),
220 {
221 { NTDDI_MIN, NTDDI_WIN7SP1, &IID_IContextMenu },
223 { NTDDI_MIN, NTDDI_WIN7SP1, &IID_IShellExtInit },
226
227 { NTDDI_VISTA, NTDDI_WIN7SP1, &IID_IShellFolder },
228 }
229 },
230 {
231 ID_NAME(CLSID_ShellSearchAssistantOC, NTDDI_MIN, NTDDI_WS03SP4),
232 {
233 { NTDDI_MIN, NTDDI_WS03SP4, &IID_ISearchAssistantOC3 },
234 { NTDDI_MIN, NTDDI_WS03SP4, &IID_ISearchAssistantOC },
239 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IQuickActivate },
243 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IViewObjectEx },
246 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleInPlaceObjectWindowless },
251 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IObjectSafety },
252 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleCommandTarget },
254 }
255 },
256 {
257 ID_NAME(CLSID_ShellShellNameSpace, NTDDI_MIN, NTDDI_VISTASP4),
258 {
259 { NTDDI_MIN, NTDDI_WS03SP4, &IID_IShellChangeNotify },
261
262 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IShellNameSpace },
263 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IShellFavoritesNameSpace },
270 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IQuickActivate },
274 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IViewObjectEx },
277 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IOleInPlaceObjectWindowless },
281 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IDropTarget },
283 { NTDDI_MIN, NTDDI_VISTASP4, &IID_INSCTree2 },
284 { NTDDI_MIN, NTDDI_VISTASP4, &IID_INSCTree },
285 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IWinEventHandler },
286 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IShellBrowser },
287 { NTDDI_MIN, NTDDI_VISTASP4, &IID_IFolderFilterSite },
288
289 { NTDDI_VISTA, NTDDI_VISTASP4, &IID_INewMenuClient },
290 { NTDDI_VISTA, NTDDI_VISTASP4, &IID_IServiceProvider },
291 { NTDDI_VISTA, NTDDI_VISTASP4, &IID_INameSpaceTreeControl },
292 { NTDDI_VISTA, NTDDI_VISTASP4, &IID_IVisualProperties },
293 }
294 },
295 {
296 ID_NAME(CLSID_TaskbarList, NTDDI_MIN, NTDDI_VISTASP4),
297 {
298 { NTDDI_MIN, NTDDI_VISTASP4, &IID_ITaskbarList2 },
299 { NTDDI_MIN, NTDDI_VISTASP4, &IID_ITaskbarList },
301 }
302 },
303 {
304 ID_NAME(CLSID_AttachmentServices, NTDDI_MIN, NTDDI_MAX),
305 {
306 { NTDDI_MIN, NTDDI_MAX, &IID_IAttachmentExecute },
308 }
309 },
310};
311
313{
315}
#define RTL_NUMBER_OF(x)
Definition: RtlRegistry.c:12
#define NTDDI_MIN
Definition: apitest.h:20
#define NTDDI_MAX
Definition: apitest.h:21
static const CLASS_AND_INTERFACES ExpectedInterfaces[]
Definition: shdocvw.c:13
#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_FontsFolderShortcut
const GUID CLSID_AdminFolderShortcut
#define L(x)
Definition: resources.c:13
const IID IID_IObjectWithSite
const GUID IID_IOleInPlaceActiveObject
const GUID IID_IViewObject
const GUID IID_IConnectionPointContainer
const GUID IID_IProvideClassInfo
const GUID IID_IOleWindow
const GUID IID_IViewObject2
const GUID IID_IProvideClassInfo2
const GUID IID_IDataObject
const GUID IID_IDispatch
const GUID IID_IOleInPlaceObject
const GUID IID_IOleObject
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_ISpecifyPropertyPages
Definition: proxy.cpp:12
const GUID IID_IPersistPropertyBag
Definition: proxy.cpp:11
#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