| /** |
| * This file has no copyright assigned and is placed in the Public Domain. |
| * This file is part of the mingw-w64 runtime package. |
| * No warranty is given; refer to the file DISCLAIMER.PD within this package. |
| */ |
| |
| #ifndef _WINCONTYPES_ |
| #define _WINCONTYPES_ |
| |
| #include <minwindef.h> |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) |
| |
| typedef struct _COORD { |
| SHORT X; |
| SHORT Y; |
| } COORD, *PCOORD; |
| |
| typedef struct _SMALL_RECT { |
| SHORT Left; |
| SHORT Top; |
| SHORT Right; |
| SHORT Bottom; |
| } SMALL_RECT, *PSMALL_RECT; |
| |
| typedef struct _KEY_EVENT_RECORD { |
| WINBOOL bKeyDown; |
| WORD wRepeatCount; |
| WORD wVirtualKeyCode; |
| WORD wVirtualScanCode; |
| union { |
| WCHAR UnicodeChar; |
| CHAR AsciiChar; |
| } uChar; |
| DWORD dwControlKeyState; |
| } KEY_EVENT_RECORD, *PKEY_EVENT_RECORD; |
| |
| #define RIGHT_ALT_PRESSED 0x0001 |
| #define LEFT_ALT_PRESSED 0x0002 |
| #define RIGHT_CTRL_PRESSED 0x0004 |
| #define LEFT_CTRL_PRESSED 0x0008 |
| #define SHIFT_PRESSED 0x0010 |
| #define NUMLOCK_ON 0x0020 |
| #define SCROLLLOCK_ON 0x0040 |
| #define CAPSLOCK_ON 0x0080 |
| #define ENHANCED_KEY 0x0100 |
| #define NLS_DBCSCHAR 0x00010000 |
| #define NLS_ALPHANUMERIC 0x00000000 |
| #define NLS_KATAKANA 0x00020000 |
| #define NLS_HIRAGANA 0x00040000 |
| #define NLS_ROMAN 0x00400000 |
| #define NLS_IME_CONVERSION 0x00800000 |
| #define ALTNUMPAD_BIT 0x04000000 |
| #define NLS_IME_DISABLE 0x20000000 |
| |
| typedef struct _MOUSE_EVENT_RECORD { |
| COORD dwMousePosition; |
| DWORD dwButtonState; |
| DWORD dwControlKeyState; |
| DWORD dwEventFlags; |
| } MOUSE_EVENT_RECORD, *PMOUSE_EVENT_RECORD; |
| |
| #define FROM_LEFT_1ST_BUTTON_PRESSED 0x0001 |
| #define RIGHTMOST_BUTTON_PRESSED 0x0002 |
| #define FROM_LEFT_2ND_BUTTON_PRESSED 0x0004 |
| #define FROM_LEFT_3RD_BUTTON_PRESSED 0x0008 |
| #define FROM_LEFT_4TH_BUTTON_PRESSED 0x0010 |
| |
| #define MOUSE_MOVED 0x0001 |
| #define DOUBLE_CLICK 0x0002 |
| #define MOUSE_WHEELED 0x0004 |
| #if (_WIN32_WINNT >= 0x0600) |
| #define MOUSE_HWHEELED 0x0008 |
| #endif /* _WIN32_WINNT >= 0x0600 */ |
| |
| typedef struct _WINDOW_BUFFER_SIZE_RECORD { |
| COORD dwSize; |
| } WINDOW_BUFFER_SIZE_RECORD, *PWINDOW_BUFFER_SIZE_RECORD; |
| |
| typedef struct _MENU_EVENT_RECORD { |
| UINT dwCommandId; |
| } MENU_EVENT_RECORD, *PMENU_EVENT_RECORD; |
| |
| typedef struct _FOCUS_EVENT_RECORD { |
| WINBOOL bSetFocus; |
| } FOCUS_EVENT_RECORD, *PFOCUS_EVENT_RECORD; |
| |
| typedef struct _INPUT_RECORD { |
| WORD EventType; |
| union { |
| KEY_EVENT_RECORD KeyEvent; |
| MOUSE_EVENT_RECORD MouseEvent; |
| WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent; |
| MENU_EVENT_RECORD MenuEvent; |
| FOCUS_EVENT_RECORD FocusEvent; |
| } Event; |
| } INPUT_RECORD, *PINPUT_RECORD; |
| |
| #define KEY_EVENT 0x0001 |
| #define MOUSE_EVENT 0x0002 |
| #define WINDOW_BUFFER_SIZE_EVENT 0x0004 |
| #define MENU_EVENT 0x0008 |
| #define FOCUS_EVENT 0x0010 |
| |
| typedef struct _CHAR_INFO { |
| union { |
| WCHAR UnicodeChar; |
| CHAR AsciiChar; |
| } Char; |
| WORD Attributes; |
| } CHAR_INFO, *PCHAR_INFO; |
| |
| typedef struct _CONSOLE_FONT_INFO { |
| DWORD nFont; |
| COORD dwFontSize; |
| } CONSOLE_FONT_INFO, *PCONSOLE_FONT_INFO; |
| |
| typedef VOID *HPCON; |
| |
| #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* _WINCONTYPES_ */ |