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_ACLCustomMRU), 17 { 18 { 0x0, &IID_IEnumString }, 19 { 0x0, &IID_IUnknown }, 20 { 0x4, &IID_IACList }, 21 { 0x8, &IID_IACLCustomMRU }, 22 }, 23 }, 24 { 25 ID_NAME(CLSID_ACLHistory), 26 { 27 { 0x0, &IID_IEnumString }, 28 { 0x0, &IID_IUnknown }, 29 }, 30 }, 31 { 32 ID_NAME(CLSID_ACLMRU), 33 { 34 { 0x0, &IID_IEnumString }, 35 { 0x0, &IID_IUnknown }, 36 { 0x4, &IID_IACList }, 37 { 0x8, &IID_IACLCustomMRU }, 38 }, 39 }, 40 { 41 ID_NAME(CLSID_ACLMulti), 42 { 43 { 0x0, &IID_IEnumString }, 44 { 0x0, &IID_IUnknown }, 45 { 0x4, &IID_IObjMgr }, 46 { 0x8, &IID_IACList }, 47 } 48 }, 49 { 50 ID_NAME(CLSID_ACListISF), 51 { 52 { 0x0, &IID_IEnumString }, 53 { 0x0, &IID_IUnknown }, 54 { 0x4, &IID_IACList2 }, 55 { 0x4, &IID_IACList }, 56 { 0x8, &IID_ICurrentWorkingDirectory }, 57 { 0xc, &IID_IShellService }, 58 { 0x10, &IID_IPersistFolder }, 59 } 60 }, 61 { 62 ID_NAME(CLSID_AddressEditBox), 63 { 64 { 0x0, &IID_IWinEventHandler }, 65 { 0x0, &IID_IUnknown }, 66 { 0x4, &IID_IDispatch }, 67 { 0x8, &IID_IAddressBand }, 68 { 0xc, &IID_IAddressEditBox }, 69 { 0x10, &IID_IOleCommandTarget }, 70 { 0x14, &IID_IPersistStream }, 71 { 0x18, &IID_IShellService }, 72 } 73 }, 74 { 75 ID_NAME(CLSID_AugmentedShellFolder), 76 { 77 { 0x0, &IID_IAugmentedShellFolder2 }, 78 { 0x0, &IID_IAugmentedShellFolder }, 79 { 0x0, &IID_IShellFolder }, 80 { 0x0, &IID_IUnknown }, 81 { 0x4, &IID_IShellService }, 82 { 0x8, &IID_ITranslateShellChangeNotify }, 83 } 84 }, 85 { 86 ID_NAME(CLSID_AugmentedShellFolder2), 87 { 88 { 0x0, &IID_IAugmentedShellFolder2 }, 89 { 0x0, &IID_IAugmentedShellFolder }, 90 { 0x0, &IID_IShellFolder }, 91 { 0x0, &IID_IUnknown }, 92 { 0x4, &IID_IShellFolder2 }, 93 { 0x8, &IID_IShellService }, 94 { 0xc, &IID_ITranslateShellChangeNotify }, 95 { 0x10, &IID_IDropTarget }, 96 } 97 }, 98 { 99 ID_NAME(CLSID_AutoComplete), 100 { 101 { 0x0, &IID_IAutoComplete2 }, 102 { 0x0, &IID_IAutoComplete }, 103 { 0x0, &IID_IUnknown }, 104 { 0x4, &IID_IAutoCompleteDropDown }, 105 { 0x8, &IID_IEnumString }, 106 { 0xc, &IID_IAccessible }, 107 { 0xc, &IID_IDispatch }, 108 } 109 }, 110 { 111 ID_NAME(CLSID_BackgroundTaskScheduler), 112 { 113 { 0x0, &IID_IShellTaskScheduler }, 114 { 0x0, &IID_IUnknown }, 115 } 116 }, 117 { 118 ID_NAME(CLSID_BandProxy), 119 { 120 { 0x0, &IID_IBandProxy }, 121 { 0x0, &IID_IUnknown }, 122 } 123 }, 124 { 125 ID_NAME(CLSID_BandSiteMenu), 126 { 127 { 0x0, &IID_IContextMenu3 }, 128 { 0x0, &IID_IContextMenu2 }, 129 { 0x0, &IID_IContextMenu }, 130 { 0x0, &IID_IUnknown }, 131 { 0x4, &IID_IShellService }, 132 } 133 }, 134 { 135 ID_NAME(CLSID_BrandBand), 136 { 137 { 0x0, &IID_IDeskBand }, 138 { 0x0, &IID_IDockingWindow }, 139 { 0x0, &IID_IOleWindow }, 140 { 0x0, &IID_IUnknown }, 141 { 0x4, &IID_IObjectWithSite }, 142 { 0xc, &IID_IInputObject }, 143 { 0x10, &IID_IPersistStream }, 144 { 0x10, &IID_IPersist }, 145 { 0x14, &IID_IOleCommandTarget }, 146 { 0x18, &IID_IServiceProvider }, 147 { 0x30, &IID_IWinEventHandler }, 148 { 0x34, &IID_IDispatch }, 149 } 150 }, 151 { 152 ID_NAME(CLSID_BrowserBand), 153 { 154 { -0x30, &IID_IDeskBand }, 155 { -0x30, &IID_IDockingWindow }, 156 { -0x30, &IID_IOleWindow }, 157 { -0x2c, &IID_IObjectWithSite }, 158 { -0x24, &IID_IInputObject }, 159 { -0x20, &IID_IPersistStream }, 160 { -0x20, &IID_IPersist }, 161 { -0x1c, &IID_IOleCommandTarget }, 162 { -0x18, &IID_IServiceProvider }, 163 { 0x0, &IID_IContextMenu }, 164 { 0x0, &IID_IUnknown }, 165 { 0x4, &IID_IWinEventHandler }, 166 { 0x8, &IID_IDispatch }, 167 { 0x10, &IID_IPersistPropertyBag }, 168 }, 169 }, 170 { 171 ID_NAME(CLSID_CCommonBrowser), 172 { 173 { 0x0, &IID_IUnknown }, 174 { 0xc, &IID_IShellBrowser }, 175 { 0xc, &IID_IOleWindow }, 176 { 0x10, &IID_IBrowserService3 }, 177 { 0x10, &IID_IBrowserService2 }, 178 { 0x10, &IID_IBrowserService }, 179 { 0x14, &IID_IServiceProvider }, 180 { 0x18, &IID_IOleCommandTarget }, 181 { 0x1c, &IID_IDockingWindowSite }, 182 { 0x20, &IID_IDockingWindowFrame }, 183 { 0x24, &IID_IInputObjectSite }, 184 { 0x28, &IID_IDropTarget }, 185 { 0x2c, &IID_IShellBrowserService }, 186 } 187 }, 188 { 189 ID_NAME(CLSID_CDockingBarPropertyBag), 190 { 191 { 0x0, &IID_IPropertyBag }, 192 { 0x0, &IID_IUnknown }, 193 }, 194 }, 195 { 196 ID_NAME(CLSID_CRegTreeOptions), 197 { 198 { 0x0, &IID_IRegTreeOptions }, 199 { 0x0, &IID_IUnknown }, 200 { 0x4, &IID_IObjectWithSite }, 201 } 202 }, 203 { 204 ID_NAME(CLSID_CommBand), 205 { 206 { -0x30, &IID_IDeskBand }, 207 { -0x30, &IID_IDockingWindow }, 208 { -0x30, &IID_IOleWindow }, 209 { -0x2c, &IID_IObjectWithSite }, 210 { -0x24, &IID_IInputObject }, 211 { -0x20, &IID_IPersistStream }, 212 { -0x20, &IID_IPersist }, 213 { -0x1c, &IID_IOleCommandTarget }, 214 { -0x18, &IID_IServiceProvider }, 215 { 0x0, &IID_IContextMenu }, 216 { 0x0, &IID_IUnknown }, 217 { 0x4, &IID_IWinEventHandler }, 218 { 0x8, &IID_IDispatch }, 219 { 0x10, &IID_IPersistPropertyBag }, 220 }, 221 }, 222 { 223 ID_NAME(CLSID_DeskBar), 224 { 225 { -0xb8, &IID_IOleCommandTarget }, 226 { -0xb4, &IID_IServiceProvider }, 227 { -0xb0, &IID_IDeskBar }, 228 { -0xb0, &IID_IOleWindow }, 229 { -0xac, &IID_IInputObjectSite }, 230 { -0xa8, &IID_IInputObject }, 231 { -0x70, &IID_IDockingWindow }, 232 { -0x6c, &IID_IObjectWithSite }, 233 { -0x68, &IID_IPersistStreamInit }, 234 { -0x68, &IID_IPersistStream }, 235 { -0x68, &IID_IPersist }, 236 { -0x64, &IID_IPersistPropertyBag }, 237 { 0x0, &IID_IUnknown }, 238 } 239 }, 240 { 241 ID_NAME(CLSID_DeskBarApp), 242 { 243 { -0xb8, &IID_IOleCommandTarget }, 244 { -0xb4, &IID_IServiceProvider }, 245 { -0xb0, &IID_IDeskBar }, 246 { -0xb0, &IID_IOleWindow }, 247 { -0xac, &IID_IInputObjectSite }, 248 { -0xa8, &IID_IInputObject }, 249 { -0x70, &IID_IDockingWindow }, 250 { -0x6c, &IID_IObjectWithSite }, 251 { -0x68, &IID_IPersistStreamInit }, 252 { -0x68, &IID_IPersistStream }, 253 { -0x68, &IID_IPersist }, 254 { -0x64, &IID_IPersistPropertyBag }, 255 { 0x0, &IID_IUnknown }, 256 { 0x8, &IID_IContextMenu3 }, 257 { 0x8, &IID_IContextMenu2 }, 258 { 0x8, &IID_IContextMenu }, 259 } 260 }, 261 { 262 ID_NAME(CLSID_GlobalFolderSettings), 263 { 264 { 0x0, &IID_IGlobalFolderSettings }, 265 { 0x0, &IID_IUnknown }, 266 }, 267 L"Both" 268 }, 269 { 270 ID_NAME(CLSID_ImageListCache), 271 { 272 { 0x0, &IID_IUnknown }, 273 }, 274 L"Both" 275 }, 276 { 277 ID_NAME(CLSID_ImgCtxThumbnailExtractor), 278 { 279 { 0x0, &IID_IExtractImage2 }, 280 { 0x0, &IID_IExtractImage }, 281 { 0x0, &IID_IUnknown }, 282 { 0x8, &IID_IPersistFile }, 283 }, 284 L"Both" 285 }, 286 { 287 ID_NAME(CLSID_InternetToolbar), 288 { 289 { -0x54, &IID_IOleCommandTarget }, 290 { -0x50, &IID_IServiceProvider }, 291 { -0x4c, &IID_IDeskBar }, 292 { -0x4c, &IID_IOleWindow }, 293 { -0x48, &IID_IInputObjectSite }, 294 { -0x44, &IID_IInputObject }, 295 { -0xc, &IID_IDockingWindow }, 296 { -0x8, &IID_IObjectWithSite }, 297 { -0x4, &IID_IExplorerToolbar }, 298 { 0x0, &DIID_DWebBrowserEvents }, 299 { 0x0, &IID_IDispatch }, 300 { 0x0, &IID_IUnknown }, 301 { 0x4, &IID_IPersistStreamInit }, 302 { 0x8, &IID_IShellChangeNotify }, 303 } 304 }, 305 { 306 ID_NAME(CLSID_ProgressDialog), 307 { 308 { 0x0, &IID_IProgressDialog }, 309 { 0x0, &IID_IUnknown }, 310 { 0x4, &IID_IOleWindow }, 311 { 0x8, &IID_IActionProgressDialog }, 312 { 0xc, &IID_IActionProgress }, 313 { 0x10, &IID_IObjectWithSite }, 314 }, 315 L"Both" 316 }, 317 { 318 ID_NAME(CLSID_RebarBandSite), 319 { 320 { 0x0, &IID_IUnknown }, 321 { 0xc, &IID_IBandSite }, 322 { 0x10, &IID_IInputObjectSite }, 323 { 0x14, &IID_IInputObject }, 324 { 0x18, &IID_IDeskBarClient }, 325 { 0x18, &IID_IOleWindow }, 326 { 0x1c, &IID_IWinEventHandler }, 327 { 0x20, &IID_IPersistStream }, 328 { 0x20, &IID_IPersist }, 329 { 0x24, &IID_IDropTarget }, 330 { 0x28, &IID_IServiceProvider }, 331 { 0x2c, &IID_IBandSiteHelper }, 332 { 0x30, &IID_IOleCommandTarget }, 333 } 334 }, 335 { 336 ID_NAME(CLSID_SH_AddressBand), 337 { 338 { 0x0, &IID_IDeskBand }, 339 { 0x0, &IID_IDockingWindow }, 340 { 0x0, &IID_IOleWindow }, 341 { 0x0, &IID_IUnknown }, 342 { 0x4, &IID_IObjectWithSite }, 343 { 0xc, &IID_IInputObject }, 344 { 0x10, &IID_IPersistStream }, 345 { 0x10, &IID_IPersist }, 346 { 0x14, &IID_IOleCommandTarget }, 347 { 0x18, &IID_IServiceProvider }, 348 { 0x30, &IID_IWinEventHandler }, 349 { 0x34, &IID_IAddressBand }, 350 { 0x38, &IID_IInputObjectSite }, 351 } 352 }, 353 { 354 ID_NAME(CLSID_SH_SearchBand), 355 { 356 { 0x0, &IID_IUnknown }, 357 { 0x74, &IID_IOleContainer }, 358 { 0x78, &IID_IOleInPlaceFrame }, 359 //{ 0x78, &IID_IOleInPlaceUIWindow }, 360 { 0x78, &IID_IOleWindow }, 361 { 0xb0, &IID_IDeskBand }, 362 { 0xb0, &IID_IDockingWindow }, 363 { 0xb4, &IID_IInputObject }, 364 { 0xb8, &IID_IObjectWithSite }, 365 { 0xbc, &IID_IContextMenu }, 366 { 0xc0, &IID_IServiceProvider }, 367 { 0xc8, &IID_ISearchBar }, 368 { 0xcc, &IID_IFileSearchBand }, 369 { 0xcc, &IID_IDispatch }, 370 { 0xd0, &IID_IBandNavigate }, 371 { 0xd8, &IID_IPersist }, 372 } 373 }, 374 { 375 ID_NAME(CLSID_SharedTaskScheduler), 376 { 377 { 0x0, &IID_IShellTaskScheduler }, 378 { 0x0, &IID_IUnknown }, 379 } 380 }, 381 { 382 ID_NAME(CLSID_ShellSearchExt), 383 { 384 { 0x0, &IID_IContextMenu }, 385 { 0x0, &IID_IUnknown }, 386 { 0x4, &IID_IObjectWithSite }, 387 } 388 }, 389 { 390 ID_NAME(CLSID_ShellTaskScheduler), 391 { 392 { 0x0, &IID_IShellTaskScheduler }, 393 { 0x0, &IID_IUnknown }, 394 }, 395 }, 396 { 397 ID_NAME(CLSID_UserAssist), 398 { 399 { 0x0, &IID_IUnknown }, 400 }, 401 L"Both" 402 }, 403 { 404 ID_NAME(CLSID_WebSearchExt), 405 { 406 { 0x0, &IID_IContextMenu }, 407 { 0x0, &IID_IUnknown }, 408 { 0x4, &IID_IObjectWithSite }, 409 }, 410 }, 411 }; 412 static const INT ExpectedInterfaceCount = RTL_NUMBER_OF(ExpectedInterfaces); 413 414 START_TEST(browseui) 415 { 416 TestClasses(L"browseui", ExpectedInterfaces, ExpectedInterfaceCount); 417 } 418