| 1 | /** |
| 2 | * This file has no copyright assigned and is placed in the Public Domain. |
| 3 | * This file is part of the mingw-w64 runtime package. |
| 4 | * No warranty is given; refer to the file DISCLAIMER.PD within this package. |
| 5 | */ |
| 6 | |
| 7 | #ifndef _WINCONTYPES_ |
| 8 | #define _WINCONTYPES_ |
| 9 | |
| 10 | #include <minwindef.h> |
| 11 | |
| 12 | #ifdef __cplusplus |
| 13 | extern "C" { |
| 14 | #endif |
| 15 | |
| 16 | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) |
| 17 | |
| 18 | typedef struct _COORD { |
| 19 | SHORT X; |
| 20 | SHORT Y; |
| 21 | } COORD, *PCOORD; |
| 22 | |
| 23 | typedef struct _SMALL_RECT { |
| 24 | SHORT Left; |
| 25 | SHORT Top; |
| 26 | SHORT Right; |
| 27 | SHORT Bottom; |
| 28 | } SMALL_RECT, *PSMALL_RECT; |
| 29 | |
| 30 | typedef struct _KEY_EVENT_RECORD { |
| 31 | WINBOOL bKeyDown; |
| 32 | WORD wRepeatCount; |
| 33 | WORD wVirtualKeyCode; |
| 34 | WORD wVirtualScanCode; |
| 35 | union { |
| 36 | WCHAR UnicodeChar; |
| 37 | CHAR AsciiChar; |
| 38 | } uChar; |
| 39 | DWORD dwControlKeyState; |
| 40 | } KEY_EVENT_RECORD, *PKEY_EVENT_RECORD; |
| 41 | |
| 42 | #define RIGHT_ALT_PRESSED 0x0001 |
| 43 | #define LEFT_ALT_PRESSED 0x0002 |
| 44 | #define RIGHT_CTRL_PRESSED 0x0004 |
| 45 | #define LEFT_CTRL_PRESSED 0x0008 |
| 46 | #define SHIFT_PRESSED 0x0010 |
| 47 | #define NUMLOCK_ON 0x0020 |
| 48 | #define SCROLLLOCK_ON 0x0040 |
| 49 | #define CAPSLOCK_ON 0x0080 |
| 50 | #define ENHANCED_KEY 0x0100 |
| 51 | #define NLS_DBCSCHAR 0x00010000 |
| 52 | #define NLS_ALPHANUMERIC 0x00000000 |
| 53 | #define NLS_KATAKANA 0x00020000 |
| 54 | #define NLS_HIRAGANA 0x00040000 |
| 55 | #define NLS_ROMAN 0x00400000 |
| 56 | #define NLS_IME_CONVERSION 0x00800000 |
| 57 | #define ALTNUMPAD_BIT 0x04000000 |
| 58 | #define NLS_IME_DISABLE 0x20000000 |
| 59 | |
| 60 | typedef struct _MOUSE_EVENT_RECORD { |
| 61 | COORD dwMousePosition; |
| 62 | DWORD dwButtonState; |
| 63 | DWORD dwControlKeyState; |
| 64 | DWORD dwEventFlags; |
| 65 | } MOUSE_EVENT_RECORD, *PMOUSE_EVENT_RECORD; |
| 66 | |
| 67 | #define FROM_LEFT_1ST_BUTTON_PRESSED 0x0001 |
| 68 | #define RIGHTMOST_BUTTON_PRESSED 0x0002 |
| 69 | #define FROM_LEFT_2ND_BUTTON_PRESSED 0x0004 |
| 70 | #define FROM_LEFT_3RD_BUTTON_PRESSED 0x0008 |
| 71 | #define FROM_LEFT_4TH_BUTTON_PRESSED 0x0010 |
| 72 | |
| 73 | #define MOUSE_MOVED 0x0001 |
| 74 | #define DOUBLE_CLICK 0x0002 |
| 75 | #define MOUSE_WHEELED 0x0004 |
| 76 | #if (_WIN32_WINNT >= 0x0600) |
| 77 | #define MOUSE_HWHEELED 0x0008 |
| 78 | #endif /* _WIN32_WINNT >= 0x0600 */ |
| 79 | |
| 80 | typedef struct _WINDOW_BUFFER_SIZE_RECORD { |
| 81 | COORD dwSize; |
| 82 | } WINDOW_BUFFER_SIZE_RECORD, *PWINDOW_BUFFER_SIZE_RECORD; |
| 83 | |
| 84 | typedef struct _MENU_EVENT_RECORD { |
| 85 | UINT dwCommandId; |
| 86 | } MENU_EVENT_RECORD, *PMENU_EVENT_RECORD; |
| 87 | |
| 88 | typedef struct _FOCUS_EVENT_RECORD { |
| 89 | WINBOOL bSetFocus; |
| 90 | } FOCUS_EVENT_RECORD, *PFOCUS_EVENT_RECORD; |
| 91 | |
| 92 | typedef struct _INPUT_RECORD { |
| 93 | WORD EventType; |
| 94 | union { |
| 95 | KEY_EVENT_RECORD KeyEvent; |
| 96 | MOUSE_EVENT_RECORD MouseEvent; |
| 97 | WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent; |
| 98 | MENU_EVENT_RECORD MenuEvent; |
| 99 | FOCUS_EVENT_RECORD FocusEvent; |
| 100 | } Event; |
| 101 | } INPUT_RECORD, *PINPUT_RECORD; |
| 102 | |
| 103 | #define KEY_EVENT 0x0001 |
| 104 | #define MOUSE_EVENT 0x0002 |
| 105 | #define WINDOW_BUFFER_SIZE_EVENT 0x0004 |
| 106 | #define MENU_EVENT 0x0008 |
| 107 | #define FOCUS_EVENT 0x0010 |
| 108 | |
| 109 | typedef struct _CHAR_INFO { |
| 110 | union { |
| 111 | WCHAR UnicodeChar; |
| 112 | CHAR AsciiChar; |
| 113 | } Char; |
| 114 | WORD Attributes; |
| 115 | } CHAR_INFO, *PCHAR_INFO; |
| 116 | |
| 117 | typedef struct _CONSOLE_FONT_INFO { |
| 118 | DWORD nFont; |
| 119 | COORD dwFontSize; |
| 120 | } CONSOLE_FONT_INFO, *PCONSOLE_FONT_INFO; |
| 121 | |
| 122 | typedef VOID *HPCON; |
| 123 | |
| 124 | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ |
| 125 | |
| 126 | #ifdef __cplusplus |
| 127 | } |
| 128 | #endif |
| 129 | |
| 130 | #endif /* _WINCONTYPES_ */ |