1 /*
2 * PROJECT: ReactOS api tests
3 * LICENSE: GPL - See COPYING in the top level directory
4 * PURPOSE: Test for NtUserCallHwndLock
5 * PROGRAMMERS:
6 */
7
8 #include "../win32nt.h"
9
10
11
12
13 HMENU g_hMenu;
14
15 void
Test_HwndLockRoutine_WindowHasShadow(HWND hWnd)16 Test_HwndLockRoutine_WindowHasShadow(HWND hWnd) /* 0x53 */
17 {
18 // TEST(NtUserCallHwndLock(hWnd, 0x53) == 0);
19
20 }
21
22
23 void
Test_HwndLockRoutine_ArrangeIconicWindows(HWND hWnd)24 Test_HwndLockRoutine_ArrangeIconicWindows(HWND hWnd) /* 0x54 */
25 {
26 // TEST(NtUserCallHwndLock(hWnd, _HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS) == 0);
27
28 }
29
30 void
Test_HwndLockRoutine_DrawMenuBar(HWND hWnd)31 Test_HwndLockRoutine_DrawMenuBar(HWND hWnd) /* 0x55 */
32 {
33 TEST(NtUserCallHwndLock(hWnd, 0x55) == 1);
34 return APISTATUS_NORMAL;
35 }
36
37 void
Test_HwndLockRoutine_CheckImeShowStatusInThread(HWND hWnd)38 Test_HwndLockRoutine_CheckImeShowStatusInThread(HWND hWnd) /* 0x56 */
39 {
40 TEST(NtUserCallHwndLock(hWnd, 0x56) != 0);
41
42 }
43
44 void
Test_HwndLockRoutine_GetSysMenuHandle(HWND hWnd)45 Test_HwndLockRoutine_GetSysMenuHandle(HWND hWnd) /* 0x57 */
46 {
47 NtUserCallHwndLock(hWnd, 0x5c);
48 // HMENU hMenu = (HMENU)NtUserCallHwndLock(hWnd, 0x57);
49 // TEST(hMenu != 0);
50
51 }
52
53 void
Test_HwndLockRoutine_RedrawFrame(HWND hWnd)54 Test_HwndLockRoutine_RedrawFrame(HWND hWnd) /* 0x58 */
55 {
56 // TEST(NtUserCallHwndLock(hWnd, 0x68) != 0);
57
58 }
59
60 void
Test_HwndLockRoutine_UpdateWindow(HWND hWnd)61 Test_HwndLockRoutine_UpdateWindow(HWND hWnd) /* 0x5e */
62 {
63 TEST(NtUserCallHwndLock(hWnd, 0x5e) == 1);
64
65 }
66
START_TEST(NtUserCallHwndLock)67 START_TEST(NtUserCallHwndLock)
68 {
69 HWND hWnd;
70 g_hMenu = CreateMenu();
71
72 hWnd = CreateWindowA("BUTTON",
73 "Test",
74 BS_PUSHBUTTON | WS_VISIBLE,
75 0,
76 0,
77 50,
78 30,
79 NULL,
80 g_hMenu,
81 g_hInstance,
82 0);
83 ASSERT(hWnd);
84
85 SetLastError(ERROR_SUCCESS);
86 TEST(NtUserCallHwndLock((HWND)-22, 999) == 0);
87 TEST(GetLastError() == ERROR_INVALID_WINDOW_HANDLE);
88
89 SetLastError(ERROR_SUCCESS);
90 TEST(NtUserCallHwndLock((HWND)0, 0x55) == 0);
91 TEST(GetLastError() == ERROR_INVALID_WINDOW_HANDLE);
92
93 SetLastError(ERROR_SUCCESS);
94 TEST(NtUserCallHwndLock(hWnd, 999) == 0);
95 TEST(GetLastError() == ERROR_SUCCESS);
96
97 Test_HwndLockRoutine_WindowHasShadow (hWnd); /* 0x53 */
98 Test_HwndLockRoutine_ArrangeIconicWindows(hWnd);
99 Test_HwndLockRoutine_DrawMenuBar(hWnd);
100 Test_HwndLockRoutine_CheckImeShowStatusInThread(hWnd);
101 Test_HwndLockRoutine_GetSysMenuHandle(hWnd);
102 Test_HwndLockRoutine_RedrawFrame(hWnd);
103
104 Test_HwndLockRoutine_UpdateWindow(hWnd);
105
106 DestroyWindow(hWnd);
107
108 }
109