2015-12-28 20:31:10 +00:00
|
|
|
/*
|
|
|
|
* PROJECT: ReactOS api tests
|
|
|
|
* LICENSE: GPL - See COPYING in the top level directory
|
|
|
|
* PURPOSE: Test for NtUserCallOneParam
|
|
|
|
* PROGRAMMERS:
|
|
|
|
*/
|
2008-03-22 03:12:01 +00:00
|
|
|
|
2015-12-28 20:31:10 +00:00
|
|
|
#include <win32nt.h>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
Test_OneParamRoutine_BeginDeferWindowPos(void) /* 0x1e */
|
2008-03-22 03:12:01 +00:00
|
|
|
{
|
2019-01-30 13:55:10 +00:00
|
|
|
HDWP hWinPosInfo;
|
2008-03-22 03:12:01 +00:00
|
|
|
|
2019-01-30 13:55:10 +00:00
|
|
|
hWinPosInfo = (HDWP)NtUserCallOneParam(5, 0x1e);
|
|
|
|
TEST(hWinPosInfo != 0);
|
|
|
|
TEST(EndDeferWindowPos(hWinPosInfo) != 0);
|
2008-03-22 03:12:01 +00:00
|
|
|
|
|
|
|
}
|
|
|
|
|
2015-12-28 20:31:10 +00:00
|
|
|
void
|
|
|
|
Test_OneParamRoutine_WindowFromDC(void) /* 0x1f */
|
2008-03-22 03:12:01 +00:00
|
|
|
{
|
2019-01-30 13:55:10 +00:00
|
|
|
HDC hDC = GetDC(NULL);
|
|
|
|
HWND hWnd;
|
2008-03-22 03:12:01 +00:00
|
|
|
|
2019-01-30 13:55:10 +00:00
|
|
|
hWnd = (HWND)NtUserCallOneParam((DWORD)hDC, 0x1f);
|
|
|
|
TEST(hWnd != 0);
|
|
|
|
TEST(IsWindow(hWnd));
|
|
|
|
TEST(hWnd == GetDesktopWindow());
|
2008-03-22 03:12:01 +00:00
|
|
|
|
|
|
|
}
|
|
|
|
|
2015-12-28 20:31:10 +00:00
|
|
|
void
|
|
|
|
Test_OneParamRoutine_CreateEmptyCurObject(void) /* XP/2k3 : 0x21, vista 0x25 */
|
2010-07-14 14:56:53 +00:00
|
|
|
{
|
2019-01-30 13:55:10 +00:00
|
|
|
HICON hIcon ;
|
2010-07-14 14:56:53 +00:00
|
|
|
|
2019-01-30 13:55:10 +00:00
|
|
|
/* Test 0 */
|
|
|
|
hIcon = (HICON) NtUserCallOneParam(0, _ONEPARAM_ROUTINE_CREATEEMPTYCUROBJECT);
|
|
|
|
TEST(hIcon != NULL);
|
2010-07-14 14:56:53 +00:00
|
|
|
|
2019-01-30 13:55:10 +00:00
|
|
|
TEST(NtUserDestroyCursor(hIcon, 0) == TRUE);
|
2010-07-14 14:56:53 +00:00
|
|
|
|
2019-01-30 13:55:10 +00:00
|
|
|
/* Test Garbage */
|
|
|
|
hIcon = (HICON) NtUserCallOneParam(0xdeadbeef, _ONEPARAM_ROUTINE_CREATEEMPTYCUROBJECT);
|
|
|
|
TEST(hIcon != NULL);
|
2010-07-14 14:56:53 +00:00
|
|
|
|
2019-01-30 13:55:10 +00:00
|
|
|
TEST(NtUserDestroyCursor(hIcon, 0xbaadf00d) == TRUE);
|
2010-07-14 14:56:53 +00:00
|
|
|
|
|
|
|
}
|
|
|
|
|
2015-12-28 20:31:10 +00:00
|
|
|
void
|
|
|
|
Test_OneParamRoutine_MapDesktopObject(void) /* 0x30 */
|
2008-03-22 03:12:01 +00:00
|
|
|
{
|
2019-01-30 13:55:10 +00:00
|
|
|
DWORD pObject;
|
|
|
|
HWND hWnd;
|
|
|
|
HMENU hMenu;
|
2008-03-22 03:12:01 +00:00
|
|
|
|
2019-01-30 13:55:10 +00:00
|
|
|
hWnd = GetDesktopWindow();
|
|
|
|
pObject = NtUserCallOneParam((DWORD)hWnd, _ONEPARAM_ROUTINE_MAPDEKTOPOBJECT);
|
|
|
|
TEST(pObject > 0);
|
|
|
|
TEST(pObject < 0x80000000);
|
2008-03-22 03:12:01 +00:00
|
|
|
|
2019-01-30 13:55:10 +00:00
|
|
|
hMenu = CreateMenu();
|
|
|
|
pObject = NtUserCallOneParam((DWORD)hMenu, _ONEPARAM_ROUTINE_MAPDEKTOPOBJECT);
|
|
|
|
DestroyMenu(hMenu);
|
|
|
|
TEST(pObject > 0);
|
|
|
|
TEST(pObject < 0x80000000);
|
2008-03-22 03:12:01 +00:00
|
|
|
|
|
|
|
}
|
|
|
|
|
2015-12-28 20:31:10 +00:00
|
|
|
void
|
|
|
|
Test_OneParamRoutine_SwapMouseButtons(void) /* 0x42 */
|
2008-03-22 03:12:01 +00:00
|
|
|
{
|
2019-01-30 13:55:10 +00:00
|
|
|
BOOL bInverse;
|
2008-03-22 03:12:01 +00:00
|
|
|
|
2019-01-30 13:55:10 +00:00
|
|
|
NtUserCallOneParam(TRUE, _ONEPARAM_ROUTINE_SWAPMOUSEBUTTON);
|
|
|
|
bInverse = (BOOL)NtUserCallOneParam(FALSE, _ONEPARAM_ROUTINE_SWAPMOUSEBUTTON);
|
|
|
|
TEST(bInverse == TRUE);
|
|
|
|
bInverse = (BOOL)NtUserCallOneParam(FALSE, _ONEPARAM_ROUTINE_SWAPMOUSEBUTTON);
|
|
|
|
TEST(bInverse == FALSE);
|
2008-03-22 03:12:01 +00:00
|
|
|
|
2019-01-30 13:55:10 +00:00
|
|
|
// TODO: test other values
|
2008-03-22 03:12:01 +00:00
|
|
|
}
|
|
|
|
|
2015-12-28 20:31:10 +00:00
|
|
|
START_TEST(NtUserCallOneParam)
|
2008-03-22 03:12:01 +00:00
|
|
|
{
|
2019-01-30 13:55:10 +00:00
|
|
|
Test_OneParamRoutine_BeginDeferWindowPos(); /* 0x1e */
|
|
|
|
Test_OneParamRoutine_WindowFromDC(); /* 0x1f */
|
|
|
|
Test_OneParamRoutine_CreateEmptyCurObject(); /* XP/2k3 : 0x21, vista 0x25 */
|
|
|
|
Test_OneParamRoutine_MapDesktopObject(); /* 0x30 */
|
|
|
|
Test_OneParamRoutine_SwapMouseButtons(); /* 0x42 */
|
2008-03-22 03:12:01 +00:00
|
|
|
}
|