#include "com_apitest.h"
#include <winreg.h>
#include <mshtmhst.h>
#include <shlwapi.h>
#include <commoncontrols.h>
#include <activscp.h>
#include <ndk/rtlfuncs.h>
#include <debug.h>
Go to the source code of this file.
|
static PCKNOWN_INTERFACE | FindInterface (_In_ const IID *iid) |
|
static BOOLEAN | IsInterfaceExpected (_In_ PCCLASS_AND_INTERFACES class, _In_ const IID *iid) |
|
static LONG | GetInterfaceOffset (_In_ PUNKNOWN pUnk, _In_ const IID *iid) |
|
static VOID | TestModuleInterfaces (_In_ PCCLASS_AND_INTERFACES ExpectedInterfaces, _In_ INT ExpectedInterfaceCount) |
|
static VOID | TestModuleRegistry (_In_ PCWSTR ModuleName, _In_ PCCLASS_AND_INTERFACES ExpectedInterfaces, _In_ INT ExpectedInterfaceCount) |
|
static VOID | TestManualInstantiation (_In_ PCWSTR ModuleName, _In_ PCCLASS_AND_INTERFACES ExpectedInterfaces, _In_ INT ExpectedInterfaceCount) |
|
VOID | TestClasses (_In_ PCWSTR ModuleName, _In_ PCCLASS_AND_INTERFACES ExpectedInterfaces, _In_ INT ExpectedInterfaceCount) |
|
static VOID | TestInterfaceRegistry (_In_ PCKNOWN_INTERFACE Interfaces, _In_ INT InterfaceCount) |
|
| START_TEST (interfaces) |
|
◆ ID_NAME
◆ IID_IDriveFolderExt
#define IID_IDriveFolderExt IID_IDriveFolderExtOld |
◆ IID_ITransferAdviseSink
#define IID_ITransferAdviseSink IID_ITransferAdviseSinkPriv |
◆ INTF_NOT_EXPOSED
◆ myskip
#define myskip |
( |
|
c, |
|
|
|
... |
|
) |
| ((c) ? 0 : (skip(__VA_ARGS__), 1)) |
◆ mytrace
Value: do { \
trace(__VA_ARGS__); \
} while (0)
Definition at line 21 of file com_apitest.c.
◆ NDEBUG
◆ KNOWN_INTERFACE
◆ PCKNOWN_INTERFACE
◆ FindInterface()
Definition at line 515 of file com_apitest.c.
517{
519
525}
static const INT KnownInterfaceCount
static KNOWN_INTERFACE KnownInterfaces[]
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define IsEqualIID(riid1, riid2)
Referenced by TestModuleInterfaces().
◆ GetInterfaceOffset()
Definition at line 544 of file com_apitest.c.
547{
552
553 hr = IUnknown_QueryInterface(
pUnk, iid, &pObj);
557
558 pUnk2 = pObj;
560 IUnknown_Release(pUnk2);
562}
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
Referenced by TestModuleInterfaces().
◆ IsInterfaceExpected()
◆ START_TEST()
START_TEST |
( |
interfaces |
| ) |
|
Definition at line 839 of file com_apitest.c.
840{
842}
static VOID TestInterfaceRegistry(_In_ PCKNOWN_INTERFACE Interfaces, _In_ INT InterfaceCount)
◆ TestClasses()
Definition at line 752 of file com_apitest.c.
756{
758
760 ok(
hr ==
S_OK,
"CoInitializeEx failed. hr=0x%lx\n",
hr);
762 return;
763
767
769}
ACPI_BUFFER *RetBuffer ACPI_BUFFER *RetBuffer char ACPI_WALK_RESOURCE_CALLBACK void *Context ACPI_BUFFER *RetBuffer UINT16 ACPI_RESOURCE **ResourcePtr ACPI_GENERIC_ADDRESS *Reg UINT32 *ReturnValue UINT8 UINT8 *Slp_TypB ACPI_PHYSICAL_ADDRESS PhysicalAddress64 UINT32 UINT32 *TimeElapsed UINT32 ACPI_STATUS const char UINT32 ACPI_STATUS const char UINT32 const char const char * ModuleName
static const CLASS_AND_INTERFACES ExpectedInterfaces[]
static const INT ExpectedInterfaceCount
static VOID TestModuleInterfaces(_In_ PCCLASS_AND_INTERFACES ExpectedInterfaces, _In_ INT ExpectedInterfaceCount)
static VOID TestModuleRegistry(_In_ PCWSTR ModuleName, _In_ PCCLASS_AND_INTERFACES ExpectedInterfaces, _In_ INT ExpectedInterfaceCount)
static VOID TestManualInstantiation(_In_ PCWSTR ModuleName, _In_ PCCLASS_AND_INTERFACES ExpectedInterfaces, _In_ INT ExpectedInterfaceCount)
HRESULT WINAPI DECLSPEC_HOTPATCH CoInitializeEx(LPVOID lpReserved, DWORD dwCoInit)
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
@ COINIT_APARTMENTTHREADED
Referenced by START_TEST().
◆ TestInterfaceRegistry()
Definition at line 773 of file com_apitest.c.
776{
780
784 {
785 for (
i = 0;
i < InterfaceCount;
i++)
786 {
795
796 iface = &Interfaces[
i];
800 continue;
801
804 {
806 }
807 else
808 {
811 }
814 continue;
815
820 {
826 if (expectedName)
827 expectedName++;
828 else
829 expectedName = iface->
wname;
830 ok(!
wcsicmp(
data, expectedName),
"Name is %ls, expected %ls\n",
data, expectedName);
831 }
832
834 }
836 }
837}
#define RegCloseKey(hKey)
#define NT_SUCCESS(StatCode)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
GLuint GLuint GLsizei GLenum type
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
NTSYSAPI NTSTATUS WINAPI RtlStringFromGUID(REFGUID, PUNICODE_STRING)
#define ERROR_FILE_NOT_FOUND
#define KEY_ENUMERATE_SUB_KEYS
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
#define HKEY_LOCAL_MACHINE
Referenced by START_TEST().
◆ TestManualInstantiation()
Definition at line 715 of file com_apitest.c.
719{
723
727 return;
728
730 {
735 ok(
hr ==
S_OK,
"DllGetClassObject failed for %s, hr = 0x%lx\n",
class->name,
hr);
737 {
740 ok(
hr ==
S_OK,
"IClassFactory::CreateInstance failed for %s, hr = 0x%lx\n",
class->name,
hr);
742 {
744 IUnknown_Release(
pUnk);
745 }
746 IClassFactory_Release(pCF);
747 }
748 }
749}
const GUID IID_IClassFactory
#define GetProcAddress(x, y)
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
DWORD WINAPI GetLastError(void)
Referenced by TestClasses().
◆ TestModuleInterfaces()
Definition at line 566 of file com_apitest.c.
569{
575
577 {
581 CLSCTX_INPROC_SERVER,
583 &pObj);
584 ok(
hr ==
S_OK,
"CoCreateInstance failed. hr=0x%lx\n",
hr);
586 {
587 skip(
"Failed to instantiate %s.\n",
class->name);
588 continue;
589 }
590
592
593
594 for (iIntf = 0; class->ifaces[iIntf].iid; iIntf++)
595 {
599 ok(0,
"%s is missing %s (offset %ld)\n",
class->name, iface->
name,
class->ifaces[iIntf].offset);
601 {
602#ifdef FAIL_WRONG_OFFSET
604#else
607#endif
608 }
609 }
610
611
613 {
617 continue;
619#ifdef GENERATE_TABLE_ENTRIES
621#else
623#endif
624 }
625
626
627
628 IUnknown_Release(
pUnk);
629 }
630}
static LONG GetInterfaceOffset(_In_ PUNKNOWN pUnk, _In_ const IID *iid)
static BOOLEAN IsInterfaceExpected(_In_ PCCLASS_AND_INTERFACES class, _In_ const IID *iid)
static PCKNOWN_INTERFACE FindInterface(_In_ const IID *iid)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
Referenced by TestClasses().
◆ TestModuleRegistry()
Definition at line 634 of file com_apitest.c.
638{
643
647 {
649 {
657 PCWSTR expectedThreadingModel;
658
663 continue;
664
669 continue;
670
675 continue;
676
681 {
686
690 }
691
696 {
701 expectedThreadingModel = class->ThreadingModel;
702 if (!expectedThreadingModel)
703 expectedThreadingModel =
L"Apartment";
704 ok(!
wcsicmp(
data, expectedThreadingModel),
"Server is %ls, expected %ls for %s\n",
data, expectedThreadingModel,
class->name);
705 }
706
708 }
710 }
711}
void WINAPI PathStripPathW(LPWSTR lpszPath)
void WINAPI PathRemoveExtensionW(LPWSTR lpszPath)
Referenced by TestClasses().
◆ KnownInterfaceCount
◆ KnownInterfaces