[COM_APITEST]
[reactos.git] / rostests / apitests / com / browseui.c
1 /*
2 * PROJECT: ReactOS api tests
3 * LICENSE: GPLv2+ - See COPYING in the top level directory
4 * PURPOSE: COM interface test for browseui 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
13 static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
14 {
15 {
16 ID_NAME(CLSID_ACLMulti),
17 {
18 { 0x0, &IID_IEnumString },
19 { 0x0, &IID_IUnknown },
20 { 0x4, &IID_IObjMgr },
21 { 0x8, &IID_IACList },
22 }
23 },
24 {
25 ID_NAME(CLSID_ACListISF),
26 {
27 { 0x0, &IID_IEnumString },
28 { 0x0, &IID_IUnknown },
29 { 0x4, &IID_IACList2 },
30 { 0x4, &IID_IACList },
31 { 0xc, &IID_IShellService },
32 { 0x10, &IID_IPersistFolder },
33 }
34 },
35 {
36 ID_NAME(CLSID_AddressEditBox),
37 {
38 { 0x0, &IID_IWinEventHandler },
39 { 0x0, &IID_IUnknown },
40 { 0x4, &IID_IDispatch },
41 { 0x8, &IID_IAddressBand },
42 { 0xc, &IID_IAddressEditBox },
43 { 0x10, &IID_IOleCommandTarget },
44 { 0x14, &IID_IPersistStream },
45 { 0x18, &IID_IShellService },
46 }
47 },
48 {
49 ID_NAME(CLSID_AugmentedShellFolder),
50 {
51 { 0x0, &IID_IAugmentedShellFolder2 },
52 { 0x0, &IID_IAugmentedShellFolder },
53 { 0x0, &IID_IShellFolder },
54 { 0x0, &IID_IUnknown },
55 { 0x4, &IID_IShellService },
56 { 0x8, &IID_ITranslateShellChangeNotify },
57 }
58 },
59 {
60 ID_NAME(CLSID_AugmentedShellFolder2),
61 {
62 { 0x0, &IID_IAugmentedShellFolder2 },
63 { 0x0, &IID_IAugmentedShellFolder },
64 { 0x0, &IID_IShellFolder },
65 { 0x0, &IID_IUnknown },
66 { 0x4, &IID_IShellFolder2 },
67 { 0x8, &IID_IShellService },
68 { 0xc, &IID_ITranslateShellChangeNotify },
69 { 0x10, &IID_IDropTarget },
70 }
71 },
72 {
73 ID_NAME(CLSID_AutoComplete),
74 {
75 { 0x0, &IID_IAutoComplete2 },
76 { 0x0, &IID_IAutoComplete },
77 { 0x0, &IID_IUnknown },
78 { 0x4, &IID_IAutoCompleteDropDown },
79 { 0x8, &IID_IEnumString },
80 { 0xc, &IID_IAccessible },
81 { 0xc, &IID_IDispatch },
82 }
83 },
84 {
85 ID_NAME(CLSID_BackgroundTaskScheduler),
86 {
87 { 0x0, &IID_IShellTaskScheduler },
88 { 0x0, &IID_IUnknown },
89 }
90 },
91 {
92 ID_NAME(CLSID_BandProxy),
93 {
94 { 0x0, &IID_IBandProxy },
95 { 0x0, &IID_IUnknown },
96 }
97 },
98 {
99 ID_NAME(CLSID_BrandBand),
100 {
101 { 0x0, &IID_IDeskBand },
102 { 0x0, &IID_IDockingWindow },
103 { 0x0, &IID_IOleWindow },
104 { 0x0, &IID_IUnknown },
105 { 0x4, &IID_IObjectWithSite },
106 { 0xc, &IID_IInputObject },
107 { 0x10, &IID_IPersistStream },
108 { 0x10, &IID_IPersist },
109 { 0x14, &IID_IOleCommandTarget },
110 { 0x18, &IID_IServiceProvider },
111 { 0x30, &IID_IWinEventHandler },
112 { 0x34, &IID_IDispatch },
113 }
114 },
115 {
116 ID_NAME(CLSID_BandSiteMenu),
117 {
118 { 0x0, &IID_IContextMenu3 },
119 { 0x0, &IID_IContextMenu2 },
120 { 0x0, &IID_IContextMenu },
121 { 0x0, &IID_IUnknown },
122 { 0x4, &IID_IShellService },
123 }
124 },
125 {
126 ID_NAME(CLSID_CCommonBrowser),
127 {
128 { 0x0, &IID_IUnknown },
129 { 0xc, &IID_IShellBrowser },
130 { 0xc, &IID_IOleWindow },
131 { 0x10, &IID_IBrowserService3 },
132 { 0x10, &IID_IBrowserService2 },
133 { 0x10, &IID_IBrowserService },
134 { 0x14, &IID_IServiceProvider },
135 { 0x18, &IID_IOleCommandTarget },
136 { 0x1c, &IID_IDockingWindowSite },
137 { 0x20, &IID_IDockingWindowFrame },
138 { 0x24, &IID_IInputObjectSite },
139 { 0x28, &IID_IDropTarget },
140 { 0x2c, &IID_IShellBrowserService },
141 }
142 },
143 {
144 ID_NAME(CLSID_CRegTreeOptions),
145 {
146 { 0x0, &IID_IRegTreeOptions },
147 { 0x0, &IID_IUnknown },
148 { 0x4, &IID_IObjectWithSite },
149 }
150 },
151 {
152 ID_NAME(CLSID_DeskBar),
153 {
154 { -0xb8, &IID_IOleCommandTarget },
155 { -0xb4, &IID_IServiceProvider },
156 { -0xb0, &IID_IDeskBar },
157 { -0xb0, &IID_IOleWindow },
158 { -0xac, &IID_IInputObjectSite },
159 { -0xa8, &IID_IInputObject },
160 { -0x70, &IID_IDockingWindow },
161 { -0x6c, &IID_IObjectWithSite },
162 { -0x68, &IID_IPersistStreamInit },
163 { -0x68, &IID_IPersistStream },
164 { -0x68, &IID_IPersist },
165 { -0x64, &IID_IPersistPropertyBag },
166 { 0x0, &IID_IUnknown },
167 }
168 },
169 {
170 ID_NAME(CLSID_DeskBarApp),
171 {
172 { -0xb8, &IID_IOleCommandTarget },
173 { -0xb4, &IID_IServiceProvider },
174 { -0xb0, &IID_IDeskBar },
175 { -0xb0, &IID_IOleWindow },
176 { -0xac, &IID_IInputObjectSite },
177 { -0xa8, &IID_IInputObject },
178 { -0x70, &IID_IDockingWindow },
179 { -0x6c, &IID_IObjectWithSite },
180 { -0x68, &IID_IPersistStreamInit },
181 { -0x68, &IID_IPersistStream },
182 { -0x68, &IID_IPersist },
183 { -0x64, &IID_IPersistPropertyBag },
184 { 0x0, &IID_IUnknown },
185 { 0x8, &IID_IContextMenu3 },
186 { 0x8, &IID_IContextMenu2 },
187 { 0x8, &IID_IContextMenu },
188 }
189 },
190 {
191 ID_NAME(CLSID_GlobalFolderSettings),
192 {
193 { 0x0, &IID_IGlobalFolderSettings },
194 { 0x0, &IID_IUnknown },
195 },
196 L"Both"
197 },
198 {
199 ID_NAME(CLSID_InternetToolbar),
200 {
201 { -0x54, &IID_IOleCommandTarget },
202 { -0x50, &IID_IServiceProvider },
203 { -0x4c, &IID_IDeskBar },
204 { -0x4c, &IID_IOleWindow },
205 { -0x48, &IID_IInputObjectSite },
206 { -0x44, &IID_IInputObject },
207 { -0xc, &IID_IDockingWindow },
208 { -0x8, &IID_IObjectWithSite },
209 { -0x4, &IID_IExplorerToolbar },
210 { 0x0, &DIID_DWebBrowserEvents },
211 { 0x0, &IID_IDispatch },
212 { 0x0, &IID_IUnknown },
213 { 0x4, &IID_IPersistStreamInit },
214 { 0x8, &IID_IShellChangeNotify },
215 }
216 },
217 {
218 ID_NAME(CLSID_ProgressDialog),
219 {
220 { 0x0, &IID_IProgressDialog },
221 { 0x0, &IID_IUnknown },
222 { 0x4, &IID_IOleWindow },
223 { 0x8, &IID_IActionProgressDialog },
224 { 0xc, &IID_IActionProgress },
225 { 0x10, &IID_IObjectWithSite },
226 },
227 L"Both"
228 },
229 {
230 ID_NAME(CLSID_RebarBandSite),
231 {
232 { 0x0, &IID_IUnknown },
233 { 0xc, &IID_IBandSite },
234 { 0x10, &IID_IInputObjectSite },
235 { 0x14, &IID_IInputObject },
236 { 0x18, &IID_IDeskBarClient },
237 { 0x18, &IID_IOleWindow },
238 { 0x1c, &IID_IWinEventHandler },
239 { 0x20, &IID_IPersistStream },
240 { 0x20, &IID_IPersist },
241 { 0x24, &IID_IDropTarget },
242 { 0x28, &IID_IServiceProvider },
243 { 0x2c, &IID_IBandSiteHelper },
244 { 0x30, &IID_IOleCommandTarget },
245 }
246 },
247 {
248 ID_NAME(CLSID_SH_AddressBand),
249 {
250 { 0x0, &IID_IDeskBand },
251 { 0x0, &IID_IDockingWindow },
252 { 0x0, &IID_IOleWindow },
253 { 0x0, &IID_IUnknown },
254 { 0x4, &IID_IObjectWithSite },
255 { 0xc, &IID_IInputObject },
256 { 0x10, &IID_IPersistStream },
257 { 0x10, &IID_IPersist },
258 { 0x14, &IID_IOleCommandTarget },
259 { 0x18, &IID_IServiceProvider },
260 { 0x30, &IID_IWinEventHandler },
261 { 0x34, &IID_IAddressBand },
262 { 0x38, &IID_IInputObjectSite },
263 }
264 },
265 {
266 ID_NAME(CLSID_SharedTaskScheduler),
267 {
268 { 0x0, &IID_IShellTaskScheduler },
269 { 0x0, &IID_IUnknown },
270 }
271 },
272 {
273 ID_NAME(CLSID_ShellSearchExt),
274 {
275 { 0x0, &IID_IContextMenu },
276 { 0x0, &IID_IUnknown },
277 { 0x4, &IID_IObjectWithSite },
278 }
279 },
280 };
281 static const INT ExpectedInterfaceCount = RTL_NUMBER_OF(ExpectedInterfaces);
282
283 START_TEST(browseui)
284 {
285 TestClasses(L"browseui", ExpectedInterfaces, ExpectedInterfaceCount);
286 }