ReactOS 0.4.16-dev-1044-ga6558c0
SHIsBadInterfacePtr.cpp
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS API tests
3 * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
4 * PURPOSE: Test for SHIsBadInterfacePtr
5 * COPYRIGHT: Copyright 2025 Katayama Hirofumi MZ (katayama.hirofumi.mz@gmail.com)
6 */
7
8#include "shelltest.h"
9#include <undocshell.h>
10
12
16
18{
19 struct CUnknownVtbl
20 {
24 };
25 struct CUnknown { CUnknownVtbl *lpVtbl; };
26
27 BOOL ret;
30
32 {
33 skip("There is no SHIsBadInterfacePtr\n");
34 return;
35 }
36
38 ok_int(ret, TRUE);
39
40 CUnknown unk1 = { NULL };
42 ok_int(ret, TRUE);
43
44 CUnknownVtbl vtbl1 = { dummy_QueryInterface, dummy_AddRef, NULL };
45 CUnknown unk2 = { &vtbl1 };
46 ret = SHIsBadInterfacePtr(&unk2, 1);
47 ok_int(ret, TRUE);
48
49 CUnknownVtbl vtbl2 = { dummy_QueryInterface, dummy_AddRef, dummy_Release };
50 CUnknown unk3 = { &vtbl2 };
51 ret = SHIsBadInterfacePtr(&unk3, 1);
53}
BOOL(WINAPI * FN_SHIsBadInterfacePtr)(LPCVOID, UINT_PTR)
static ULONG STDMETHODCALLTYPE dummy_Release()
static HRESULT STDMETHODCALLTYPE dummy_QueryInterface(REFIID riid, LPVOID *ppvObj)
static ULONG STDMETHODCALLTYPE dummy_AddRef()
#define skip(...)
Definition: atltest.h:64
#define START_TEST(x)
Definition: atltest.h:75
#define ok_int(expression, result)
Definition: atltest.h:134
#define STDMETHODCALLTYPE
Definition: bdasup.h:9
_In_ BOOLEAN Release
Definition: cdrom.h:920
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define GetProcAddress(x, y)
Definition: compat.h:753
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
Definition: loader.c:838
EXTERN_C BOOL WINAPI SHIsBadInterfacePtr(_In_ LPCVOID pv, _In_ UINT_PTR ucb)
Definition: utils.cpp:1823
unsigned int BOOL
Definition: ntddk_ex.h:94
REFIID riid
Definition: atlbase.h:39
#define S_OK
Definition: intsafe.h:52
static HRESULT QueryInterface(REFIID, void **)
Definition: events.c:2587
static ULONG WINAPI AddRef(IStream *iface)
Definition: clist.c:90
static DWORD unk1
Definition: cursoricon.c:1638
unsigned __int3264 UINT_PTR
Definition: mstsclib_h.h:274
#define BOOL
Definition: nt_native.h:43
#define L(x)
Definition: ntvdm.h:50
#define REFIID
Definition: guiddef.h:118
uint32_t ULONG
Definition: typedefs.h:59
int ret
CONST void * LPCVOID
Definition: windef.h:191
#define HRESULT
Definition: msvc.h:7
#define WINAPI
Definition: msvc.h:6
#define MAKEINTRESOURCEA(i)
Definition: winuser.h:581