#ifndef __INCLUDE_KEYBOARD_H
#define __INCLUDE_KEYBOARD_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
#include <ntos/types.h>
+#include <wincon.h>
/* KEY_EVENT_RECORD structure */
#define CAPSLOCK_ON (128)
#define MENU_EVENT (8)
#define FOCUS_EVENT (16)
-
-typedef struct _KEY_EVENT_RECORD {
- BOOL bKeyDown;
- WORD wRepeatCount;
- WORD wVirtualKeyCode;
- WORD wVirtualScanCode;
- union {
- WCHAR UnicodeChar;
- CHAR AsciiChar;
- } uChar;
- DWORD dwControlKeyState;
-} KEY_EVENT_RECORD PACKED;
-
-typedef struct _MOUSE_EVENT_RECORD {
- COORD dwMousePosition;
- DWORD dwButtonState;
- DWORD dwControlKeyState;
- DWORD dwEventFlags;
-} MOUSE_EVENT_RECORD;
-
-typedef struct _WINDOW_BUFFER_SIZE_RECORD {
- COORD dwSize;
-} WINDOW_BUFFER_SIZE_RECORD;
-
-typedef struct _MENU_EVENT_RECORD {
- UINT dwCommandId;
-} MENU_EVENT_RECORD, *PMENU_EVENT_RECORD;
-
-typedef struct _FOCUS_EVENT_RECORD {
- BOOL bSetFocus;
-} FOCUS_EVENT_RECORD;
-
-typedef struct _INPUT_RECORD {
- WORD EventType;
- union {
-#ifndef __cplus_plus
- /* this will be the wrong size in c++ */
- KEY_EVENT_RECORD KeyEvent;
-#endif
- MOUSE_EVENT_RECORD MouseEvent;
- WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent;
- MENU_EVENT_RECORD MenuEvent;
- FOCUS_EVENT_RECORD FocusEvent;
- } Event;
-} INPUT_RECORD, *PINPUT_RECORD;
-
/* Virtual Key codes */
#define VK_LBUTTON (1)
#define VK_RBUTTON (2)