mirror of
https://github.com/reactos/reactos
synced 2025-10-06 00:12:51 +02:00
[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.
160 lines
6.1 KiB
C
160 lines
6.1 KiB
C
/*
|
|
* PROJECT: ReactOS api tests
|
|
* 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"
|
|
|
|
#define NDEBUG
|
|
#include <debug.h>
|
|
|
|
static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
|
|
{
|
|
/* CLSID_ConnectionCommonUi has two entries here because the
|
|
* threading model changed between Windows versions. */
|
|
{
|
|
ID_NAME(CLSID_ConnectionCommonUi, NTDDI_MIN, NTDDI_WS03),
|
|
{
|
|
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
|
},
|
|
L"Both"
|
|
},
|
|
{
|
|
ID_NAME(CLSID_ConnectionCommonUi, NTDDI_VISTA, NTDDI_MAX),
|
|
{
|
|
{ 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, NTDDI_MIN, NTDDI_MAX),
|
|
{
|
|
{ NTDDI_MIN, NTDDI_MAX, &IID_IEnumIDList },
|
|
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
|
},
|
|
L"Both"
|
|
},
|
|
{
|
|
ID_NAME(CLSID_ConnectionTray, NTDDI_MIN, NTDDI_WIN7SP1),
|
|
{
|
|
{ NTDDI_MIN, NTDDI_VISTASP4, &IID_IOleCommandTarget },
|
|
|
|
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
|
},
|
|
L"Both"
|
|
},
|
|
{
|
|
ID_NAME(CLSID_DialupConnectionUi, NTDDI_MIN, NTDDI_MAX),
|
|
{
|
|
{ NTDDI_MIN, NTDDI_MAX, &IID_INetConnectionConnectUi },
|
|
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
|
{ NTDDI_MIN, NTDDI_MAX, &IID_INetConnectionPropertyUi2 },
|
|
},
|
|
L"Both"
|
|
},
|
|
{
|
|
ID_NAME(CLSID_DirectConnectionUi, NTDDI_MIN, NTDDI_WS03SP4),
|
|
{
|
|
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_INetConnectionConnectUi },
|
|
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_IUnknown },
|
|
{ NTDDI_MIN, NTDDI_WS03SP4, &IID_INetConnectionPropertyUi2 },
|
|
},
|
|
L"Both"
|
|
},
|
|
{
|
|
ID_NAME(CLSID_InboundConnectionUi, NTDDI_MIN, NTDDI_MAX),
|
|
{
|
|
{ NTDDI_MIN, NTDDI_MAX, &IID_INetConnectionPropertyUi2 },
|
|
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
|
},
|
|
L"Both"
|
|
},
|
|
{
|
|
ID_NAME(CLSID_InternetConnectionUi, NTDDI_MIN, NTDDI_MAX),
|
|
{
|
|
{ NTDDI_MIN, NTDDI_MAX, &IID_INetConnectionConnectUi },
|
|
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
|
{ NTDDI_MIN, NTDDI_MAX, &IID_INetConnectionPropertyUi2 },
|
|
},
|
|
L"Both"
|
|
},
|
|
{
|
|
ID_NAME(CLSID_LanConnectionUi, NTDDI_MIN, NTDDI_MAX),
|
|
{
|
|
{ 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_NetConnectionUiUtilities, NTDDI_MIN, NTDDI_MAX),
|
|
{
|
|
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
|
|
},
|
|
L"Both"
|
|
},
|
|
{
|
|
ID_NAME(CLSID_SharedAccessConnectionUi, NTDDI_MIN, NTDDI_MAX),
|
|
{
|
|
{ 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_PPPoEUi, NTDDI_MIN, NTDDI_MAX),
|
|
{
|
|
{ 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"
|
|
},
|
|
};
|
|
|
|
START_TEST(netshell)
|
|
{
|
|
TestClasses(L"netshell", ExpectedInterfaces, RTL_NUMBER_OF(ExpectedInterfaces));
|
|
}
|