Files
reactos/modules/rostests/apitests/com/browseui.c
Carl J. Bialorucki 5f243e66b6 [COM_APITEST][INCLUDE/REACTOS][PSDK] Fix com tests for WS03, Vista+ (#8343)
[COM_APITEST]
- Add NTDDI version gating to classes and interfaces in tests
- Remove rigid offset tests. Instead, offsets to known interfaces can be logged by defining LOG_COM_INTERFACE_OFFSETS.
- Replace the noreg member of the known interfaces array with a function pointer that can be used to determine if a com test should be globally registered depending on the current NTDDI version. I could probably replace this with a min and max registered NTDDI value, but I thought this was confusing for interfaces that are never globally registered.

[INCLUDE/REACTOS]
- Rename the existing interface definition for IShellBrowserService to IShellBrowserService_XP at {1307EE17-EA83-49EB-96B2-3A28E2D7048A}. This only exists on XP and Server 2003, no earlier or later versions.
- Rename IID_IShellBrowserServce to IID_IShellBrowserService since this definition is correct for Windows 7+ at {DFBC7E30-F9E5-455F-88F8-FA98C1E494CA}
- Add an interface definition for IShellBrowserService4 at {F5A24314-5B8B-44FA-BC2E-31285544B520}. This definition for IShellBrowserService exists for Vista only and no other version.

[PSDK]
- Add a define for NTDDI_WIN7SP1. While this isn't defined in the public Windows headers, it clearly exists in private headers because it is referenced in the public WinBase.h header.
2025-09-29 08:33:38 -05:00

437 lines
21 KiB
C

/*
* PROJECT: ReactOS api tests
* LICENSE: GPLv2+ - See COPYING in the top level directory
* PURPOSE: COM interface test for browseui classes
* PROGRAMMER: Thomas Faber <thomas.faber@reactos.org>
* Carl Bialorucki <carl.bialorucki@reactos.org>
*/
#include "com_apitest.h"
#define NDEBUG
#include <debug.h>
static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
{
{
ID_NAME(CLSID_ACLCustomMRU, NTDDI_MIN, NTDDI_VISTASP4),
{
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IEnumString },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IACList },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IACLCustomMRU },
},
},
{
ID_NAME(CLSID_ACLHistory, NTDDI_MIN, NTDDI_VISTASP4),
{
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IEnumString },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
},
},
{
ID_NAME(CLSID_ACLMRU, NTDDI_MIN, NTDDI_VISTASP4),
{
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IEnumString },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IACList },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IACLCustomMRU },
},
},
{
ID_NAME(CLSID_ACLMulti, NTDDI_MIN, NTDDI_VISTASP4),
{
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IEnumString },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IObjMgr },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IACList },
}
},
{
ID_NAME(CLSID_ACListISF, NTDDI_MIN, NTDDI_VISTASP4),
{
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IShellService },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IEnumString },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IACList2 },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IACList },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_ICurrentWorkingDirectory },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IPersistFolder },
{ NTDDI_VISTA, NTDDI_VISTASP4, &IID_IPersistIDList },
}
},
{
ID_NAME(CLSID_AddressEditBox, NTDDI_MIN, NTDDI_WS03SP4),
{
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IWinEventHandler },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IUnknown },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IDispatch },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IAddressBand },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IAddressEditBox },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleCommandTarget },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IPersistStream },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IShellService },
}
},
{
ID_NAME(CLSID_AugmentedShellFolder, NTDDI_MIN, NTDDI_WS03SP4),
{
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IAugmentedShellFolder2 },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IAugmentedShellFolder },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IShellFolder },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IUnknown },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IShellService },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_ITranslateShellChangeNotify },
}
},
{
ID_NAME(CLSID_AugmentedShellFolder2, NTDDI_MIN, NTDDI_WS03SP4),
{
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IAugmentedShellFolder2 },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IAugmentedShellFolder },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IShellFolder },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IUnknown },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IShellFolder2 },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IShellService },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_ITranslateShellChangeNotify },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IDropTarget },
}
},
{
ID_NAME(CLSID_AutoComplete, NTDDI_MIN, NTDDI_VISTASP4),
{
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IAutoComplete2 },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IAutoComplete },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IAutoCompleteDropDown },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IEnumString },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IAccessible },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IDispatch },
{ NTDDI_VISTA, NTDDI_VISTASP4, &IID_IShellService },
}
},
{
ID_NAME(CLSID_BackgroundTaskScheduler, NTDDI_MIN, NTDDI_VISTASP4),
{
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IShellTaskScheduler },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
}
},
{
ID_NAME(CLSID_BandProxy, NTDDI_MIN, NTDDI_VISTASP4),
{
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IBandProxy },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
}
},
{
ID_NAME(CLSID_BandSiteMenu, NTDDI_MIN, NTDDI_VISTASP4),
{
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IContextMenu3 },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IContextMenu2 },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IContextMenu },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IShellService },
}
},
{
ID_NAME(CLSID_BrandBand, NTDDI_MIN, NTDDI_WS03SP4),
{
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IDeskBand },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IDockingWindow },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleWindow },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IUnknown },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IObjectWithSite },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IInputObject },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IPersistStream },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IPersist },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleCommandTarget },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IServiceProvider },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IWinEventHandler },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IDispatch },
}
},
{
ID_NAME(CLSID_BrowserBand, NTDDI_MIN, NTDDI_VISTASP4),
{
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IDeskBand },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IDockingWindow },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IOleWindow },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IObjectWithSite },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IInputObject },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IPersistStream },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IPersist },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IOleCommandTarget },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IServiceProvider },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IContextMenu },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IWinEventHandler },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IDispatch },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IPersistPropertyBag },
},
},
{
ID_NAME(CLSID_CCommonBrowser, NTDDI_MIN, NTDDI_WS03SP4),
{
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IUnknown },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IShellBrowser },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleWindow },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IBrowserService3 },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IBrowserService2 },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IBrowserService },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IServiceProvider },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleCommandTarget },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IDockingWindowSite },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IDockingWindowFrame },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IInputObjectSite },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IDropTarget },
}
},
{
ID_NAME(CLSID_CDockingBarPropertyBag, NTDDI_MIN, NTDDI_VISTASP4),
{
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IPropertyBag },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
},
},
{
ID_NAME(CLSID_CRegTreeOptions, NTDDI_MIN, NTDDI_VISTASP4),
{
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IRegTreeOptions },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IObjectWithSite },
}
},
{
ID_NAME(CLSID_CommBand, NTDDI_MIN, NTDDI_VISTASP4),
{
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IWinEventHandler },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IDeskBand },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IDockingWindow },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IOleWindow },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IObjectWithSite },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IInputObject },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IPersistStream },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IPersist },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IOleCommandTarget },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IServiceProvider },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IContextMenu },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IDispatch },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IPersistPropertyBag },
},
},
{
ID_NAME(CLSID_DeskBar, NTDDI_MIN, NTDDI_WS03SP4),
{
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleCommandTarget },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IServiceProvider },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IDeskBar },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleWindow },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IInputObjectSite },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IInputObject },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IDockingWindow },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IObjectWithSite },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IPersistStreamInit },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IPersistStream },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IPersist },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IPersistPropertyBag },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IUnknown },
}
},
{
ID_NAME(CLSID_DeskBarApp, NTDDI_MIN, NTDDI_VISTASP4),
{
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IOleCommandTarget },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IServiceProvider },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IDeskBar },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IOleWindow },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IInputObjectSite },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IInputObject },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IDockingWindow },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IObjectWithSite },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IPersistStreamInit },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IPersistStream },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IPersist },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IPersistPropertyBag },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IContextMenu3 },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IContextMenu2 },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IContextMenu },
}
},
{
ID_NAME(CLSID_GlobalFolderSettings, NTDDI_MIN, NTDDI_VISTASP4),
{
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IGlobalFolderSettings },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
},
L"Both"
},
{
ID_NAME(CLSID_ImageListCache, NTDDI_MIN, NTDDI_WS03SP4),
{
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IUnknown },
},
L"Both"
},
{
ID_NAME(CLSID_ImgCtxThumbnailExtractor, NTDDI_MIN, NTDDI_WS03SP4),
{
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IExtractImage2 },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IExtractImage },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IUnknown },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IPersistFile },
},
L"Both"
},
{
ID_NAME(CLSID_InternetToolbar, NTDDI_MIN, NTDDI_VISTASP4),
{
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IExplorerToolbar },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IShellChangeNotify },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IDispatch },
{ NTDDI_MIN, NTDDI_VISTASP4, &DIID_DWebBrowserEvents },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IOleCommandTarget },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IServiceProvider },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IDeskBar },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IOleWindow },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IInputObjectSite },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IInputObject },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IDockingWindow },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IObjectWithSite },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IPersistStreamInit },
{ NTDDI_VISTA, NTDDI_VISTASP4, &IID_IBandHost },
}
},
{
ID_NAME(CLSID_ProgressDialog, NTDDI_MIN, NTDDI_WS03SP4),
{
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IProgressDialog },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IUnknown },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleWindow },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IActionProgressDialog },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IActionProgress },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IObjectWithSite },
},
L"Both"
},
{
ID_NAME(CLSID_RebarBandSite, NTDDI_MIN, NTDDI_VISTASP4),
{
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IBandSite },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IInputObjectSite },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IInputObject },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IDeskBarClient },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IOleWindow },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IWinEventHandler },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IPersistStream },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IPersist },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IDropTarget },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IServiceProvider },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IBandSiteHelper },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IOleCommandTarget },
}
},
{
ID_NAME(CLSID_SH_AddressBand, NTDDI_MIN, NTDDI_VISTASP4),
{
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IAddressBand },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IDeskBand },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IDockingWindow },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IOleWindow },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IObjectWithSite },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IInputObject },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IPersistStream },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IPersist },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IOleCommandTarget },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IServiceProvider },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IWinEventHandler },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IInputObjectSite },
{ NTDDI_VISTA, NTDDI_VISTASP4, &IID_IShellChangeNotify },
}
},
{
ID_NAME(CLSID_SH_SearchBand, NTDDI_MIN, NTDDI_VISTASP4),
{
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleContainer },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleInPlaceFrame },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_ISearchBar },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IFileSearchBand },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IOleWindow },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IDeskBand },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IDockingWindow },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IInputObject },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IObjectWithSite },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IContextMenu },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IServiceProvider },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IDispatch },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IBandNavigate },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IPersist },
{ NTDDI_VISTA, NTDDI_VISTASP4, &IID_IOleCommandTarget },
{ NTDDI_VISTA, NTDDI_VISTASP4, &IID_IPersistPropertyBag },
{ NTDDI_VISTA, NTDDI_VISTASP4, &IID_IPersistStream },
{ NTDDI_VISTA, NTDDI_VISTASP4, &IID_IWinEventHandler },
}
},
{
ID_NAME(CLSID_SharedTaskScheduler, NTDDI_MIN, NTDDI_VISTASP4),
{
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IShellTaskScheduler },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
}
},
{
ID_NAME(CLSID_ShellSearchExt, NTDDI_MIN, NTDDI_VISTASP4),
{
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IContextMenu },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IObjectWithSite },
}
},
{
ID_NAME(CLSID_ShellTaskScheduler, NTDDI_MIN, NTDDI_VISTASP4),
{
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IShellTaskScheduler },
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
},
},
{
ID_NAME(CLSID_UserAssist, NTDDI_MIN, NTDDI_VISTASP4),
{
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
},
L"Both"
},
{
ID_NAME(CLSID_WebSearchExt, NTDDI_MIN, NTDDI_WS03SP4),
{
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IContextMenu },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IUnknown },
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IObjectWithSite },
},
},
};
START_TEST(browseui)
{
TestClassesEx(L"browseui",
ExpectedInterfaces, RTL_NUMBER_OF(ExpectedInterfaces),
NTDDI_MIN, NTDDI_VISTASP4,
FALSE);
}