[ADVAPI32_APITEST] Addendum to 75585, use void pointers to work around gcc ignoring...
[reactos.git] / rostests / apitests / advapi32 / RegOpenKeyExW.c
1 /*
2 * PROJECT: ReactOS api tests
3 * LICENSE: GPLv2+ - See COPYING in the top level directory
4 * PURPOSE: Test for the RegOpenKeyExW alignment
5 * PROGRAMMER: Mark Jansen (mark.jansen@reactos.org)
6 */
7 #include <apitest.h>
8
9 #define WIN32_NO_STATUS
10 #include <winreg.h>
11
12
13 #define TEST_STR L".exe"
14
15
16 START_TEST(RegOpenKeyExW)
17 {
18 char GccShouldNotAlignThis[20 * 2];
19 char GccShouldNotAlignThis2[20];
20 PVOID Alias = GccShouldNotAlignThis + 1;
21 PVOID UnalignedKey = GccShouldNotAlignThis2 + 1;
22 HKEY hk;
23 LONG lRes;
24
25 memcpy(Alias, TEST_STR, sizeof(TEST_STR));
26
27 lRes = RegOpenKeyExW(HKEY_CLASSES_ROOT, TEST_STR, 0, KEY_READ, &hk);
28 ok_int(lRes, ERROR_SUCCESS);
29 if (lRes)
30 return;
31 RegCloseKey(hk);
32
33 ok_hex(((ULONG_PTR)Alias) % 2, 1);
34 lRes = RegOpenKeyExW(HKEY_CLASSES_ROOT, Alias, 0, KEY_READ, &hk);
35 ok_int(lRes, ERROR_SUCCESS);
36 if (!lRes)
37 RegCloseKey(hk);
38
39 ok_hex(((ULONG_PTR)UnalignedKey) % 2, 1);
40 lRes = RegOpenKeyExW(HKEY_CLASSES_ROOT, TEST_STR, 0, KEY_READ, UnalignedKey);
41 ok_int(lRes, ERROR_SUCCESS);
42 if (!lRes)
43 {
44 RegCloseKey(*(HKEY*)(UnalignedKey));
45 }
46 }