mirror of
https://github.com/reactos/reactos.git
synced 2024-07-07 21:25:05 +00:00
60 lines
1.2 KiB
C
60 lines
1.2 KiB
C
|
/*
|
||
|
* PROJECT: ReactOS api tests
|
||
|
* LICENSE: GPLv2+ - See COPYING in the top level directory
|
||
|
* PURPOSE: Test for the RegOpenKeyExW alignment
|
||
|
* PROGRAMMER: Mark Jansen <mark.jansen@reactos.org>
|
||
|
*/
|
||
|
#include <apitest.h>
|
||
|
|
||
|
#define WIN32_NO_STATUS
|
||
|
#include <winreg.h>
|
||
|
|
||
|
#include <pshpack1.h>
|
||
|
struct Unalignment1
|
||
|
{
|
||
|
char dum;
|
||
|
WCHAR buffer[20];
|
||
|
} Unalignment1;
|
||
|
struct Unalignment2
|
||
|
{
|
||
|
char dum;
|
||
|
HKEY hk;
|
||
|
} Unalignment2;
|
||
|
#include <poppack.h>
|
||
|
|
||
|
|
||
|
#define TEST_STR L".exe"
|
||
|
|
||
|
|
||
|
START_TEST(RegOpenKeyExW)
|
||
|
{
|
||
|
struct Unalignment1 un;
|
||
|
struct Unalignment2 un2;
|
||
|
HKEY hk;
|
||
|
LONG lRes;
|
||
|
|
||
|
memcpy(un.buffer, TEST_STR, sizeof(TEST_STR));
|
||
|
un2.hk = 0;
|
||
|
|
||
|
lRes = RegOpenKeyExW(HKEY_CLASSES_ROOT, TEST_STR, 0, KEY_READ, &hk);
|
||
|
ok_int(lRes, ERROR_SUCCESS);
|
||
|
if (lRes)
|
||
|
return;
|
||
|
RegCloseKey(hk);
|
||
|
|
||
|
ok_hex(((ULONG_PTR)un.buffer) % 2, 1);
|
||
|
lRes = RegOpenKeyExW(HKEY_CLASSES_ROOT, un.buffer, 0, KEY_READ, &hk);
|
||
|
ok_int(lRes, ERROR_SUCCESS);
|
||
|
if (!lRes)
|
||
|
RegCloseKey(hk);
|
||
|
|
||
|
ok_hex(((ULONG_PTR)&un2.hk) % 2, 1);
|
||
|
lRes = RegOpenKeyExW(HKEY_CLASSES_ROOT, TEST_STR, 0, KEY_READ, &un2.hk);
|
||
|
ok_int(lRes, ERROR_SUCCESS);
|
||
|
if (!lRes)
|
||
|
{
|
||
|
hk = un2.hk;
|
||
|
RegCloseKey(hk);
|
||
|
}
|
||
|
}
|