The KEY_EVENT_RECORD structure is used to report keyboard input events in a console INPUT_RECORD structure.
typedef struct _KEY_EVENT_RECORD { // ker BOOL bKeyDown; WORD wRepeatCount; WORD wVirtualKeyCode; WORD wVirtualScanCode; union { WCHAR UnicodeChar; CHAR AsciiChar; } uChar; DWORD dwControlKeyState; } KEY_EVENT_RECORD;
Value |
Meaning |
CAPSLOCK_ON |
The CAPS LOCK light is on. |
ENHANCED_KEY |
The key is enhanced. |
LEFT_ALT_PRESSED |
The left ALT key is pressed. |
LEFT_CTRL_PRESSED |
The left CTRL key is pressed. |
NUMLOCK_ON |
The NUM LOCK light is on. |
RIGHT_ALT_PRESSED |
The right ALT key is pressed. |
RIGHT_CTRL_PRESSED |
The right CTRL key is pressed. |
SCROLLLOCK_ON |
The SCROLL LOCK light is on. |
SHIFT_PRESSED |
The SHIFT key is pressed. |
Enhanced keys for the IBM® 101- and 102-key keyboards are the INS, DEL, HOME, END, PAGE UP, PAGE DOWN, and direction keys in the clusters to the left of the keypad; and the divide (/) and ENTER keys in the keypad.
Keyboard input events are generated when any key, including control keys, is pressed or released. However, the ALT key when pressed and released without combining with another character, has special meaning to Windows and is not passed through to the application. Also, the CTRL+C key combination is not passed through if the input handle is in processed mode (ENABLE_PROCESSED_INPUT).
PeekConsoleInput, ReadConsoleInput, WriteConsoleInput, INPUT_RECORD