Time to commit some Work-In-Progress stuff before my diff gets too large..
[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, &IID_IDispatch },
211 { 0x0, &IID_IUnknown },
212 { 0x4, &IID_IPersistStreamInit },
213 { 0x8, &IID_IShellChangeNotify },
214 }
215 },
216 {
217 ID_NAME(CLSID_ProgressDialog),
218 {
219 { 0x0, &IID_IProgressDialog },
220 { 0x0, &IID_IUnknown },
221 { 0x4, &IID_IOleWindow },
222 { 0x8, &IID_IActionProgressDialog },
223 { 0xc, &IID_IActionProgress },
224 { 0x10, &IID_IObjectWithSite },
225 },
226 L"Both"
227 },
228 {
229 ID_NAME(CLSID_RebarBandSite),
230 {
231 { 0x0, &IID_IUnknown },
232 { 0xc, &IID_IBandSite },
233 { 0x10, &IID_IInputObjectSite },
234 { 0x14, &IID_IInputObject },
235 { 0x18, &IID_IDeskBarClient },
236 { 0x18, &IID_IOleWindow },
237 { 0x1c, &IID_IWinEventHandler },
238 { 0x20, &IID_IPersistStream },
239 { 0x20, &IID_IPersist },
240 { 0x24, &IID_IDropTarget },
241 { 0x28, &IID_IServiceProvider },
242 { 0x2c, &IID_IBandSiteHelper },
243 { 0x30, &IID_IOleCommandTarget },
244 }
245 },
246 {
247 ID_NAME(CLSID_SH_AddressBand),
248 {
249 { 0x0, &IID_IDeskBand },
250 { 0x0, &IID_IDockingWindow },
251 { 0x0, &IID_IOleWindow },
252 { 0x0, &IID_IUnknown },
253 { 0x4, &IID_IObjectWithSite },
254 { 0xc, &IID_IInputObject },
255 { 0x10, &IID_IPersistStream },
256 { 0x10, &IID_IPersist },
257 { 0x14, &IID_IOleCommandTarget },
258 { 0x18, &IID_IServiceProvider },
259 { 0x30, &IID_IWinEventHandler },
260 { 0x34, &IID_IAddressBand },
261 { 0x38, &IID_IInputObjectSite },
262 }
263 },
264 {
265 ID_NAME(CLSID_SharedTaskScheduler),
266 {
267 { 0x0, &IID_IShellTaskScheduler },
268 { 0x0, &IID_IUnknown },
269 }
270 },
271 {
272 ID_NAME(CLSID_ShellSearchExt),
273 {
274 { 0x0, &IID_IContextMenu },
275 { 0x0, &IID_IUnknown },
276 { 0x4, &IID_IObjectWithSite },
277 }
278 },
279 };
280 static const INT ExpectedInterfaceCount = RTL_NUMBER_OF(ExpectedInterfaces);
281
282 START_TEST(browseui)
283 {
284 TestClasses(L"browseui", ExpectedInterfaces, ExpectedInterfaceCount);
285 }