File Index Symbol Index

/*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: wincontypes.h Abstract: This module contains the common data types exported by the NT console subsystem. Created: 08-Sep-2017 Revision History: 26-Oct-1990 - Originally created in wincon.h --*/
#ifndef _WINCONTYPES_
#define _WINCONTYPES_
#pragma once
#include <minwindef.h>
#ifdef __cplusplus
extern
"C"
{
#endif
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
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
{
BOOL
bKeyDown
;
WORD
wRepeatCount
;
WORD
wVirtualKeyCode
;
WORD
wVirtualScanCode
;
union
{
WCHAR
UnicodeChar
;
CHAR
AsciiChar
; }
uChar
;
DWORD
dwControlKeyState
; }
KEY_EVENT_RECORD
, *
PKEY_EVENT_RECORD
;
//
// ControlKeyState flags
//
#define RIGHT_ALT_PRESSED 0x0001 // the right alt key is pressed.
#define LEFT_ALT_PRESSED 0x0002 // the left alt key is pressed.
#define RIGHT_CTRL_PRESSED 0x0004 // the right ctrl key is pressed.
#define LEFT_CTRL_PRESSED 0x0008 // the left ctrl key is pressed.
#define SHIFT_PRESSED 0x0010 // the shift key is pressed.
#define NUMLOCK_ON 0x0020 // the numlock light is on.
#define SCROLLLOCK_ON 0x0040 // the scrolllock light is on.
#define CAPSLOCK_ON 0x0080 // the capslock light is on.
#define ENHANCED_KEY 0x0100 // the key is enhanced.
#define NLS_DBCSCHAR 0x00010000 // DBCS for JPN: SBCS/DBCS mode.
#define NLS_ALPHANUMERIC 0x00000000 // DBCS for JPN: Alphanumeric mode.
#define NLS_KATAKANA 0x00020000 // DBCS for JPN: Katakana mode.
#define NLS_HIRAGANA 0x00040000 // DBCS for JPN: Hiragana mode.
#define NLS_ROMAN 0x00400000 // DBCS for JPN: Roman/Noroman mode.
#define NLS_IME_CONVERSION 0x00800000 // DBCS for JPN: IME conversion.
#define ALTNUMPAD_BIT 0x04000000 // AltNumpad OEM char (copied from ntuser\inc\kbd.h) ;internal_NT
#define NLS_IME_DISABLE 0x20000000 // DBCS for JPN: IME enable/disable.
typedef
struct
_MOUSE_EVENT_RECORD
{
COORD
dwMousePosition
;
DWORD
dwButtonState
;
DWORD
dwControlKeyState
;
DWORD
dwEventFlags
; }
MOUSE_EVENT_RECORD
, *
PMOUSE_EVENT_RECORD
;
//
// ButtonState flags
//
#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
//
// EventFlags
//
#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
{
BOOL
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
;
//
// EventType flags:
//
#define KEY_EVENT 0x0001 // Event contains key event record
#define MOUSE_EVENT 0x0002 // Event contains mouse event record
#define WINDOW_BUFFER_SIZE_EVENT 0x0004 // Event contains window change event record
#define MENU_EVENT 0x0008 // Event contains menu event record
#define FOCUS_EVENT 0x0010 // event contains focus change
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
;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#ifdef __cplusplus
}
#endif
#endif // _WINCONTYPES_