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

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

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

86 lines
3.4 KiB
C

/*
* PROJECT: ReactOS API tests
* LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
* PURPOSE: COM interface test for zipfldr classes
* COPYRIGHT: Copyright 2017 Mark Jansen ([email protected])
*/
#include "com_apitest.h"
#define NDEBUG
#include <debug.h>
static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
{
{
ID_NAME(CLSID_ZipFolderStorageHandler, NTDDI_MIN, NTDDI_MAX),
{
{ 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},
},
},
{
ID_NAME(CLSID_ZipFolderSendTo, NTDDI_MIN, NTDDI_MAX),
{
{ 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 },
},
},
{
ID_NAME(CLSID_ZipFolderContextMenu, NTDDI_MIN, NTDDI_MAX),
{
{ 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},
},
},
{
ID_NAME(CLSID_ZipFolderRightDragHandler, NTDDI_MIN, NTDDI_MAX),
{
{ NTDDI_MIN, NTDDI_MAX, &IID_IContextMenu },
{ NTDDI_MIN, NTDDI_MAX, &IID_IShellExtInit },
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
},
},
{
ID_NAME(CLSID_ZipFolderDropHandler, NTDDI_MIN, NTDDI_MAX),
{
{ NTDDI_MIN, NTDDI_MAX, &IID_IDropTarget },
{ NTDDI_MIN, NTDDI_MAX, &IID_IUnknown },
{ NTDDI_MIN, NTDDI_WIN7SP1, &IID_IPersistFile },
{ NTDDI_MIN, NTDDI_WIN7SP1, &IID_IPersist },
},
},
};
START_TEST(zipfldr)
{
TestClasses(L"zipfldr", ExpectedInterfaces, RTL_NUMBER_OF(ExpectedInterfaces));
}