mirror of
https://github.com/reactos/reactos
synced 2025-10-05 16:02:58 +02:00
[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.
This commit is contained in:
committed by
GitHub
parent
98a8996954
commit
5f243e66b6
@@ -5,12 +5,16 @@ list(APPEND SOURCE
|
||||
browseui.c
|
||||
certmgr.c
|
||||
com_apitest.c
|
||||
combase.c
|
||||
explorerframe.c
|
||||
ieframe.c
|
||||
netcfgx.c
|
||||
netshell.c
|
||||
ole32.c
|
||||
prnfldr.c
|
||||
shdocvw.c
|
||||
shell32.c
|
||||
windows_storage.c
|
||||
zipfldr.c)
|
||||
|
||||
list(APPEND PCH_SKIP_SOURCE
|
||||
|
@@ -3,6 +3,7 @@
|
||||
* 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"
|
||||
@@ -13,405 +14,423 @@
|
||||
static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
|
||||
{
|
||||
{
|
||||
ID_NAME(CLSID_ACLCustomMRU),
|
||||
ID_NAME(CLSID_ACLCustomMRU, NTDDI_MIN, NTDDI_VISTASP4),
|
||||
{
|
||||
{ 0x0, &IID_IEnumString },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_IACList },
|
||||
{ 0x8, &IID_IACLCustomMRU },
|
||||
{ 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),
|
||||
ID_NAME(CLSID_ACLHistory, NTDDI_MIN, NTDDI_VISTASP4),
|
||||
{
|
||||
{ 0x0, &IID_IEnumString },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IEnumString },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
|
||||
},
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_ACLMRU),
|
||||
ID_NAME(CLSID_ACLMRU, NTDDI_MIN, NTDDI_VISTASP4),
|
||||
{
|
||||
{ 0x0, &IID_IEnumString },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_IACList },
|
||||
{ 0x8, &IID_IACLCustomMRU },
|
||||
{ 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),
|
||||
ID_NAME(CLSID_ACLMulti, NTDDI_MIN, NTDDI_VISTASP4),
|
||||
{
|
||||
{ 0x0, &IID_IEnumString },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_IObjMgr },
|
||||
{ 0x8, &IID_IACList },
|
||||
{ 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),
|
||||
ID_NAME(CLSID_ACListISF, NTDDI_MIN, NTDDI_VISTASP4),
|
||||
{
|
||||
{ 0x0, &IID_IEnumString },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_IACList2 },
|
||||
{ 0x4, &IID_IACList },
|
||||
{ 0x8, &IID_ICurrentWorkingDirectory },
|
||||
{ 0xc, &IID_IShellService },
|
||||
{ 0x10, &IID_IPersistFolder },
|
||||
{ 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),
|
||||
ID_NAME(CLSID_AddressEditBox, NTDDI_MIN, NTDDI_WS03SP4),
|
||||
{
|
||||
{ 0x0, &IID_IWinEventHandler },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_IDispatch },
|
||||
{ 0x8, &IID_IAddressBand },
|
||||
{ 0xc, &IID_IAddressEditBox },
|
||||
{ 0x10, &IID_IOleCommandTarget },
|
||||
{ 0x14, &IID_IPersistStream },
|
||||
{ 0x18, &IID_IShellService },
|
||||
{ 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),
|
||||
ID_NAME(CLSID_AugmentedShellFolder, NTDDI_MIN, NTDDI_WS03SP4),
|
||||
{
|
||||
{ 0x0, &IID_IAugmentedShellFolder2 },
|
||||
{ 0x0, &IID_IAugmentedShellFolder },
|
||||
{ 0x0, &IID_IShellFolder },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_IShellService },
|
||||
{ 0x8, &IID_ITranslateShellChangeNotify },
|
||||
{ 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),
|
||||
ID_NAME(CLSID_AugmentedShellFolder2, NTDDI_MIN, NTDDI_WS03SP4),
|
||||
{
|
||||
{ 0x0, &IID_IAugmentedShellFolder2 },
|
||||
{ 0x0, &IID_IAugmentedShellFolder },
|
||||
{ 0x0, &IID_IShellFolder },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_IShellFolder2 },
|
||||
{ 0x8, &IID_IShellService },
|
||||
{ 0xc, &IID_ITranslateShellChangeNotify },
|
||||
{ 0x10, &IID_IDropTarget },
|
||||
{ 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),
|
||||
ID_NAME(CLSID_AutoComplete, NTDDI_MIN, NTDDI_VISTASP4),
|
||||
{
|
||||
{ 0x0, &IID_IAutoComplete2 },
|
||||
{ 0x0, &IID_IAutoComplete },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_IAutoCompleteDropDown },
|
||||
{ 0x8, &IID_IEnumString },
|
||||
{ 0xc, &IID_IAccessible },
|
||||
{ 0xc, &IID_IDispatch },
|
||||
{ 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),
|
||||
ID_NAME(CLSID_BackgroundTaskScheduler, NTDDI_MIN, NTDDI_VISTASP4),
|
||||
{
|
||||
{ 0x0, &IID_IShellTaskScheduler },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IShellTaskScheduler },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_BandProxy),
|
||||
ID_NAME(CLSID_BandProxy, NTDDI_MIN, NTDDI_VISTASP4),
|
||||
{
|
||||
{ 0x0, &IID_IBandProxy },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IBandProxy },
|
||||
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_BandSiteMenu),
|
||||
ID_NAME(CLSID_BandSiteMenu, NTDDI_MIN, NTDDI_VISTASP4),
|
||||
{
|
||||
{ 0x0, &IID_IContextMenu3 },
|
||||
{ 0x0, &IID_IContextMenu2 },
|
||||
{ 0x0, &IID_IContextMenu },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_IShellService },
|
||||
{ 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),
|
||||
ID_NAME(CLSID_BrandBand, NTDDI_MIN, NTDDI_WS03SP4),
|
||||
{
|
||||
{ 0x0, &IID_IDeskBand },
|
||||
{ 0x0, &IID_IDockingWindow },
|
||||
{ 0x0, &IID_IOleWindow },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_IObjectWithSite },
|
||||
{ 0xc, &IID_IInputObject },
|
||||
{ 0x10, &IID_IPersistStream },
|
||||
{ 0x10, &IID_IPersist },
|
||||
{ 0x14, &IID_IOleCommandTarget },
|
||||
{ 0x18, &IID_IServiceProvider },
|
||||
{ 0x30, &IID_IWinEventHandler },
|
||||
{ 0x34, &IID_IDispatch },
|
||||
{ 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),
|
||||
ID_NAME(CLSID_BrowserBand, NTDDI_MIN, NTDDI_VISTASP4),
|
||||
{
|
||||
{ -0x30, &IID_IDeskBand },
|
||||
{ -0x30, &IID_IDockingWindow },
|
||||
{ -0x30, &IID_IOleWindow },
|
||||
{ -0x2c, &IID_IObjectWithSite },
|
||||
{ -0x24, &IID_IInputObject },
|
||||
{ -0x20, &IID_IPersistStream },
|
||||
{ -0x20, &IID_IPersist },
|
||||
{ -0x1c, &IID_IOleCommandTarget },
|
||||
{ -0x18, &IID_IServiceProvider },
|
||||
{ 0x0, &IID_IContextMenu },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_IWinEventHandler },
|
||||
{ 0x8, &IID_IDispatch },
|
||||
{ 0x10, &IID_IPersistPropertyBag },
|
||||
{ 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),
|
||||
ID_NAME(CLSID_CCommonBrowser, NTDDI_MIN, NTDDI_WS03SP4),
|
||||
{
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0xc, &IID_IShellBrowser },
|
||||
{ 0xc, &IID_IOleWindow },
|
||||
{ 0x10, &IID_IBrowserService3 },
|
||||
{ 0x10, &IID_IBrowserService2 },
|
||||
{ 0x10, &IID_IBrowserService },
|
||||
{ 0x14, &IID_IServiceProvider },
|
||||
{ 0x18, &IID_IOleCommandTarget },
|
||||
{ 0x1c, &IID_IDockingWindowSite },
|
||||
{ 0x20, &IID_IDockingWindowFrame },
|
||||
{ 0x24, &IID_IInputObjectSite },
|
||||
{ 0x28, &IID_IDropTarget },
|
||||
{ 0x2c, &IID_IShellBrowserService },
|
||||
{ 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),
|
||||
ID_NAME(CLSID_CDockingBarPropertyBag, NTDDI_MIN, NTDDI_VISTASP4),
|
||||
{
|
||||
{ 0x0, &IID_IPropertyBag },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IPropertyBag },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
|
||||
},
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_CRegTreeOptions),
|
||||
ID_NAME(CLSID_CRegTreeOptions, NTDDI_MIN, NTDDI_VISTASP4),
|
||||
{
|
||||
{ 0x0, &IID_IRegTreeOptions },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_IObjectWithSite },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IRegTreeOptions },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IObjectWithSite },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_CommBand),
|
||||
ID_NAME(CLSID_CommBand, NTDDI_MIN, NTDDI_VISTASP4),
|
||||
{
|
||||
{ -0x30, &IID_IDeskBand },
|
||||
{ -0x30, &IID_IDockingWindow },
|
||||
{ -0x30, &IID_IOleWindow },
|
||||
{ -0x2c, &IID_IObjectWithSite },
|
||||
{ -0x24, &IID_IInputObject },
|
||||
{ -0x20, &IID_IPersistStream },
|
||||
{ -0x20, &IID_IPersist },
|
||||
{ -0x1c, &IID_IOleCommandTarget },
|
||||
{ -0x18, &IID_IServiceProvider },
|
||||
{ 0x0, &IID_IContextMenu },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_IWinEventHandler },
|
||||
{ 0x8, &IID_IDispatch },
|
||||
{ 0x10, &IID_IPersistPropertyBag },
|
||||
{ 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),
|
||||
ID_NAME(CLSID_DeskBar, NTDDI_MIN, NTDDI_WS03SP4),
|
||||
{
|
||||
{ -0xb8, &IID_IOleCommandTarget },
|
||||
{ -0xb4, &IID_IServiceProvider },
|
||||
{ -0xb0, &IID_IDeskBar },
|
||||
{ -0xb0, &IID_IOleWindow },
|
||||
{ -0xac, &IID_IInputObjectSite },
|
||||
{ -0xa8, &IID_IInputObject },
|
||||
{ -0x70, &IID_IDockingWindow },
|
||||
{ -0x6c, &IID_IObjectWithSite },
|
||||
{ -0x68, &IID_IPersistStreamInit },
|
||||
{ -0x68, &IID_IPersistStream },
|
||||
{ -0x68, &IID_IPersist },
|
||||
{ -0x64, &IID_IPersistPropertyBag },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 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),
|
||||
ID_NAME(CLSID_DeskBarApp, NTDDI_MIN, NTDDI_VISTASP4),
|
||||
{
|
||||
{ -0xb8, &IID_IOleCommandTarget },
|
||||
{ -0xb4, &IID_IServiceProvider },
|
||||
{ -0xb0, &IID_IDeskBar },
|
||||
{ -0xb0, &IID_IOleWindow },
|
||||
{ -0xac, &IID_IInputObjectSite },
|
||||
{ -0xa8, &IID_IInputObject },
|
||||
{ -0x70, &IID_IDockingWindow },
|
||||
{ -0x6c, &IID_IObjectWithSite },
|
||||
{ -0x68, &IID_IPersistStreamInit },
|
||||
{ -0x68, &IID_IPersistStream },
|
||||
{ -0x68, &IID_IPersist },
|
||||
{ -0x64, &IID_IPersistPropertyBag },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x8, &IID_IContextMenu3 },
|
||||
{ 0x8, &IID_IContextMenu2 },
|
||||
{ 0x8, &IID_IContextMenu },
|
||||
{ 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),
|
||||
ID_NAME(CLSID_GlobalFolderSettings, NTDDI_MIN, NTDDI_VISTASP4),
|
||||
{
|
||||
{ 0x0, &IID_IGlobalFolderSettings },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IGlobalFolderSettings },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
|
||||
},
|
||||
L"Both"
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_ImageListCache),
|
||||
ID_NAME(CLSID_ImageListCache, NTDDI_MIN, NTDDI_WS03SP4),
|
||||
{
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IUnknown },
|
||||
},
|
||||
L"Both"
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_ImgCtxThumbnailExtractor),
|
||||
ID_NAME(CLSID_ImgCtxThumbnailExtractor, NTDDI_MIN, NTDDI_WS03SP4),
|
||||
{
|
||||
{ 0x0, &IID_IExtractImage2 },
|
||||
{ 0x0, &IID_IExtractImage },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x8, &IID_IPersistFile },
|
||||
{ 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),
|
||||
ID_NAME(CLSID_InternetToolbar, NTDDI_MIN, NTDDI_VISTASP4),
|
||||
{
|
||||
{ -0x54, &IID_IOleCommandTarget },
|
||||
{ -0x50, &IID_IServiceProvider },
|
||||
{ -0x4c, &IID_IDeskBar },
|
||||
{ -0x4c, &IID_IOleWindow },
|
||||
{ -0x48, &IID_IInputObjectSite },
|
||||
{ -0x44, &IID_IInputObject },
|
||||
{ -0xc, &IID_IDockingWindow },
|
||||
{ -0x8, &IID_IObjectWithSite },
|
||||
{ -0x4, &IID_IExplorerToolbar },
|
||||
{ 0x0, &DIID_DWebBrowserEvents },
|
||||
{ 0x0, &IID_IDispatch },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_IPersistStreamInit },
|
||||
{ 0x8, &IID_IShellChangeNotify },
|
||||
{ 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),
|
||||
ID_NAME(CLSID_ProgressDialog, NTDDI_MIN, NTDDI_WS03SP4),
|
||||
{
|
||||
{ 0x0, &IID_IProgressDialog },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_IOleWindow },
|
||||
{ 0x8, &IID_IActionProgressDialog },
|
||||
{ 0xc, &IID_IActionProgress },
|
||||
{ 0x10, &IID_IObjectWithSite },
|
||||
{ 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),
|
||||
ID_NAME(CLSID_RebarBandSite, NTDDI_MIN, NTDDI_VISTASP4),
|
||||
{
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0xc, &IID_IBandSite },
|
||||
{ 0x10, &IID_IInputObjectSite },
|
||||
{ 0x14, &IID_IInputObject },
|
||||
{ 0x18, &IID_IDeskBarClient },
|
||||
{ 0x18, &IID_IOleWindow },
|
||||
{ 0x1c, &IID_IWinEventHandler },
|
||||
{ 0x20, &IID_IPersistStream },
|
||||
{ 0x20, &IID_IPersist },
|
||||
{ 0x24, &IID_IDropTarget },
|
||||
{ 0x28, &IID_IServiceProvider },
|
||||
{ 0x2c, &IID_IBandSiteHelper },
|
||||
{ 0x30, &IID_IOleCommandTarget },
|
||||
{ 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),
|
||||
ID_NAME(CLSID_SH_AddressBand, NTDDI_MIN, NTDDI_VISTASP4),
|
||||
{
|
||||
{ 0x0, &IID_IDeskBand },
|
||||
{ 0x0, &IID_IDockingWindow },
|
||||
{ 0x0, &IID_IOleWindow },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_IObjectWithSite },
|
||||
{ 0xc, &IID_IInputObject },
|
||||
{ 0x10, &IID_IPersistStream },
|
||||
{ 0x10, &IID_IPersist },
|
||||
{ 0x14, &IID_IOleCommandTarget },
|
||||
{ 0x18, &IID_IServiceProvider },
|
||||
{ 0x30, &IID_IWinEventHandler },
|
||||
{ 0x34, &IID_IAddressBand },
|
||||
{ 0x38, &IID_IInputObjectSite },
|
||||
{ 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),
|
||||
ID_NAME(CLSID_SH_SearchBand, NTDDI_MIN, NTDDI_VISTASP4),
|
||||
{
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x74, &IID_IOleContainer },
|
||||
{ 0x78, &IID_IOleInPlaceFrame },
|
||||
//{ 0x78, &IID_IOleInPlaceUIWindow },
|
||||
{ 0x78, &IID_IOleWindow },
|
||||
{ 0xb0, &IID_IDeskBand },
|
||||
{ 0xb0, &IID_IDockingWindow },
|
||||
{ 0xb4, &IID_IInputObject },
|
||||
{ 0xb8, &IID_IObjectWithSite },
|
||||
{ 0xbc, &IID_IContextMenu },
|
||||
{ 0xc0, &IID_IServiceProvider },
|
||||
{ 0xc8, &IID_ISearchBar },
|
||||
{ 0xcc, &IID_IFileSearchBand },
|
||||
{ 0xcc, &IID_IDispatch },
|
||||
{ 0xd0, &IID_IBandNavigate },
|
||||
{ 0xd8, &IID_IPersist },
|
||||
{ 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),
|
||||
ID_NAME(CLSID_SharedTaskScheduler, NTDDI_MIN, NTDDI_VISTASP4),
|
||||
{
|
||||
{ 0x0, &IID_IShellTaskScheduler },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IShellTaskScheduler },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_ShellSearchExt),
|
||||
ID_NAME(CLSID_ShellSearchExt, NTDDI_MIN, NTDDI_VISTASP4),
|
||||
{
|
||||
{ 0x0, &IID_IContextMenu },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_IObjectWithSite },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IContextMenu },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IObjectWithSite },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_ShellTaskScheduler),
|
||||
ID_NAME(CLSID_ShellTaskScheduler, NTDDI_MIN, NTDDI_VISTASP4),
|
||||
{
|
||||
{ 0x0, &IID_IShellTaskScheduler },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IShellTaskScheduler },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
|
||||
},
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_UserAssist),
|
||||
ID_NAME(CLSID_UserAssist, NTDDI_MIN, NTDDI_VISTASP4),
|
||||
{
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
|
||||
},
|
||||
L"Both"
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_WebSearchExt),
|
||||
ID_NAME(CLSID_WebSearchExt, NTDDI_MIN, NTDDI_WS03SP4),
|
||||
{
|
||||
{ 0x0, &IID_IContextMenu },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_IObjectWithSite },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IContextMenu },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IObjectWithSite },
|
||||
},
|
||||
},
|
||||
};
|
||||
static const INT ExpectedInterfaceCount = RTL_NUMBER_OF(ExpectedInterfaces);
|
||||
|
||||
START_TEST(browseui)
|
||||
{
|
||||
TestClasses(L"browseui", ExpectedInterfaces, ExpectedInterfaceCount);
|
||||
TestClassesEx(L"browseui",
|
||||
ExpectedInterfaces, RTL_NUMBER_OF(ExpectedInterfaces),
|
||||
NTDDI_MIN, NTDDI_VISTASP4,
|
||||
FALSE);
|
||||
}
|
||||
|
@@ -13,27 +13,26 @@
|
||||
static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
|
||||
{
|
||||
{
|
||||
ID_NAME(CLSID_CERTMGR_CertMgrAboutObject_1),
|
||||
ID_NAME(CLSID_CERTMGR_CertMgrAboutObject_1, NTDDI_MIN, NTDDI_MAX),
|
||||
{
|
||||
{ 0x0, &IID_ISnapInAbout },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_ISnapInAbout },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
||||
},
|
||||
L"both"
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_CERTMGR_CertMgrObject_1),
|
||||
ID_NAME(CLSID_CERTMGR_CertMgrObject_1, NTDDI_MIN, NTDDI_MAX),
|
||||
{
|
||||
{ -0x1c, &IID_IComponentData },
|
||||
{ 0x0, &IID_IExtendPropertySheet },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_IPersistStream },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IComponentData },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IExtendPropertySheet },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersistStream },
|
||||
},
|
||||
L"both"
|
||||
},
|
||||
};
|
||||
static const INT ExpectedInterfaceCount = RTL_NUMBER_OF(ExpectedInterfaces);
|
||||
|
||||
START_TEST(certmgr)
|
||||
{
|
||||
TestClasses(L"certmgr", ExpectedInterfaces, ExpectedInterfaceCount);
|
||||
TestClasses(L"certmgr", ExpectedInterfaces, RTL_NUMBER_OF(ExpectedInterfaces));
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -8,14 +8,6 @@
|
||||
#ifndef _COM_APITEST_H_
|
||||
#define _COM_APITEST_H_
|
||||
|
||||
/* Define this if you're adding new classes - the test will auto-generate the
|
||||
* interface table entries for you ;) */
|
||||
//#define GENERATE_TABLE_ENTRIES
|
||||
|
||||
/* Define this to make wrong interface offsets count as test failures...
|
||||
* we usually don't want to be that strict */
|
||||
//#define FAIL_WRONG_OFFSET
|
||||
|
||||
#define WIN32_NO_STATUS
|
||||
#define _INC_WINDOWS
|
||||
#define COM_NO_WINDOWS_H
|
||||
@@ -41,23 +33,30 @@
|
||||
#include <htiface.h>
|
||||
#include <mshtml.h>
|
||||
#include <initguid.h>
|
||||
#include <apitest.h>
|
||||
|
||||
typedef IUnknown *PUNKNOWN;
|
||||
|
||||
/* Uncomment this if you want to log the offsets of COM interfaces. */
|
||||
// #define LOG_COM_INTERFACE_OFFSETS
|
||||
|
||||
typedef struct _CLASS_AND_INTERFACES
|
||||
{
|
||||
const CLSID *clsid;
|
||||
PCSTR name;
|
||||
ULONG MinClassNTDDIVersion;
|
||||
ULONG MaxClassNTDDIVersion;
|
||||
struct
|
||||
{
|
||||
LONG offset;
|
||||
ULONG MinInterfaceNTDDIVersion;
|
||||
ULONG MaxInterfaceNTDDIVersion;
|
||||
const IID *iid;
|
||||
} ifaces[80];
|
||||
PCWSTR ThreadingModel;
|
||||
} CLASS_AND_INTERFACES;
|
||||
typedef const CLASS_AND_INTERFACES *PCCLASS_AND_INTERFACES;
|
||||
|
||||
#define ID_NAME(c) &c, #c
|
||||
#define ID_NAME(c, minc, maxc) &c, #c, minc, maxc
|
||||
|
||||
VOID
|
||||
TestClasses(
|
||||
@@ -65,9 +64,14 @@ TestClasses(
|
||||
_In_ PCCLASS_AND_INTERFACES ExpectedInterfaces,
|
||||
_In_ INT ExpectedInterfaceCount);
|
||||
|
||||
/* Indicate that the interface is implemented in another (probably aggregate) object,
|
||||
* so its offset varies and is "far away" */
|
||||
#define FARAWY (-65535)
|
||||
VOID
|
||||
TestClassesEx(
|
||||
_In_ PCWSTR ModuleName,
|
||||
_In_ PCCLASS_AND_INTERFACES ExpectedInterfaces,
|
||||
_In_ INT ExpectedInterfaceCount,
|
||||
_In_ ULONG MinimumNTDDIVersion,
|
||||
_In_ ULONG MaximumNTDDIVersion,
|
||||
_In_ BOOLEAN IsWinRT);
|
||||
|
||||
// TODO: fix our headers... we really shouldn't need these here
|
||||
DEFINE_GUID(CLSID_AugmentedShellFolder, 0x91ea3f8b, 0xc99b, 0x11d0, 0x98, 0x15, 0x00, 0xc0, 0x4f, 0xd9, 0x19, 0x72);
|
||||
@@ -219,7 +223,7 @@ DEFINE_GUID(IID_IImageList_mmc, 0x43136eb8, 0xd36c, 0x11cf, 0xad, 0xb
|
||||
DEFINE_GUID(IID_IConsoleVerb, 0xe49f7a60, 0x74af, 0x11d0, 0xa2, 0x86, 0x00, 0xc0, 0x4f, 0xd8, 0xfe, 0x93);
|
||||
DEFINE_GUID(IID_ISnapInAbout, 0x1245208c, 0xa151, 0x11d0, 0xa7, 0xd7, 0x00, 0xc0, 0x4f, 0xd9, 0x09, 0xdd);
|
||||
|
||||
|
||||
DEFINE_GUID(IID_INetConnectionCommonUi2, 0xC08956A6, 0x1CD3, 0x11D1, 0xB1, 0xC5, 0x00, 0x80, 0x5F, 0xC1, 0x27, 0x0E); // Same as IID_INetLanConnectionUiInfo
|
||||
|
||||
#endif /* _COM_APITEST_H_ */
|
||||
|
||||
|
32
modules/rostests/apitests/com/combase.c
Normal file
32
modules/rostests/apitests/com/combase.c
Normal file
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
* PROJECT: ReactOS API Tests
|
||||
* LICENSE: MIT (https://spdx.org/licenses/MIT)
|
||||
* PURPOSE: COM interface test for prnfldr server
|
||||
* COPYRIGHT: Copyright 2025 Carl Bialorucki <carl.bialorucki@reactos.org>
|
||||
*/
|
||||
|
||||
#include "com_apitest.h"
|
||||
|
||||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
||||
static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
|
||||
{
|
||||
{
|
||||
ID_NAME(CLSID_StdComponentCategoriesMgr, NTDDI_WIN8, NTDDI_MAX),
|
||||
{
|
||||
{ NTDDI_WIN8, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_WIN8, NTDDI_MAX, &IID_ICatRegister },
|
||||
{ NTDDI_WIN8, NTDDI_MAX, &IID_ICatInformation },
|
||||
},
|
||||
L"Both"
|
||||
},
|
||||
};
|
||||
|
||||
START_TEST(combase)
|
||||
{
|
||||
TestClassesEx(L"combase",
|
||||
ExpectedInterfaces, RTL_NUMBER_OF(ExpectedInterfaces),
|
||||
NTDDI_WIN8, NTDDI_MAX,
|
||||
FALSE);
|
||||
}
|
131
modules/rostests/apitests/com/explorerframe.c
Normal file
131
modules/rostests/apitests/com/explorerframe.c
Normal file
@@ -0,0 +1,131 @@
|
||||
/*
|
||||
* PROJECT: ReactOS API Tests
|
||||
* LICENSE: MIT (https://spdx.org/licenses/MIT)
|
||||
* PURPOSE: COM interface test for explorerframe server
|
||||
* COPYRIGHT: Copyright 2025 Carl Bialorucki <carl.bialorucki@reactos.org>
|
||||
*/
|
||||
|
||||
#include "com_apitest.h"
|
||||
|
||||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
||||
static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
|
||||
{
|
||||
{
|
||||
ID_NAME(CLSID_BandSiteMenu, NTDDI_WIN7, NTDDI_MAX),
|
||||
{
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IContextMenu3 },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IContextMenu2 },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IContextMenu },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IShellService },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_CDockingBarPropertyBag, NTDDI_WIN7, NTDDI_MAX),
|
||||
{
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IPropertyBag },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IUnknown },
|
||||
},
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_DeskBarApp, NTDDI_WIN7, NTDDI_MAX),
|
||||
{
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IOleCommandTarget },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IServiceProvider },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IDeskBar },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IOleWindow },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IInputObjectSite },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IInputObject },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IDockingWindow },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IObjectWithSite },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IPersistStreamInit },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IPersistStream },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IPersist },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IPersistPropertyBag },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IContextMenu3 },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IContextMenu2 },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IContextMenu },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_GlobalFolderSettings, NTDDI_WIN7, NTDDI_MAX),
|
||||
{
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IGlobalFolderSettings },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IUnknown },
|
||||
},
|
||||
L"Both"
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_InternetToolbar, NTDDI_WIN7, NTDDI_MAX),
|
||||
{
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IOleCommandTarget },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IServiceProvider },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IDeskBar },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IOleWindow },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IInputObjectSite },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IInputObject },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IDockingWindow },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IObjectWithSite },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IPersistStreamInit },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IBandHost },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_RebarBandSite, NTDDI_WIN7, NTDDI_MAX),
|
||||
{
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IBandSite },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IInputObjectSite },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IInputObject },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IDeskBarClient },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IOleWindow },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IWinEventHandler },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IPersistStream },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IPersist },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IDropTarget },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IServiceProvider },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IBandSiteHelper },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IOleCommandTarget },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_SH_AddressBand, NTDDI_WIN7, NTDDI_MAX),
|
||||
{
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IDeskBand },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IDockingWindow },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IOleWindow },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IObjectWithSite },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IInputObject },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IPersistStream },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IPersist },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IOleCommandTarget },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IServiceProvider },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IWinEventHandler },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IInputObjectSite },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IShellChangeNotify },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_TaskbarList, NTDDI_WIN7, NTDDI_MAX),
|
||||
{
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_ITaskbarList3 },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_ITaskbarList4 },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_ITaskbarList2 },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_ITaskbarList },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IUnknown },
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
START_TEST(explorerframe)
|
||||
{
|
||||
TestClassesEx(L"explorerframe",
|
||||
ExpectedInterfaces, RTL_NUMBER_OF(ExpectedInterfaces),
|
||||
NTDDI_WIN7, NTDDI_MAX,
|
||||
FALSE);
|
||||
}
|
@@ -3,6 +3,7 @@
|
||||
* LICENSE: GPLv2+ - See COPYING in the top level directory
|
||||
* PURPOSE: COM interface test for ieframe classes
|
||||
* PROGRAMMER: Thomas Faber <thomas.faber@reactos.org>
|
||||
* Carl Bialorucki <carl.bialorucki@reactos.org>
|
||||
*/
|
||||
|
||||
#include "com_apitest.h"
|
||||
@@ -13,235 +14,268 @@
|
||||
static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
|
||||
{
|
||||
{
|
||||
ID_NAME(CLSID_IE_SearchBand),
|
||||
ID_NAME(CLSID_CommBand, NTDDI_WIN7, NTDDI_MAX),
|
||||
{
|
||||
{ -0x30, &IID_IObjectWithSite },
|
||||
{ -0x28, &IID_IDeskBand },
|
||||
{ -0x28, &IID_IDockingWindow },
|
||||
{ -0x28, &IID_IOleWindow },
|
||||
{ -0x24, &IID_IInputObject },
|
||||
{ -0x20, &IID_IPersistStream },
|
||||
{ -0x20, &IID_IPersist },
|
||||
{ -0x1c, &IID_IOleCommandTarget },
|
||||
{ -0x18, &IID_IServiceProvider },
|
||||
{ 0x0, &IID_IContextMenu },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x8, &IID_IDispatch },
|
||||
{ 0x10, &IID_IPersistPropertyBag },
|
||||
{ 0x8c, &IID_IBandNavigate },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IDeskBand },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IDockingWindow },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IOleWindow },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IObjectWithSite },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IInputObject },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IPersistStream },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IPersist },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IOleCommandTarget },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IServiceProvider },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IContextMenu },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IDispatch },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IPersistPropertyBag },
|
||||
},
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_CUrlHistory, NTDDI_MIN, NTDDI_MAX),
|
||||
{
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUrlHistoryStg2 },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUrlHistoryStg },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_Internet),
|
||||
ID_NAME(CLSID_CURLSearchHook, NTDDI_MIN, NTDDI_MAX),
|
||||
{
|
||||
{ -0x18, &IID_IObjectWithBackReferences },
|
||||
{ -0x14, &IID_IShellFolder2 },
|
||||
{ -0x14, &IID_IShellFolder },
|
||||
{ -0x10, &IID_IPersistFolder2 },
|
||||
{ -0x10, &IID_IPersistFolder },
|
||||
{ -0x10, &IID_IPersist },
|
||||
{ -0xc, &IID_IBrowserFrameOptions },
|
||||
{ 0x0, &IID_IContextMenu },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_IShellExtInit },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IURLSearchHook2 },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IURLSearchHook },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_CUrlHistory),
|
||||
ID_NAME(CLSID_IE_SearchBand, NTDDI_MIN, NTDDI_VISTASP4),
|
||||
{
|
||||
{ 0x0, &IID_IUrlHistoryStg2 },
|
||||
{ 0x0, &IID_IUrlHistoryStg },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IObjectWithSite },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IDeskBand },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IDockingWindow },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IOleWindow },
|
||||
{ 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 },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IBandNavigate },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_CURLSearchHook),
|
||||
ID_NAME(CLSID_Internet, NTDDI_MIN, NTDDI_WINBLUE),
|
||||
{
|
||||
{ 0x0, &IID_IURLSearchHook2 },
|
||||
{ 0x0, &IID_IURLSearchHook },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_WINBLUE, &IID_IObjectWithBackReferences },
|
||||
{ NTDDI_MIN, NTDDI_WINBLUE, &IID_IShellFolder2 },
|
||||
{ NTDDI_MIN, NTDDI_WINBLUE, &IID_IShellFolder },
|
||||
{ NTDDI_MIN, NTDDI_WINBLUE, &IID_IPersistFolder2 },
|
||||
{ NTDDI_MIN, NTDDI_WINBLUE, &IID_IPersistFolder },
|
||||
{ NTDDI_MIN, NTDDI_WINBLUE, &IID_IPersist },
|
||||
{ NTDDI_MIN, NTDDI_WINBLUE, &IID_IBrowserFrameOptions },
|
||||
{ NTDDI_MIN, NTDDI_WINBLUE, &IID_IContextMenu },
|
||||
{ NTDDI_MIN, NTDDI_WINBLUE, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_WINBLUE, &IID_IShellExtInit },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_InternetShortcut),
|
||||
ID_NAME(CLSID_InternetShortcut, NTDDI_MIN, NTDDI_MAX),
|
||||
{
|
||||
{ -0xc, &IID_IDataObject },
|
||||
{ -0x8, &IID_IContextMenu2 },
|
||||
{ -0x8, &IID_IContextMenu },
|
||||
{ -0x4, &IID_IExtractIconA },
|
||||
{ 0x0, &IID_IExtractIconW },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_IPersistFile },
|
||||
{ 0x4, &IID_IPersist },
|
||||
{ 0x8, &IID_IPersistStream },
|
||||
{ 0xc, &IID_IShellExtInit },
|
||||
{ 0x10, &IID_IShellLinkA },
|
||||
{ 0x14, &IID_IShellLinkW },
|
||||
{ 0x18, &IID_IShellPropSheetExt },
|
||||
{ 0x1c, &IID_IPropertySetStorage },
|
||||
{ 0x20, &IID_INewShortcutHookA },
|
||||
{ 0x24, &IID_INewShortcutHookW },
|
||||
{ 0x30, &IID_IQueryInfo },
|
||||
{ 0x38, &IID_IObjectWithSite },
|
||||
{ 0x44, &IID_IOleCommandTarget },
|
||||
{ 0x48, &IID_IServiceProvider },
|
||||
{ 0x4c, &IID_IPropertyStore },
|
||||
{ 0x50, &IID_IInitializeWithFile },
|
||||
{ 0x54, &IID_IInitializeWithBindCtx },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IDataObject },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IContextMenu2 },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IContextMenu },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IExtractIconA },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IExtractIconW },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersistFile },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersist },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersistStream },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IShellExtInit },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IShellLinkA },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IShellLinkW },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IShellPropSheetExt },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPropertySetStorage },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_INewShortcutHookA },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_INewShortcutHookW },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IQueryInfo },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IObjectWithSite },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IOleCommandTarget },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IServiceProvider },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPropertyStore },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IInitializeWithFile },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IInitializeWithBindCtx },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_ShellUIHelper),
|
||||
ID_NAME(CLSID_ShellUIHelper, NTDDI_MIN, NTDDI_MAX),
|
||||
{
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0xc, &IID_IObjectWithSite },
|
||||
{ 0x10, &IID_IObjectSafety },
|
||||
{ 0x14, &IID_IShellUIHelper2 },
|
||||
{ 0x14, &IID_IShellUIHelper },
|
||||
{ 0x14, &IID_IDispatch },
|
||||
{ 0x18, &IID_IDispatchEx },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IObjectWithSite },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IObjectSafety },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IShellUIHelper2 },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IShellUIHelper },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IDispatch },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IDispatchEx },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_ShellNameSpace),
|
||||
ID_NAME(CLSID_ShellNameSpace, NTDDI_MIN, NTDDI_MAX),
|
||||
{
|
||||
{ 0x0, &IID_IShellNameSpace },
|
||||
{ 0x0, &IID_IShellFavoritesNameSpace },
|
||||
{ 0x0, &IID_IDispatch },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_IProvideClassInfo2 },
|
||||
{ 0x4, &IID_IProvideClassInfo },
|
||||
{ 0x8, &IID_IPersistStreamInit },
|
||||
{ 0x10, &IID_IPersistPropertyBag },
|
||||
{ 0x14, &IID_IQuickActivate },
|
||||
{ 0x18, &IID_IOleControl },
|
||||
{ 0x1c, &IID_IOleObject },
|
||||
{ 0x20, &IID_IOleInPlaceActiveObject },
|
||||
{ 0x24, &IID_IViewObjectEx },
|
||||
{ 0x24, &IID_IViewObject2 },
|
||||
{ 0x24, &IID_IViewObject },
|
||||
{ 0x28, &IID_IOleInPlaceObjectWindowless },
|
||||
{ 0x28, &IID_IOleInPlaceObject },
|
||||
{ 0x28, &IID_IOleWindow },
|
||||
{ 0x38, &IID_IConnectionPointContainer },
|
||||
{ 0x3c, &IID_IDropTarget },
|
||||
{ 0xb4, &IID_IObjectWithSite },
|
||||
{ 0xbc, &IID_INSCTree },
|
||||
{ 0xc4, &IID_IShellBrowser },
|
||||
{ 0xc8, &IID_IFolderFilterSite },
|
||||
{ 0xcc, &IID_INewMenuClient },
|
||||
{ 0xd0, &IID_IServiceProvider },
|
||||
{ 0xd4, &IID_INameSpaceTreeControl },
|
||||
{ 0xe0, &IID_IVisualProperties },
|
||||
{ 0xe4, &IID_IWinEventHandler },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IShellNameSpace },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IShellFavoritesNameSpace },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IDispatch },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IProvideClassInfo2 },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IProvideClassInfo },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersistStreamInit },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersistPropertyBag },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IQuickActivate },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IOleControl },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IOleObject },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IOleInPlaceActiveObject },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IViewObjectEx },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IViewObject2 },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IViewObject },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IOleInPlaceObjectWindowless },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IOleInPlaceObject },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IOleWindow },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IConnectionPointContainer },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IDropTarget },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IObjectWithSite },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_INSCTree },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IShellBrowser },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IFolderFilterSite },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_INewMenuClient },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IServiceProvider },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_INameSpaceTreeControl },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IVisualProperties },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IWinEventHandler },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_ShellWindows),
|
||||
ID_NAME(CLSID_ShellWindows, NTDDI_MIN, NTDDI_VISTASP4),
|
||||
{
|
||||
{ -0xa0, &IID_IMarshal2 },
|
||||
{ -0xa0, &IID_IMarshal },
|
||||
{ -0x20, &IID_IClientSecurity },
|
||||
{ -0x18, &IID_IRpcOptions },
|
||||
{ -0xc, &IID_ICallFactory },
|
||||
{ -0x8, &IID_IForegroundTransfer },
|
||||
{ 0x0, &IID_IMultiQI },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ FARAWY, &IID_IShellWindows },
|
||||
{ FARAWY, &IID_IDispatch },
|
||||
{ FARAWY, &IID_IConnectionPointContainer },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IMarshal2 },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IMarshal },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IClientSecurity },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IRpcOptions },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_ICallFactory },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IForegroundTransfer },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IMultiQI },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IShellWindows },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IDispatch },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IConnectionPointContainer },
|
||||
|
||||
{ NTDDI_VISTA, NTDDI_VISTASP4, &IID_IServiceProvider },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_WebBrowser),
|
||||
ID_NAME(CLSID_WebBrowser, NTDDI_MIN, NTDDI_MAX),
|
||||
{
|
||||
{ -0x20, &IID_IPersist },
|
||||
{ -0x1c, &IID_IOleObject },
|
||||
{ -0x18, &IID_IViewObject2 },
|
||||
{ -0x18, &IID_IViewObject },
|
||||
{ -0x14, &IID_IDataObject },
|
||||
{ -0x10, &IID_IOleInPlaceObject },
|
||||
{ -0x10, &IID_IOleWindow },
|
||||
{ -0xc, &IID_IOleInPlaceActiveObject },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x98, &IID_IPersistStream },
|
||||
{ 0x98, &IID_IPersistStreamInit },
|
||||
{ 0x9c, &IID_IPersistPropertyBag },
|
||||
{ 0xa0, &IID_IOleControl },
|
||||
{ 0xa8, &IID_IProvideClassInfo2 },
|
||||
{ 0xa8, &IID_IProvideClassInfo },
|
||||
{ 0xac, &IID_IConnectionPointContainer },
|
||||
{ 0x120, &IID_IWebBrowser2 },
|
||||
{ 0x120, &IID_IWebBrowserApp },
|
||||
{ 0x120, &IID_IWebBrowser },
|
||||
{ 0x120, &IID_IDispatch },
|
||||
{ 0x130, &IID_IOleCommandTarget },
|
||||
{ 0x134, &IID_IObjectSafety },
|
||||
{ 0x13c, &IID_ITargetEmbedding },
|
||||
{ 0x140, &IID_IPersistStorage },
|
||||
{ 0x144, &IID_IPersistHistory },
|
||||
{ FARAWY, &IID_IShellService },
|
||||
{ FARAWY, &IID_IServiceProvider },
|
||||
{ FARAWY, &IID_IHlinkFrame },
|
||||
{ FARAWY, &IID_IUrlHistoryNotify },
|
||||
{ FARAWY, &IID_ITargetFrame2 },
|
||||
{ FARAWY, &IID_ITargetNotify },
|
||||
{ FARAWY, &IID_ITargetFramePriv2 },
|
||||
{ FARAWY, &IID_ITargetFramePriv },
|
||||
{ FARAWY, &IID_IEFrameAuto },
|
||||
{ FARAWY, &IID_IWebBrowserPriv },
|
||||
{ FARAWY, &IID_IWebBrowserPriv2 },
|
||||
{ FARAWY, &IID_ISecMgrCacheSeedTarget },
|
||||
{ FARAWY, &IID_ITargetFrame },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IEFrameAuto },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IWebBrowserPriv2 },
|
||||
|
||||
#ifdef _WIN64 // IID_IWebBrowserPriv is missing from this class on Vista x64
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IWebBrowserPriv },
|
||||
{ NTDDI_WIN7, NTDDI_WINBLUE, &IID_IWebBrowserPriv },
|
||||
#else
|
||||
{ NTDDI_MIN, NTDDI_WINBLUE, &IID_IWebBrowserPriv },
|
||||
#endif
|
||||
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersist },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IOleObject },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IViewObject2 },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IViewObject },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IDataObject },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IOleInPlaceObject },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IOleWindow },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IOleInPlaceActiveObject },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersistStream },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersistStreamInit },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersistPropertyBag },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IOleControl },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IProvideClassInfo2 },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IProvideClassInfo },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IConnectionPointContainer },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IWebBrowser2 },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IWebBrowserApp },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IWebBrowser },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IDispatch },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IOleCommandTarget },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IObjectSafety },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_ITargetEmbedding },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersistStorage },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersistHistory },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IShellService },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IServiceProvider },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IHlinkFrame },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUrlHistoryNotify },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_ITargetFrame2 },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_ITargetNotify },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_ITargetFramePriv2 },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_ITargetFramePriv },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_ISecMgrCacheSeedTarget },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_ITargetFrame },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_WebBrowser_V1),
|
||||
ID_NAME(CLSID_WebBrowser_V1, NTDDI_MIN, NTDDI_MAX),
|
||||
{
|
||||
{ -0x20, &IID_IPersist },
|
||||
{ -0x1c, &IID_IOleObject },
|
||||
{ -0x18, &IID_IViewObject2 },
|
||||
{ -0x18, &IID_IViewObject },
|
||||
{ -0x14, &IID_IDataObject },
|
||||
{ -0x10, &IID_IOleInPlaceObject },
|
||||
{ -0x10, &IID_IOleWindow },
|
||||
{ -0xc, &IID_IOleInPlaceActiveObject },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x98, &IID_IPersistStream },
|
||||
{ 0x98, &IID_IPersistStreamInit },
|
||||
{ 0x9c, &IID_IPersistPropertyBag },
|
||||
{ 0xa0, &IID_IOleControl },
|
||||
{ 0xa8, &IID_IProvideClassInfo2 },
|
||||
{ 0xa8, &IID_IProvideClassInfo },
|
||||
{ 0xac, &IID_IConnectionPointContainer },
|
||||
{ 0x120, &IID_IWebBrowser2 },
|
||||
{ 0x120, &IID_IWebBrowserApp },
|
||||
{ 0x120, &IID_IWebBrowser },
|
||||
{ 0x120, &IID_IDispatch },
|
||||
{ 0x130, &IID_IOleCommandTarget },
|
||||
{ 0x134, &IID_IObjectSafety },
|
||||
{ 0x13c, &IID_ITargetEmbedding },
|
||||
{ 0x140, &IID_IPersistStorage },
|
||||
{ 0x144, &IID_IPersistHistory },
|
||||
{ FARAWY, &IID_IShellService },
|
||||
{ FARAWY, &IID_IServiceProvider },
|
||||
{ FARAWY, &IID_IHlinkFrame },
|
||||
{ FARAWY, &IID_IUrlHistoryNotify },
|
||||
{ FARAWY, &IID_ITargetFrame2 },
|
||||
{ FARAWY, &IID_ITargetNotify },
|
||||
{ FARAWY, &IID_ITargetFramePriv2 },
|
||||
{ FARAWY, &IID_ITargetFramePriv },
|
||||
{ FARAWY, &IID_IEFrameAuto },
|
||||
{ FARAWY, &IID_IWebBrowserPriv },
|
||||
{ FARAWY, &IID_IWebBrowserPriv2 },
|
||||
{ FARAWY, &IID_ISecMgrCacheSeedTarget },
|
||||
{ FARAWY, &IID_ITargetFrame },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IEFrameAuto },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IWebBrowserPriv2 },
|
||||
|
||||
#ifdef _WIN64 // IID_IWebBrowserPriv is missing from this class on Vista x64
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IWebBrowserPriv },
|
||||
{ NTDDI_WIN7, NTDDI_WINBLUE, &IID_IWebBrowserPriv },
|
||||
#else
|
||||
{ NTDDI_MIN, NTDDI_WINBLUE, &IID_IWebBrowserPriv },
|
||||
#endif
|
||||
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersist },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IOleObject },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IViewObject2 },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IViewObject },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IDataObject },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IOleInPlaceObject },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IOleWindow },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IOleInPlaceActiveObject },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersistStream },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersistStreamInit },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersistPropertyBag },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IOleControl },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IProvideClassInfo2 },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IProvideClassInfo },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IConnectionPointContainer },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IWebBrowser2 },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IWebBrowserApp },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IWebBrowser },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IDispatch },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IOleCommandTarget },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IObjectSafety },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_ITargetEmbedding },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersistStorage },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersistHistory },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IShellService },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IServiceProvider },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IHlinkFrame },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUrlHistoryNotify },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_ITargetFrame2 },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_ITargetNotify },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_ITargetFramePriv2 },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_ITargetFramePriv },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_ISecMgrCacheSeedTarget },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_ITargetFrame },
|
||||
}
|
||||
},
|
||||
};
|
||||
static const INT ExpectedInterfaceCount = RTL_NUMBER_OF(ExpectedInterfaces);
|
||||
|
||||
START_TEST(ieframe)
|
||||
{
|
||||
TestClasses(L"ieframe", ExpectedInterfaces, ExpectedInterfaceCount);
|
||||
TestClasses(L"ieframe", ExpectedInterfaces, RTL_NUMBER_OF(ExpectedInterfaces));
|
||||
}
|
||||
|
@@ -13,19 +13,21 @@
|
||||
static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
|
||||
{
|
||||
{
|
||||
ID_NAME(CLSID_CNetCfg),
|
||||
ID_NAME(CLSID_CNetCfg, NTDDI_MIN, NTDDI_MAX),
|
||||
{
|
||||
{ 0x0, &IID_INetCfg },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_INetCfgLock },
|
||||
{ 0x10, &IID_INetCfgPnpReconfigCallback },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_INetCfg },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_INetCfgLock },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_INetCfgPnpReconfigCallback },
|
||||
},
|
||||
L"Both"
|
||||
},
|
||||
};
|
||||
static const INT ExpectedInterfaceCount = RTL_NUMBER_OF(ExpectedInterfaces);
|
||||
|
||||
START_TEST(netcfgx)
|
||||
{
|
||||
TestClasses(L"netcfgx", ExpectedInterfaces, ExpectedInterfaceCount);
|
||||
if (GetNTVersion() < _WIN32_WINNT_WIN10)
|
||||
TestClasses(L"netcfgx", ExpectedInterfaces, RTL_NUMBER_OF(ExpectedInterfaces));
|
||||
else
|
||||
TestClasses(L"NetSetupShim", ExpectedInterfaces, RTL_NUMBER_OF(ExpectedInterfaces));
|
||||
}
|
||||
|
@@ -3,6 +3,7 @@
|
||||
* LICENSE: LGPLv2.1+ - See COPYING.LIB in the top level directory
|
||||
* PURPOSE: COM interface test for netshell classes
|
||||
* PROGRAMMER: Thomas Faber <thomas.faber@reactos.org>
|
||||
* Carl Bialorucki <carl.bialorucki@reactos.org>
|
||||
*/
|
||||
|
||||
#include "com_apitest.h"
|
||||
@@ -12,142 +13,147 @@
|
||||
|
||||
static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
|
||||
{
|
||||
/* CLSID_ConnectionCommonUi has two entries here because the
|
||||
* threading model changed between Windows versions. */
|
||||
{
|
||||
ID_NAME(CLSID_ConnectionCommonUi),
|
||||
ID_NAME(CLSID_ConnectionCommonUi, NTDDI_MIN, NTDDI_WS03),
|
||||
{
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
||||
},
|
||||
L"Both"
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_NetworkConnections),
|
||||
ID_NAME(CLSID_ConnectionCommonUi, NTDDI_VISTA, NTDDI_MAX),
|
||||
{
|
||||
{ 0x0, &IID_IPersistFolder2 },
|
||||
{ 0x0, &IID_IPersistFolder },
|
||||
{ 0x0, &IID_IPersist },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_IShellExtInit },
|
||||
{ 0x8, &IID_IShellFolder2 },
|
||||
{ 0x8, &IID_IShellFolder },
|
||||
{ 0xc, &IID_IOleCommandTarget },
|
||||
{ 0x10, &IID_IShellFolderViewCB },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
||||
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_INetLanConnectionUiInfo },
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_IMarshal2 },
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_IMarshal },
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_IClientSecurity },
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_IRpcOptions },
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_ICallFactory },
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_IForegroundTransfer },
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_IMultiQI },
|
||||
},
|
||||
L"Free"
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_NetworkConnections, NTDDI_MIN, NTDDI_MAX),
|
||||
{
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder2 },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersist },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IShellExtInit },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IShellFolder2 },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IShellFolder },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IOleCommandTarget },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IShellFolderViewCB },
|
||||
},
|
||||
L"Both"
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_ConnectionFolderEnum),
|
||||
ID_NAME(CLSID_ConnectionFolderEnum, NTDDI_MIN, NTDDI_MAX),
|
||||
{
|
||||
{ 0x0, &IID_IEnumIDList },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
},
|
||||
L"Both"
|
||||
},
|
||||
#if 0
|
||||
{
|
||||
ID_NAME(CLSID_ConnectionManager),
|
||||
{
|
||||
{ 0x0, &IID_IUnknown },
|
||||
}
|
||||
},
|
||||
#endif
|
||||
{
|
||||
ID_NAME(CLSID_ConnectionTray),
|
||||
{
|
||||
{ 0x0, &IID_IOleCommandTarget },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IEnumIDList },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
||||
},
|
||||
L"Both"
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_DialupConnectionUi),
|
||||
ID_NAME(CLSID_ConnectionTray, NTDDI_MIN, NTDDI_WIN7SP1),
|
||||
{
|
||||
{ 0x0, &IID_INetConnectionConnectUi },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_INetConnectionPropertyUi2 },
|
||||
//{ 0x4, &IID_INetConnectionPropertyUi },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IOleCommandTarget },
|
||||
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
||||
},
|
||||
L"Both"
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_DirectConnectionUi),
|
||||
ID_NAME(CLSID_DialupConnectionUi, NTDDI_MIN, NTDDI_MAX),
|
||||
{
|
||||
{ 0x0, &IID_INetConnectionConnectUi },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_INetConnectionPropertyUi2 },
|
||||
//{ 0x4, &IID_INetConnectionPropertyUi },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_INetConnectionConnectUi },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_INetConnectionPropertyUi2 },
|
||||
},
|
||||
L"Both"
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_InboundConnectionUi),
|
||||
ID_NAME(CLSID_DirectConnectionUi, NTDDI_MIN, NTDDI_WS03SP4),
|
||||
{
|
||||
{ 0x0, &IID_INetConnectionPropertyUi2 },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_INetConnectionConnectUi },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_INetConnectionPropertyUi2 },
|
||||
},
|
||||
L"Both"
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_InternetConnectionUi),
|
||||
ID_NAME(CLSID_InboundConnectionUi, NTDDI_MIN, NTDDI_MAX),
|
||||
{
|
||||
{ 0x0, &IID_INetConnectionConnectUi },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_INetConnectionPropertyUi2 },
|
||||
//{ 0x4, &IID_INetConnectionPropertyUi },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_INetConnectionPropertyUi2 },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
||||
},
|
||||
L"Both"
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_LanConnectionUi),
|
||||
ID_NAME(CLSID_InternetConnectionUi, NTDDI_MIN, NTDDI_MAX),
|
||||
{
|
||||
{ 0x0, &IID_INetConnectionConnectUi },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_INetConnectionPropertyUi2 },
|
||||
{ 0x4, &IID_INetConnectionPropertyUi },
|
||||
{ 0x10, &IID_INetLanConnectionUiInfo },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_INetConnectionConnectUi },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_INetConnectionPropertyUi2 },
|
||||
},
|
||||
L"Both"
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_NetConnectionUiUtilities),
|
||||
ID_NAME(CLSID_LanConnectionUi, NTDDI_MIN, NTDDI_MAX),
|
||||
{
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_INetConnectionConnectUi },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_INetConnectionPropertyUi2 },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_INetConnectionPropertyUi },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_INetLanConnectionUiInfo },
|
||||
},
|
||||
L"Both"
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_SharedAccessConnectionUi),
|
||||
ID_NAME(CLSID_NetConnectionUiUtilities, NTDDI_MIN, NTDDI_MAX),
|
||||
{
|
||||
{ 0x0, &IID_INetConnectionConnectUi },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_INetConnectionPropertyUi2 },
|
||||
{ 0x4, &IID_INetConnectionPropertyUi },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
||||
},
|
||||
L"Both"
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_PPPoEUi),
|
||||
ID_NAME(CLSID_SharedAccessConnectionUi, NTDDI_MIN, NTDDI_MAX),
|
||||
{
|
||||
{ 0x0, &IID_INetConnectionConnectUi },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_INetConnectionPropertyUi2 },
|
||||
//{ 0x4, &IID_INetConnectionPropertyUi },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_INetConnectionConnectUi },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_INetConnectionPropertyUi2 },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_INetConnectionPropertyUi },
|
||||
},
|
||||
L"Both"
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_VpnConnectionUi),
|
||||
ID_NAME(CLSID_PPPoEUi, NTDDI_MIN, NTDDI_MAX),
|
||||
{
|
||||
{ 0x0, &IID_INetConnectionConnectUi },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_INetConnectionPropertyUi2 },
|
||||
//{ 0x4, &IID_INetConnectionPropertyUi },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_INetConnectionConnectUi },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_INetConnectionPropertyUi2 },
|
||||
},
|
||||
L"Both"
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_VpnConnectionUi, NTDDI_MIN, NTDDI_MAX),
|
||||
{
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_INetConnectionConnectUi },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_INetConnectionPropertyUi2 },
|
||||
},
|
||||
L"Both"
|
||||
},
|
||||
};
|
||||
static const INT ExpectedInterfaceCount = RTL_NUMBER_OF(ExpectedInterfaces);
|
||||
|
||||
START_TEST(netshell)
|
||||
{
|
||||
TestClasses(L"netshell", ExpectedInterfaces, ExpectedInterfaceCount);
|
||||
TestClasses(L"netshell", ExpectedInterfaces, RTL_NUMBER_OF(ExpectedInterfaces));
|
||||
}
|
||||
|
@@ -13,18 +13,17 @@
|
||||
static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
|
||||
{
|
||||
{
|
||||
ID_NAME(CLSID_StdComponentCategoriesMgr),
|
||||
ID_NAME(CLSID_StdComponentCategoriesMgr, NTDDI_MIN, NTDDI_WIN7SP1),
|
||||
{
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ FARAWY, &IID_ICatRegister },
|
||||
{ FARAWY, &IID_ICatInformation },
|
||||
{ NTDDI_MIN, NTDDI_WIN7SP1, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_WIN7SP1, &IID_ICatRegister },
|
||||
{ NTDDI_MIN, NTDDI_WIN7SP1, &IID_ICatInformation },
|
||||
},
|
||||
L"Both"
|
||||
},
|
||||
};
|
||||
static const INT ExpectedInterfaceCount = RTL_NUMBER_OF(ExpectedInterfaces);
|
||||
|
||||
START_TEST(ole32)
|
||||
{
|
||||
TestClasses(L"ole32", ExpectedInterfaces, ExpectedInterfaceCount);
|
||||
TestClasses(L"ole32", ExpectedInterfaces, RTL_NUMBER_OF(ExpectedInterfaces));
|
||||
}
|
||||
|
39
modules/rostests/apitests/com/prnfldr.c
Normal file
39
modules/rostests/apitests/com/prnfldr.c
Normal file
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
* PROJECT: ReactOS API Tests
|
||||
* LICENSE: MIT (https://spdx.org/licenses/MIT)
|
||||
* PURPOSE: COM interface test for prnfldr server
|
||||
* COPYRIGHT: Copyright 2025 Carl Bialorucki <carl.bialorucki@reactos.org>
|
||||
*/
|
||||
|
||||
#include "com_apitest.h"
|
||||
|
||||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
||||
static const CLASS_AND_INTERFACES ExpectedInterfaces_Win7[] =
|
||||
{
|
||||
{
|
||||
ID_NAME(CLSID_Printers, NTDDI_WIN7, NTDDI_MAX),
|
||||
{
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IShellFolder2 },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IShellFolder },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IShellIconOverlay },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IRemoteComputer },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IPersistFolder2 },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IPersistFolder },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IContextMenuCB },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IResolveShellLink },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IFolderType },
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IObjectWithBackReferences },
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
START_TEST(prnfldr)
|
||||
{
|
||||
TestClassesEx(L"prnfldr",
|
||||
ExpectedInterfaces_Win7, RTL_NUMBER_OF(ExpectedInterfaces_Win7),
|
||||
NTDDI_WIN7, NTDDI_MAX,
|
||||
FALSE);
|
||||
}
|
@@ -12,243 +12,304 @@
|
||||
|
||||
static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
|
||||
{
|
||||
/* CLSID_AdminFolderShortcut has two entries here because the threading model
|
||||
* changed between Windows versions. */
|
||||
{
|
||||
ID_NAME(CLSID_AdminFolderShortcut),
|
||||
ID_NAME(CLSID_AdminFolderShortcut, NTDDI_MIN, NTDDI_VISTASP4),
|
||||
{
|
||||
{ 0x0, &IID_IShellFolder2 },
|
||||
{ 0x0, &IID_IShellFolder },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_IPersistFolder3 },
|
||||
{ 0x4, &IID_IPersistFolder2 },
|
||||
{ 0x4, &IID_IPersistFolder },
|
||||
{ 0x4, &IID_IPersist },
|
||||
{ 0x8, &IID_IShellLinkA },
|
||||
{ 0xc, &IID_IShellLinkW },
|
||||
{ 0x10, &IID_IPersistFile },
|
||||
{ 0x14, &IID_IExtractIconW },
|
||||
{ 0x18, &IID_IQueryInfo },
|
||||
{ 0x20, &IID_IPersistStream },
|
||||
{ 0x20, &IID_IPersistStreamInit },
|
||||
{ 0x24, &IID_IPersistPropertyBag },
|
||||
{ 0x28, &IID_IBrowserFrameOptions },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IShellLinkA },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IShellLinkW },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IPersistFile },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IExtractIconW },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IQueryInfo },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IPersistStream },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IPersistStreamInit },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IBrowserFrameOptions },
|
||||
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IShellFolder2 },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IShellFolder },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder3 },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder2 },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersist },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersistPropertyBag },
|
||||
|
||||
{ NTDDI_VISTA, NTDDI_VISTASP4, &IID_IAliasRegistrationCallback },
|
||||
|
||||
{ NTDDI_VISTA, NTDDI_WIN7SP1, &IID_ILocalizableItemParent },
|
||||
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_IObjectWithSite },
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_IShellIcon },
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_IShellIconOverlay },
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_IStorage },
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_IItemNameLimits },
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_IContextMenuCB },
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_IOleCommandTarget },
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_IOleCommandTarget },
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_IObjectWithBackReferences },
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_IRemoteComputer },
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_IFolderType },
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_IBackReferencedObject },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_ExplorerBand),
|
||||
ID_NAME(CLSID_AdminFolderShortcut, NTDDI_WIN7, NTDDI_MAX),
|
||||
{
|
||||
{ -0xb4, &IID_IDeskBand },
|
||||
{ -0xb4, &IID_IDockingWindow },
|
||||
{ -0xb4, &IID_IOleWindow },
|
||||
{ -0xb0, &IID_IObjectWithSite },
|
||||
{ -0xa8, &IID_IInputObject },
|
||||
{ -0xa4, &IID_IPersistStream },
|
||||
{ -0xa4, &IID_IPersist },
|
||||
{ -0xa0, &IID_IOleCommandTarget },
|
||||
{ -0x9c, &IID_IServiceProvider },
|
||||
{ -0x84, &IID_IContextMenu },
|
||||
{ -0x80, &IID_IBandNavigate },
|
||||
{ -0x7c, &IID_IWinEventHandler },
|
||||
{ -0x78, &IID_INamespaceProxy },
|
||||
{ 0x0, &IID_IDispatch },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IShellFolder2 },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IShellFolder },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder3 },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder2 },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersist },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersistPropertyBag },
|
||||
|
||||
{ NTDDI_VISTA, NTDDI_WIN7SP1, &IID_ILocalizableItemParent },
|
||||
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_IObjectWithSite },
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_IShellIcon },
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_IShellIconOverlay },
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_IStorage },
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_IItemNameLimits },
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_IContextMenuCB },
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_IOleCommandTarget },
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_IOleCommandTarget },
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_IObjectWithBackReferences },
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_IRemoteComputer },
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_IFolderType },
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_IBackReferencedObject },
|
||||
|
||||
{ NTDDI_WIN7, NTDDI_MAX, &IID_IParentAndItem },
|
||||
},
|
||||
L"Both"
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_ExplorerBand, 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_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_IContextMenu },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IBandNavigate },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IWinEventHandler },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_INamespaceProxy },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IDispatch },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IUnknown },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_FontsFolderShortcut),
|
||||
ID_NAME(CLSID_FontsFolderShortcut, NTDDI_MIN, NTDDI_VISTASP4),
|
||||
{
|
||||
{ 0x0, &IID_IShellFolder2 },
|
||||
{ 0x0, &IID_IShellFolder },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_IPersistFolder3 },
|
||||
{ 0x4, &IID_IPersistFolder2 },
|
||||
{ 0x4, &IID_IPersistFolder },
|
||||
{ 0x4, &IID_IPersist },
|
||||
{ 0x8, &IID_IShellLinkA },
|
||||
{ 0xc, &IID_IShellLinkW },
|
||||
{ 0x10, &IID_IPersistFile },
|
||||
{ 0x14, &IID_IExtractIconW },
|
||||
{ 0x18, &IID_IQueryInfo },
|
||||
{ 0x20, &IID_IPersistStream },
|
||||
{ 0x20, &IID_IPersistStreamInit },
|
||||
{ 0x24, &IID_IPersistPropertyBag },
|
||||
{ 0x28, &IID_IBrowserFrameOptions },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IShellFolder2 },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IShellFolder },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IPersistFolder3 },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IPersistFolder2 },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IPersistFolder },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IPersist },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IShellLinkA },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IShellLinkW },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IPersistFile },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IExtractIconW },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IQueryInfo },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IPersistStream },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IPersistStreamInit },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IPersistPropertyBag },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IBrowserFrameOptions },
|
||||
|
||||
{ NTDDI_VISTA, NTDDI_VISTASP4, &IID_IFolderWithSearchRoot },
|
||||
{ NTDDI_VISTA, NTDDI_VISTASP4, &IID_IShellIconOverlay },
|
||||
}
|
||||
},
|
||||
#if 0 // E_OUTOFMEMORY?
|
||||
{
|
||||
ID_NAME(CLSID_ShellDispatchInproc),
|
||||
ID_NAME(CLSID_ShellDispatchInproc, NTDDI_MIN, NTDDI_WS03SP4),
|
||||
{
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IUnknown },
|
||||
}
|
||||
},
|
||||
#endif
|
||||
{
|
||||
ID_NAME(CLSID_MruLongList),
|
||||
ID_NAME(CLSID_MruLongList, NTDDI_MIN, NTDDI_WS03SP4),
|
||||
{
|
||||
{ 0x0, &IID_IMruDataList },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IMruDataList },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IUnknown },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_MruPidlList),
|
||||
ID_NAME(CLSID_MruPidlList, NTDDI_MIN, NTDDI_WS03SP4),
|
||||
{
|
||||
{ 0x0, &IID_IMruPidlList },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IMruPidlList },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IUnknown },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_SH_FavBand),
|
||||
ID_NAME(CLSID_SH_FavBand, NTDDI_MIN, NTDDI_WS03SP4),
|
||||
{
|
||||
{ -0x30, &IID_IDeskBand },
|
||||
{ -0x30, &IID_IDockingWindow },
|
||||
{ -0x30, &IID_IOleWindow },
|
||||
{ -0x2c, &IID_IObjectWithSite },
|
||||
{ -0x24, &IID_IInputObject },
|
||||
{ -0x20, &IID_IPersistStream },
|
||||
{ -0x20, &IID_IPersist },
|
||||
{ -0x1c, &IID_IOleCommandTarget },
|
||||
{ -0x18, &IID_IServiceProvider },
|
||||
{ 0x0, &IID_IContextMenu },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_IBandNavigate },
|
||||
{ 0x8, &IID_IWinEventHandler },
|
||||
{ 0xc, &IID_INamespaceProxy },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IDeskBand },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IDockingWindow },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleWindow },
|
||||
{ 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_IContextMenu },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IBandNavigate },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IWinEventHandler },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_INamespaceProxy },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_SH_HistBand),
|
||||
ID_NAME(CLSID_SH_HistBand, NTDDI_MIN, NTDDI_WS03SP4),
|
||||
{
|
||||
{ -0xb4, &IID_IDeskBand },
|
||||
{ -0xb4, &IID_IDockingWindow },
|
||||
{ -0xb4, &IID_IOleWindow },
|
||||
{ -0xb0, &IID_IObjectWithSite },
|
||||
{ -0xa8, &IID_IInputObject },
|
||||
{ -0xa4, &IID_IPersistStream },
|
||||
{ -0xa4, &IID_IPersist },
|
||||
{ -0xa0, &IID_IOleCommandTarget },
|
||||
{ -0x9c, &IID_IServiceProvider },
|
||||
{ -0x84, &IID_IContextMenu },
|
||||
{ -0x80, &IID_IBandNavigate },
|
||||
{ -0x7c, &IID_IWinEventHandler },
|
||||
{ -0x78, &IID_INamespaceProxy },
|
||||
{ 0x0, &IID_IShellFolderSearchableCallback },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IDeskBand },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IDockingWindow },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleWindow },
|
||||
{ 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_IContextMenu },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IBandNavigate },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IWinEventHandler },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_INamespaceProxy },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IShellFolderSearchableCallback },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IUnknown },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_SearchAssistantOC),
|
||||
ID_NAME(CLSID_SearchAssistantOC, NTDDI_MIN, NTDDI_WS03SP4),
|
||||
{
|
||||
{ 0x0, &IID_ISearchAssistantOC3 },
|
||||
{ 0x0, &IID_ISearchAssistantOC },
|
||||
{ 0x0, &IID_IDispatch },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_IProvideClassInfo2 },
|
||||
{ 0x4, &IID_IProvideClassInfo },
|
||||
{ 0x8, &IID_IQuickActivate },
|
||||
{ 0xc, &IID_IOleControl },
|
||||
{ 0x10, &IID_IOleObject },
|
||||
{ 0x14, &IID_IOleInPlaceActiveObject },
|
||||
{ 0x18, &IID_IViewObjectEx },
|
||||
{ 0x18, &IID_IViewObject2 },
|
||||
{ 0x18, &IID_IViewObject },
|
||||
{ 0x1c, &IID_IOleInPlaceObjectWindowless },
|
||||
{ 0x1c, &IID_IOleInPlaceObject },
|
||||
{ 0x1c, &IID_IOleWindow },
|
||||
{ 0x20, &IID_IDataObject },
|
||||
{ 0x30, &IID_IConnectionPointContainer },
|
||||
{ 0x34, &IID_IObjectSafety },
|
||||
{ 0x3c, &IID_IOleCommandTarget },
|
||||
{ 0x40, &IID_IObjectWithSite },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_ISearchAssistantOC3 },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_ISearchAssistantOC },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IDispatch },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IProvideClassInfo2 },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IProvideClassInfo },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IQuickActivate },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleControl },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleObject },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleInPlaceActiveObject },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IViewObjectEx },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IViewObject2 },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IViewObject },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleInPlaceObjectWindowless },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleInPlaceObject },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleWindow },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IDataObject },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IConnectionPointContainer },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IObjectSafety },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleCommandTarget },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IObjectWithSite },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_SearchBand),
|
||||
ID_NAME(CLSID_SearchBand, NTDDI_MIN, NTDDI_WIN7SP1),
|
||||
{
|
||||
{ 0x0, &IID_IContextMenu },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_IShellExtInit },
|
||||
{ 0x8, &IID_IPersistPropertyBag },
|
||||
{ 0x8, &IID_IPersist },
|
||||
{ NTDDI_MIN, NTDDI_WIN7SP1, &IID_IContextMenu },
|
||||
{ NTDDI_MIN, NTDDI_WIN7SP1, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_WIN7SP1, &IID_IShellExtInit },
|
||||
{ NTDDI_MIN, NTDDI_WIN7SP1, &IID_IPersistPropertyBag },
|
||||
{ NTDDI_MIN, NTDDI_WIN7SP1, &IID_IPersist },
|
||||
|
||||
{ NTDDI_VISTA, NTDDI_WIN7SP1, &IID_IShellFolder },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_ShellSearchAssistantOC),
|
||||
ID_NAME(CLSID_ShellSearchAssistantOC, NTDDI_MIN, NTDDI_WS03SP4),
|
||||
{
|
||||
{ 0x0, &IID_ISearchAssistantOC3 },
|
||||
{ 0x0, &IID_ISearchAssistantOC },
|
||||
{ 0x0, &IID_IDispatch },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_IProvideClassInfo2 },
|
||||
{ 0x4, &IID_IProvideClassInfo },
|
||||
{ 0x8, &IID_IQuickActivate },
|
||||
{ 0xc, &IID_IOleControl },
|
||||
{ 0x10, &IID_IOleObject },
|
||||
{ 0x14, &IID_IOleInPlaceActiveObject },
|
||||
{ 0x18, &IID_IViewObjectEx },
|
||||
{ 0x18, &IID_IViewObject2 },
|
||||
{ 0x18, &IID_IViewObject },
|
||||
{ 0x1c, &IID_IOleInPlaceObjectWindowless },
|
||||
{ 0x1c, &IID_IOleInPlaceObject },
|
||||
{ 0x1c, &IID_IOleWindow },
|
||||
{ 0x20, &IID_IDataObject },
|
||||
{ 0x30, &IID_IConnectionPointContainer },
|
||||
{ 0x34, &IID_IObjectSafety },
|
||||
{ 0x3c, &IID_IOleCommandTarget },
|
||||
{ 0x40, &IID_IObjectWithSite },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_ISearchAssistantOC3 },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_ISearchAssistantOC },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IDispatch },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IProvideClassInfo2 },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IProvideClassInfo },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IQuickActivate },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleControl },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleObject },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleInPlaceActiveObject },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IViewObjectEx },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IViewObject2 },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IViewObject },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleInPlaceObjectWindowless },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleInPlaceObject },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleWindow },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IDataObject },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IConnectionPointContainer },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IObjectSafety },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IOleCommandTarget },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IObjectWithSite },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_ShellShellNameSpace),
|
||||
ID_NAME(CLSID_ShellShellNameSpace, NTDDI_MIN, NTDDI_VISTASP4),
|
||||
{
|
||||
{ 0x0, &IID_IShellNameSpace },
|
||||
{ 0x0, &IID_IShellFavoritesNameSpace },
|
||||
{ 0x0, &IID_IDispatch },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_IProvideClassInfo2 },
|
||||
{ 0x4, &IID_IProvideClassInfo },
|
||||
{ 0x8, &IID_IPersistStreamInit },
|
||||
{ 0xc, &IID_IPersistPropertyBag },
|
||||
{ 0x10, &IID_IQuickActivate },
|
||||
{ 0x14, &IID_IOleControl },
|
||||
{ 0x18, &IID_IOleObject },
|
||||
{ 0x1c, &IID_IOleInPlaceActiveObject },
|
||||
{ 0x20, &IID_IViewObjectEx },
|
||||
{ 0x20, &IID_IViewObject2 },
|
||||
{ 0x20, &IID_IViewObject },
|
||||
{ 0x24, &IID_IOleInPlaceObjectWindowless },
|
||||
{ 0x24, &IID_IOleInPlaceObject },
|
||||
{ 0x24, &IID_IOleWindow },
|
||||
{ 0x28, &IID_ISpecifyPropertyPages },
|
||||
{ 0x38, &IID_IConnectionPointContainer },
|
||||
{ 0x3c, &IID_IShellChangeNotify },
|
||||
{ 0x40, &IID_IDropTarget },
|
||||
{ 0xb4, &IID_IObjectWithSite },
|
||||
{ 0xbc, &IID_INSCTree2 },
|
||||
{ 0xbc, &IID_INSCTree },
|
||||
{ 0xc0, &IID_IWinEventHandler },
|
||||
{ 0xc4, &IID_IShellBrowser },
|
||||
{ 0xc8, &IID_IFolderFilterSite },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IShellChangeNotify },
|
||||
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_ISpecifyPropertyPages },
|
||||
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IShellNameSpace },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IShellFavoritesNameSpace },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IDispatch },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IProvideClassInfo2 },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IProvideClassInfo },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IPersistStreamInit },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IPersistPropertyBag },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IQuickActivate },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IOleControl },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IOleObject },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IOleInPlaceActiveObject },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IViewObjectEx },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IViewObject2 },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IViewObject },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IOleInPlaceObjectWindowless },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IOleInPlaceObject },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IOleWindow },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IConnectionPointContainer },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IDropTarget },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IObjectWithSite },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_INSCTree2 },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_INSCTree },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IWinEventHandler },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IShellBrowser },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IFolderFilterSite },
|
||||
|
||||
{ NTDDI_VISTA, NTDDI_VISTASP4, &IID_INewMenuClient },
|
||||
{ NTDDI_VISTA, NTDDI_VISTASP4, &IID_IServiceProvider },
|
||||
{ NTDDI_VISTA, NTDDI_VISTASP4, &IID_INameSpaceTreeControl },
|
||||
{ NTDDI_VISTA, NTDDI_VISTASP4, &IID_IVisualProperties },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_TaskbarList),
|
||||
ID_NAME(CLSID_TaskbarList, NTDDI_MIN, NTDDI_VISTASP4),
|
||||
{
|
||||
{ 0x0, &IID_ITaskbarList2 },
|
||||
{ 0x0, &IID_ITaskbarList },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_ITaskbarList2 },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_ITaskbarList },
|
||||
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IUnknown },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_AttachmentServices ),
|
||||
ID_NAME(CLSID_AttachmentServices, NTDDI_MIN, NTDDI_MAX),
|
||||
{
|
||||
{ 0x0, &IID_IAttachmentExecute },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IAttachmentExecute },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
||||
}
|
||||
},
|
||||
};
|
||||
static const INT ExpectedInterfaceCount = RTL_NUMBER_OF(ExpectedInterfaces);
|
||||
|
||||
START_TEST(shdocvw)
|
||||
{
|
||||
TestClasses(L"shdocvw", ExpectedInterfaces, ExpectedInterfaceCount);
|
||||
TestClasses(L"shdocvw", ExpectedInterfaces, RTL_NUMBER_OF(ExpectedInterfaces));
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -4,26 +4,34 @@
|
||||
|
||||
extern void func_browseui(void);
|
||||
extern void func_certmgr(void);
|
||||
extern void func_combase(void);
|
||||
extern void func_explorerframe(void);
|
||||
extern void func_ieframe(void);
|
||||
extern void func_interfaces(void);
|
||||
extern void func_netcfgx(void);
|
||||
extern void func_netshell(void);
|
||||
extern void func_ole32(void);
|
||||
extern void func_prnfldr(void);
|
||||
extern void func_shdocvw(void);
|
||||
extern void func_shell32(void);
|
||||
extern void func_windows_storage(void);
|
||||
extern void func_zipfldr(void);
|
||||
|
||||
const struct test winetest_testlist[] =
|
||||
{
|
||||
{ "browseui", func_browseui },
|
||||
{ "certmgr", func_certmgr },
|
||||
{ "combase", func_combase },
|
||||
{ "explorerframe", func_explorerframe },
|
||||
{ "ieframe", func_ieframe },
|
||||
{ "interfaces", func_interfaces },
|
||||
{ "netcfgx", func_netcfgx },
|
||||
{ "netshell", func_netshell },
|
||||
{ "ole32", func_ole32 },
|
||||
{ "prnfldr", func_prnfldr },
|
||||
{ "shdocvw", func_shdocvw },
|
||||
{ "shell32", func_shell32 },
|
||||
{ "windows_storage", func_windows_storage },
|
||||
{ "zipfldr", func_zipfldr },
|
||||
|
||||
{ 0, 0 }
|
||||
|
189
modules/rostests/apitests/com/windows_storage.c
Normal file
189
modules/rostests/apitests/com/windows_storage.c
Normal file
@@ -0,0 +1,189 @@
|
||||
/*
|
||||
* PROJECT: ReactOS API Tests
|
||||
* LICENSE: MIT (https://spdx.org/licenses/MIT)
|
||||
* PURPOSE: COM interface test for windows.storage classes
|
||||
* COPYRIGHT: Copyright 2025 Carl Bialorucki <carl.bialorucki@reactos.org>
|
||||
*/
|
||||
|
||||
#include "com_apitest.h"
|
||||
|
||||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
||||
static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
|
||||
{
|
||||
{
|
||||
ID_NAME(CLSID_Internet, NTDDI_WIN10, NTDDI_MAX),
|
||||
{
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IObjectWithBackReferences },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IShellFolder2 },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IShellFolder },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IPersistFolder2 },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IPersistFolder },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IPersist },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IBrowserFrameOptions },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IUnknown },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_MruLongList, NTDDI_WIN10, NTDDI_MAX),
|
||||
{
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IUnknown },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_MruPidlList, NTDDI_WIN10, NTDDI_MAX),
|
||||
{
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IUnknown },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_MyComputer, NTDDI_WIN10, NTDDI_MAX),
|
||||
{
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IObjectWithSite },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IPersistFolder2 },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IPersistFolder },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IPersist },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IPersistPropertyBag },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IItemNameLimits },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_INewItemAdvisor },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IContextMenuCB },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IFolderFilter },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IShellIcon },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IStorage },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IObjectWithBackReferences },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IShellFolder2 },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IShellFolder },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IShellIconOverlay },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IDelegateHostItemContainer },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IBackReferencedObject },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_QueryAssociations, NTDDI_WIN10, NTDDI_MAX),
|
||||
{
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IQueryAssociations },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_SharedTaskScheduler, NTDDI_WIN10, NTDDI_MAX),
|
||||
{
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IShellTaskScheduler },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IMarshal},
|
||||
}
|
||||
},
|
||||
#if 0 // This crashes when un-initializing it. See ROSTESTS-405.
|
||||
{
|
||||
ID_NAME(CLSID_ShellDesktop, NTDDI_WIN10, NTDDI_MAX),
|
||||
{
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &CLSID_ShellDesktop },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IObjectWithSite },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IStorage },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IPersistFolder2 },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IPersistFolder },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IPersist },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IContextMenuCB },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IItemNameLimits },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IOleCommandTarget },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IObjectWithBackReferences },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IFolderFilter },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IShellIcon },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IShellFolder },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IShellFolder2 },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IShellIconOverlay },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IDelegateHostItemContainer },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IBackReferencedObject },
|
||||
}
|
||||
},
|
||||
#endif
|
||||
{
|
||||
ID_NAME(CLSID_ShellFSFolder, NTDDI_WIN10, NTDDI_MAX),
|
||||
{
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IObjectWithSite },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IShellFolder2 },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IShellFolder },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IShellIcon },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IShellIconOverlay },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IPersistFolder3 },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IPersistFolder2 },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IPersistFolder },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IPersist },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IStorage },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IItemNameLimits },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IContextMenuCB },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IOleCommandTarget },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IPersistPropertyBag },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IParentAndItem },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IObjectWithBackReferences },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IRemoteComputer },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IFolderType },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IBackReferencedObject },
|
||||
}
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_ShellItem, NTDDI_WIN10, NTDDI_MAX),
|
||||
{
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IMarshal },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IShellItem2 },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IShellItem },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IPersistIDList },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IParentAndItem },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IPersistStream },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IPersist },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IObjectWithBackReferences },
|
||||
},
|
||||
L"Both",
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_ShellLink, NTDDI_WIN10, NTDDI_MAX),
|
||||
{
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IMarshal },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IShellLinkA },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IShellLinkW },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IPersistStream },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IPersistFile },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IPersist },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IShellExtInit },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IContextMenu3 },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IContextMenu2 },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IContextMenu },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IDropTarget },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IQueryInfo },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IShellLinkDataList },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IExtractIconA },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IExtractIconW },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IExtractImage2 },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IExtractImage },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IPersistPropertyBag },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IServiceProvider },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IObjectWithSite },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IPropertyStore },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_ICustomizeInfoTip },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_ISLTracker },
|
||||
},
|
||||
L"Both",
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_ShellTaskScheduler, NTDDI_WIN10, NTDDI_MAX),
|
||||
{
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IShellTaskScheduler },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_WIN10, NTDDI_MAX, &IID_IMarshal},
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
START_TEST(windows_storage)
|
||||
{
|
||||
TestClassesEx(L"windows.storage",
|
||||
ExpectedInterfaces, RTL_NUMBER_OF(ExpectedInterfaces),
|
||||
NTDDI_WIN10, NTDDI_MAX,
|
||||
TRUE);
|
||||
}
|
@@ -10,101 +10,76 @@
|
||||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
||||
/*
|
||||
This is only tested on w10 & 2k3, so the defines might be wrong for the other versions.
|
||||
CLSID_ZipFolderStorageHandler and CLSID_ZipFolderContextMenu seem to be the same.
|
||||
*/
|
||||
|
||||
|
||||
static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
|
||||
{
|
||||
{
|
||||
ID_NAME(CLSID_ZipFolderStorageHandler),
|
||||
ID_NAME(CLSID_ZipFolderStorageHandler, NTDDI_MIN, NTDDI_MAX),
|
||||
{
|
||||
{ 0x0, &IID_IShellFolder2 },
|
||||
{ 0x0, &IID_IShellFolder },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_IStorage },
|
||||
{ 0x8, &IID_IContextMenu },
|
||||
{ 0xc, &IID_IShellExtInit },
|
||||
#if _WIN32_WINNT < 0x0a00
|
||||
{ 0x10, &IID_IPersistFile },
|
||||
{ 0x14, &IID_IPersistFolder2 },
|
||||
{ 0x14, &IID_IPersistFolder },
|
||||
{ 0x14, &IID_IPersist },
|
||||
#else
|
||||
{ 0x10, &IID_IPersistFolder2 },
|
||||
{ 0x10, &IID_IPersistFolder },
|
||||
{ 0x10, &IID_IPersist },
|
||||
{ 0x14, &IID_IFolderType },
|
||||
#endif
|
||||
{ NTDDI_MIN, NTDDI_WIN7SP1, &IID_IPersistFile },
|
||||
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IShellFolder2 },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IShellFolder },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IStorage },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IContextMenu },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IShellExtInit },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder2 },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersist },
|
||||
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_IFolderType},
|
||||
},
|
||||
L"Apartment"
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_ZipFolderSendTo),
|
||||
ID_NAME(CLSID_ZipFolderSendTo, NTDDI_MIN, NTDDI_MAX),
|
||||
{
|
||||
#if _WIN32_WINNT >= 0x0a00
|
||||
{ -0x8, &IID_IObjectWithSite },
|
||||
#endif
|
||||
{ 0x0, &IID_IDropTarget },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_IPersistFile },
|
||||
{ 0x4, &IID_IPersist },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IDropTarget },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersistFile },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersist },
|
||||
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_IObjectWithSite },
|
||||
},
|
||||
L"Apartment"
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_ZipFolderContextMenu),
|
||||
ID_NAME(CLSID_ZipFolderContextMenu, NTDDI_MIN, NTDDI_MAX),
|
||||
{
|
||||
{ 0x0, &IID_IShellFolder2 },
|
||||
{ 0x0, &IID_IShellFolder },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_IStorage },
|
||||
{ 0x8, &IID_IContextMenu },
|
||||
{ 0xc, &IID_IShellExtInit },
|
||||
#if _WIN32_WINNT < 0x0a00
|
||||
{ 0x10, &IID_IPersistFile },
|
||||
{ 0x14, &IID_IPersistFolder2 },
|
||||
{ 0x14, &IID_IPersistFolder },
|
||||
{ 0x14, &IID_IPersist },
|
||||
#else
|
||||
{ 0x10, &IID_IPersistFolder2 },
|
||||
{ 0x10, &IID_IPersistFolder },
|
||||
{ 0x10, &IID_IPersist },
|
||||
{ 0x14, &IID_IFolderType },
|
||||
#endif
|
||||
{ NTDDI_MIN, NTDDI_WIN7SP1, &IID_IPersistFile },
|
||||
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IShellFolder2 },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IShellFolder },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IStorage },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IContextMenu },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IShellExtInit },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder2 },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersistFolder },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IPersist },
|
||||
|
||||
{ NTDDI_VISTA, NTDDI_MAX, &IID_IFolderType},
|
||||
},
|
||||
L"Apartment"
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_ZipFolderRightDragHandler),
|
||||
ID_NAME(CLSID_ZipFolderRightDragHandler, NTDDI_MIN, NTDDI_MAX),
|
||||
{
|
||||
{ -0x4, &IID_IContextMenu },
|
||||
{ 0x0, &IID_IShellExtInit },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IContextMenu },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IShellExtInit },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
||||
},
|
||||
L"Apartment"
|
||||
},
|
||||
{
|
||||
ID_NAME(CLSID_ZipFolderDropHandler),
|
||||
ID_NAME(CLSID_ZipFolderDropHandler, NTDDI_MIN, NTDDI_MAX),
|
||||
{
|
||||
#if _WIN32_WINNT < 0x0a00
|
||||
{ 0x0, &IID_IDropTarget },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
{ 0x4, &IID_IPersistFile },
|
||||
{ 0x4, &IID_IPersist },
|
||||
#else
|
||||
{ -0x4, &IID_IDropTarget },
|
||||
{ 0x0, &IID_IUnknown },
|
||||
#endif
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IDropTarget },
|
||||
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
||||
|
||||
{ NTDDI_MIN, NTDDI_WIN7SP1, &IID_IPersistFile },
|
||||
{ NTDDI_MIN, NTDDI_WIN7SP1, &IID_IPersist },
|
||||
},
|
||||
L"Apartment"
|
||||
},
|
||||
};
|
||||
static const INT ExpectedInterfaceCount = RTL_NUMBER_OF(ExpectedInterfaces);
|
||||
|
||||
START_TEST(zipfldr)
|
||||
{
|
||||
TestClasses(L"zipfldr", ExpectedInterfaces, ExpectedInterfaceCount);
|
||||
TestClasses(L"zipfldr", ExpectedInterfaces, RTL_NUMBER_OF(ExpectedInterfaces));
|
||||
}
|
||||
|
@@ -110,6 +110,7 @@ Abstract:
|
||||
#define NTDDI_WS08SP3 NTDDI_WIN6SP3
|
||||
#define NTDDI_WS08SP4 NTDDI_WIN6SP4
|
||||
#define NTDDI_WIN7 0x06010000 // Windows 7
|
||||
#define NTDDI_WIN7SP1 0x06010100
|
||||
#define NTDDI_WIN8 0x06020000 // Windows 8
|
||||
#define NTDDI_WINBLUE 0x06030000 // Windows 8.1
|
||||
#define NTDDI_WINTHRESHOLD 0x0A000000 // Windows 10.0.10240 / 1507 / Threshold 1
|
||||
|
@@ -29,7 +29,7 @@ DEFINE_GUID(IID_ITrayPriv2, 0x9E83C057, 0xFF23, 0x6823, 0x1F, 0x4F,
|
||||
DEFINE_GUID(IID_IShellMenu2, 0x6F51C646, 0x0EFE, 0x4370, 0x88, 0x2A, 0xC1, 0xF6, 0x1C, 0xB2, 0x7C, 0x3B);
|
||||
DEFINE_GUID(IID_IWinEventHandler, 0xEA5F2D61, 0xE008, 0x11CF, 0x99, 0xCB, 0x00, 0xC0, 0x4F, 0xD6, 0x44, 0x97);
|
||||
DEFINE_GUID(IID_IShellMenuAcc, 0xFAF6FE96, 0xCE5E, 0x11D1, 0x83, 0x71, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0xD0);
|
||||
DEFINE_GUID(IID_IShellBrowserService, 0x1307EE17, 0xEA83, 0x49EB, 0x96, 0xB2, 0x3A, 0x28, 0xE2, 0xD7, 0x04, 0x8A);
|
||||
DEFINE_GUID(IID_IShellBrowserService_XP, 0x1307EE17, 0xEA83, 0x49EB, 0x96, 0xB2, 0x3A, 0x28, 0xE2, 0xD7, 0x04, 0x8A);
|
||||
DEFINE_GUID(IID_IShellFolderView, 0x37A378C0, 0xF82D, 0x11CE, 0xAE, 0x65, 0x08, 0x00, 0x2B, 0x2E, 0x12, 0x62);
|
||||
|
||||
DEFINE_GUID(SID_SProxyBrowser, 0x20C46561, 0x8491, 0x11CF, 0x96, 0x0C, 0x00, 0x80, 0xC7, 0xF4, 0xEE, 0x85);
|
||||
@@ -187,7 +187,8 @@ DEFINE_GUID(IID_IRegItemFolder, 0x81075FEB, 0x0A85, 0x439B, 0xB2, 0x5
|
||||
DEFINE_GUID(IID_IRootAndRelativeParsingFolder,0x52B14A6A,0x58F1,0x45BD,0xB0, 0x0A, 0xDC, 0xE7, 0x40, 0x3D, 0x95, 0x1E);
|
||||
DEFINE_GUID(IID_IScope, 0xDD8B42D6, 0x8162, 0x44B0, 0x8C, 0x27, 0x14, 0x71, 0x33, 0x18, 0xA0, 0xC6);
|
||||
DEFINE_GUID(IID_IScopeItem, 0x0A4E5B7D, 0x99E1, 0x4700, 0x93, 0xB1, 0x89, 0x52, 0x5E, 0xAD, 0xD0, 0x90);
|
||||
DEFINE_GUID(IID_IShellBrowserServce, 0xDFBC7E30, 0xF9E5, 0x455F, 0x88, 0xF8, 0xFA, 0x98, 0xC1, 0xE4, 0x94, 0xCA);
|
||||
DEFINE_GUID(IID_IShellBrowserService4, 0xF5A24314, 0x5B8B, 0x44FA, 0xBC, 0x2E, 0x31, 0x28, 0x55, 0x44, 0xB5, 0x20); /* Vista only */
|
||||
DEFINE_GUID(IID_IShellBrowserService, 0xDFBC7E30, 0xF9E5, 0x455F, 0x88, 0xF8, 0xFA, 0x98, 0xC1, 0xE4, 0x94, 0xCA); /* Windows 7, 8.1, 10 1607 */
|
||||
DEFINE_GUID(IID_IShellFolder3, 0x2EC06C64, 0x1296, 0x4F53, 0x89, 0xE5, 0xEC, 0xCE, 0x4E, 0xFC, 0x21, 0x89);
|
||||
DEFINE_GUID(IID_ITaskCondition, 0x8419D6C6, 0x78C6, 0x4AAF, 0xB4, 0xEB, 0x29, 0x1B, 0x43, 0x37, 0x4A, 0xED);
|
||||
DEFINE_GUID(IID_ITaskConditionCombiner, 0xD65AC459, 0x1187, 0x4C71, 0x88, 0x82, 0xDE, 0x09, 0x47, 0x23, 0x95, 0x29);
|
||||
|
Reference in New Issue
Block a user