ReactOS 0.4.16-dev-1946-g52006dd
keybd_event.c
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS api tests
3 * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
4 * PURPOSE: Test for keyboard inputs with flags KEYEVENTF_EXTENDEDKEY and KEYEVENTF_SCANCODE
5 * COPYRIGHT: Copyright 2021 Arjav Garg <arjavgarg@gmail.com>
6 */
7
8#include "precomp.h"
9
10static void testScancodeExtendedKey(BYTE wVk, BYTE scanCode)
11{
12 trace("wVK: %x\tScancode: %x\n", wVk, scanCode);
13
14 keybd_event(0, scanCode, KEYEVENTF_SCANCODE | KEYEVENTF_EXTENDEDKEY, 0);
15 SHORT winKeyState = GetAsyncKeyState(wVk);
16 ok(winKeyState & 0x8000, "VK=%x should be detected as key down.\n", wVk);
17
18 keybd_event(0, scanCode, KEYEVENTF_SCANCODE | KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
19 winKeyState = GetAsyncKeyState(wVk);
20 ok(!(winKeyState & 0x8000), "VK=%x should be detected as key up.\n", wVk);
21}
22
23/* https://learn.microsoft.com/en-us/windows/win32/inputdev/about-keyboard-input#extended-key-flag */
25{
42}
#define trace
Definition: atltest.h:70
#define ok(value,...)
Definition: atltest.h:57
#define START_TEST(x)
Definition: atltest.h:75
static void testScancodeExtendedKey(BYTE wVk, BYTE scanCode)
Definition: keybd_event.c:10
short SHORT
Definition: pedump.c:59
#define VK_UP
Definition: winuser.h:2261
#define VK_NEXT
Definition: winuser.h:2257
#define VK_RCONTROL
Definition: winuser.h:2321
#define VK_RETURN
Definition: winuser.h:2237
#define VK_RMENU
Definition: winuser.h:2323
#define VK_END
Definition: winuser.h:2258
#define VK_HOME
Definition: winuser.h:2259
#define VK_LWIN
Definition: winuser.h:2271
VOID WINAPI keybd_event(_In_ BYTE, _In_ BYTE, _In_ DWORD, _In_ ULONG_PTR)
#define VK_LEFT
Definition: winuser.h:2260
#define KEYEVENTF_EXTENDEDKEY
Definition: winuser.h:1112
#define VK_RIGHT
Definition: winuser.h:2262
#define VK_DOWN
Definition: winuser.h:2263
#define VK_PRIOR
Definition: winuser.h:2256
#define VK_DELETE
Definition: winuser.h:2269
SHORT WINAPI GetAsyncKeyState(_In_ int)
#define VK_DIVIDE
Definition: winuser.h:2290
#define KEYEVENTF_KEYUP
Definition: winuser.h:1113
#define VK_INSERT
Definition: winuser.h:2268
#define VK_RWIN
Definition: winuser.h:2272
unsigned char BYTE
Definition: xxhash.c:193