win64: use new headers from mingw
[tinycc/kirr.git] / win32 / include / winapi / wincon.h
bloba3501ee705b2eb1d212d3d2d9afb3db636a72e66
1 /**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the w64 mingw-runtime package.
4 * No warranty is given; refer to the file DISCLAIMER within this package.
5 */
6 #ifndef _WINCON_
7 #define _WINCON_
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
13 typedef struct _COORD {
14 SHORT X;
15 SHORT Y;
16 } COORD,*PCOORD;
18 typedef struct _SMALL_RECT {
19 SHORT Left;
20 SHORT Top;
21 SHORT Right;
22 SHORT Bottom;
23 } SMALL_RECT,*PSMALL_RECT;
25 typedef struct _KEY_EVENT_RECORD {
26 WINBOOL bKeyDown;
27 WORD wRepeatCount;
28 WORD wVirtualKeyCode;
29 WORD wVirtualScanCode;
30 union {
31 WCHAR UnicodeChar;
32 CHAR AsciiChar;
33 } uChar;
34 DWORD dwControlKeyState;
35 } KEY_EVENT_RECORD,*PKEY_EVENT_RECORD;
37 #define RIGHT_ALT_PRESSED 0x1
38 #define LEFT_ALT_PRESSED 0x2
39 #define RIGHT_CTRL_PRESSED 0x4
40 #define LEFT_CTRL_PRESSED 0x8
41 #define SHIFT_PRESSED 0x10
42 #define NUMLOCK_ON 0x20
43 #define SCROLLLOCK_ON 0x40
44 #define CAPSLOCK_ON 0x80
45 #define ENHANCED_KEY 0x100
46 #define NLS_DBCSCHAR 0x10000
47 #define NLS_ALPHANUMERIC 0x0
48 #define NLS_KATAKANA 0x20000
49 #define NLS_HIRAGANA 0x40000
50 #define NLS_ROMAN 0x400000
51 #define NLS_IME_CONVERSION 0x800000
52 #define NLS_IME_DISABLE 0x20000000
54 typedef struct _MOUSE_EVENT_RECORD {
55 COORD dwMousePosition;
56 DWORD dwButtonState;
57 DWORD dwControlKeyState;
58 DWORD dwEventFlags;
59 } MOUSE_EVENT_RECORD,*PMOUSE_EVENT_RECORD;
61 #define FROM_LEFT_1ST_BUTTON_PRESSED 0x1
62 #define RIGHTMOST_BUTTON_PRESSED 0x2
63 #define FROM_LEFT_2ND_BUTTON_PRESSED 0x4
64 #define FROM_LEFT_3RD_BUTTON_PRESSED 0x8
65 #define FROM_LEFT_4TH_BUTTON_PRESSED 0x10
67 #define MOUSE_MOVED 0x1
68 #define DOUBLE_CLICK 0x2
69 #define MOUSE_WHEELED 0x4
71 typedef struct _WINDOW_BUFFER_SIZE_RECORD {
72 COORD dwSize;
73 } WINDOW_BUFFER_SIZE_RECORD,*PWINDOW_BUFFER_SIZE_RECORD;
75 typedef struct _MENU_EVENT_RECORD {
76 UINT dwCommandId;
77 } MENU_EVENT_RECORD,*PMENU_EVENT_RECORD;
79 typedef struct _FOCUS_EVENT_RECORD {
80 WINBOOL bSetFocus;
81 } FOCUS_EVENT_RECORD,*PFOCUS_EVENT_RECORD;
83 typedef struct _INPUT_RECORD {
84 WORD EventType;
85 union {
86 KEY_EVENT_RECORD KeyEvent;
87 MOUSE_EVENT_RECORD MouseEvent;
88 WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent;
89 MENU_EVENT_RECORD MenuEvent;
90 FOCUS_EVENT_RECORD FocusEvent;
91 } Event;
92 } INPUT_RECORD,*PINPUT_RECORD;
94 #define KEY_EVENT 0x1
95 #define MOUSE_EVENT 0x2
96 #define WINDOW_BUFFER_SIZE_EVENT 0x4
97 #define MENU_EVENT 0x8
98 #define FOCUS_EVENT 0x10
100 typedef struct _CHAR_INFO {
101 union {
102 WCHAR UnicodeChar;
103 CHAR AsciiChar;
104 } Char;
105 WORD Attributes;
106 } CHAR_INFO,*PCHAR_INFO;
108 #define FOREGROUND_BLUE 0x1
109 #define FOREGROUND_GREEN 0x2
110 #define FOREGROUND_RED 0x4
111 #define FOREGROUND_INTENSITY 0x8
112 #define BACKGROUND_BLUE 0x10
113 #define BACKGROUND_GREEN 0x20
114 #define BACKGROUND_RED 0x40
115 #define BACKGROUND_INTENSITY 0x80
116 #define COMMON_LVB_LEADING_BYTE 0x100
117 #define COMMON_LVB_TRAILING_BYTE 0x200
118 #define COMMON_LVB_GRID_HORIZONTAL 0x400
119 #define COMMON_LVB_GRID_LVERTICAL 0x800
120 #define COMMON_LVB_GRID_RVERTICAL 0x1000
121 #define COMMON_LVB_REVERSE_VIDEO 0x4000
122 #define COMMON_LVB_UNDERSCORE 0x8000
124 #define COMMON_LVB_SBCSDBCS 0x300
126 typedef struct _CONSOLE_SCREEN_BUFFER_INFO {
127 COORD dwSize;
128 COORD dwCursorPosition;
129 WORD wAttributes;
130 SMALL_RECT srWindow;
131 COORD dwMaximumWindowSize;
132 } CONSOLE_SCREEN_BUFFER_INFO,*PCONSOLE_SCREEN_BUFFER_INFO;
134 typedef struct _CONSOLE_CURSOR_INFO {
135 DWORD dwSize;
136 WINBOOL bVisible;
137 } CONSOLE_CURSOR_INFO,*PCONSOLE_CURSOR_INFO;
139 typedef struct _CONSOLE_FONT_INFO {
140 DWORD nFont;
141 COORD dwFontSize;
142 } CONSOLE_FONT_INFO,*PCONSOLE_FONT_INFO;
144 typedef struct _CONSOLE_SELECTION_INFO {
145 DWORD dwFlags;
146 COORD dwSelectionAnchor;
147 SMALL_RECT srSelection;
148 } CONSOLE_SELECTION_INFO,*PCONSOLE_SELECTION_INFO;
150 #define CONSOLE_NO_SELECTION 0x0
151 #define CONSOLE_SELECTION_IN_PROGRESS 0x1
152 #define CONSOLE_SELECTION_NOT_EMPTY 0x2
153 #define CONSOLE_MOUSE_SELECTION 0x4
154 #define CONSOLE_MOUSE_DOWN 0x8
156 typedef WINBOOL (WINAPI *PHANDLER_ROUTINE)(DWORD CtrlType);
158 #define CTRL_C_EVENT 0
159 #define CTRL_BREAK_EVENT 1
160 #define CTRL_CLOSE_EVENT 2
162 #define CTRL_LOGOFF_EVENT 5
163 #define CTRL_SHUTDOWN_EVENT 6
165 #define ENABLE_PROCESSED_INPUT 0x1
166 #define ENABLE_LINE_INPUT 0x2
167 #define ENABLE_ECHO_INPUT 0x4
168 #define ENABLE_WINDOW_INPUT 0x8
169 #define ENABLE_MOUSE_INPUT 0x10
171 #define ENABLE_PROCESSED_OUTPUT 0x1
172 #define ENABLE_WRAP_AT_EOL_OUTPUT 0x2
174 #ifdef UNICODE
175 #define PeekConsoleInput PeekConsoleInputW
176 #define ReadConsoleInput ReadConsoleInputW
177 #define WriteConsoleInput WriteConsoleInputW
178 #define ReadConsoleOutput ReadConsoleOutputW
179 #define WriteConsoleOutput WriteConsoleOutputW
180 #define ReadConsoleOutputCharacter ReadConsoleOutputCharacterW
181 #define WriteConsoleOutputCharacter WriteConsoleOutputCharacterW
182 #define FillConsoleOutputCharacter FillConsoleOutputCharacterW
183 #define ScrollConsoleScreenBuffer ScrollConsoleScreenBufferW
184 #define GetConsoleTitle GetConsoleTitleW
185 #define SetConsoleTitle SetConsoleTitleW
186 #define ReadConsole ReadConsoleW
187 #define WriteConsole WriteConsoleW
188 #define AddConsoleAlias AddConsoleAliasW
189 #define GetConsoleAlias GetConsoleAliasW
190 #define GetConsoleAliasesLength GetConsoleAliasesLengthW
191 #define GetConsoleAliasExesLength GetConsoleAliasExesLengthW
192 #define GetConsoleAliases GetConsoleAliasesW
193 #define GetConsoleAliasExes GetConsoleAliasExesW
194 #else
195 #define PeekConsoleInput PeekConsoleInputA
196 #define ReadConsoleInput ReadConsoleInputA
197 #define WriteConsoleInput WriteConsoleInputA
198 #define ReadConsoleOutput ReadConsoleOutputA
199 #define WriteConsoleOutput WriteConsoleOutputA
200 #define ReadConsoleOutputCharacter ReadConsoleOutputCharacterA
201 #define WriteConsoleOutputCharacter WriteConsoleOutputCharacterA
202 #define FillConsoleOutputCharacter FillConsoleOutputCharacterA
203 #define ScrollConsoleScreenBuffer ScrollConsoleScreenBufferA
204 #define GetConsoleTitle GetConsoleTitleA
205 #define SetConsoleTitle SetConsoleTitleA
206 #define ReadConsole ReadConsoleA
207 #define WriteConsole WriteConsoleA
208 #define AddConsoleAlias AddConsoleAliasA
209 #define GetConsoleAlias GetConsoleAliasA
210 #define GetConsoleAliasesLength GetConsoleAliasesLengthA
211 #define GetConsoleAliasExesLength GetConsoleAliasExesLengthA
212 #define GetConsoleAliases GetConsoleAliasesA
213 #define GetConsoleAliasExes GetConsoleAliasExesA
214 #endif
216 WINBASEAPI WINBOOL WINAPI PeekConsoleInputA(HANDLE hConsoleInput,PINPUT_RECORD lpBuffer,DWORD nLength,LPDWORD lpNumberOfEventsRead);
217 WINBASEAPI WINBOOL WINAPI PeekConsoleInputW(HANDLE hConsoleInput,PINPUT_RECORD lpBuffer,DWORD nLength,LPDWORD lpNumberOfEventsRead);
218 WINBASEAPI WINBOOL WINAPI ReadConsoleInputA(HANDLE hConsoleInput,PINPUT_RECORD lpBuffer,DWORD nLength,LPDWORD lpNumberOfEventsRead);
219 WINBASEAPI WINBOOL WINAPI ReadConsoleInputW(HANDLE hConsoleInput,PINPUT_RECORD lpBuffer,DWORD nLength,LPDWORD lpNumberOfEventsRead);
220 WINBASEAPI WINBOOL WINAPI WriteConsoleInputA(HANDLE hConsoleInput,CONST INPUT_RECORD *lpBuffer,DWORD nLength,LPDWORD lpNumberOfEventsWritten);
221 WINBASEAPI WINBOOL WINAPI WriteConsoleInputW(HANDLE hConsoleInput,CONST INPUT_RECORD *lpBuffer,DWORD nLength,LPDWORD lpNumberOfEventsWritten);
222 WINBASEAPI WINBOOL WINAPI ReadConsoleOutputA(HANDLE hConsoleOutput,PCHAR_INFO lpBuffer,COORD dwBufferSize,COORD dwBufferCoord,PSMALL_RECT lpReadRegion);
223 WINBASEAPI WINBOOL WINAPI ReadConsoleOutputW(HANDLE hConsoleOutput,PCHAR_INFO lpBuffer,COORD dwBufferSize,COORD dwBufferCoord,PSMALL_RECT lpReadRegion);
224 WINBASEAPI WINBOOL WINAPI WriteConsoleOutputA(HANDLE hConsoleOutput,CONST CHAR_INFO *lpBuffer,COORD dwBufferSize,COORD dwBufferCoord,PSMALL_RECT lpWriteRegion);
225 WINBASEAPI WINBOOL WINAPI WriteConsoleOutputW(HANDLE hConsoleOutput,CONST CHAR_INFO *lpBuffer,COORD dwBufferSize,COORD dwBufferCoord,PSMALL_RECT lpWriteRegion);
226 WINBASEAPI WINBOOL WINAPI ReadConsoleOutputCharacterA(HANDLE hConsoleOutput,LPSTR lpCharacter,DWORD nLength,COORD dwReadCoord,LPDWORD lpNumberOfCharsRead);
227 WINBASEAPI WINBOOL WINAPI ReadConsoleOutputCharacterW(HANDLE hConsoleOutput,LPWSTR lpCharacter,DWORD nLength,COORD dwReadCoord,LPDWORD lpNumberOfCharsRead);
228 WINBASEAPI WINBOOL WINAPI ReadConsoleOutputAttribute(HANDLE hConsoleOutput,LPWORD lpAttribute,DWORD nLength,COORD dwReadCoord,LPDWORD lpNumberOfAttrsRead);
229 WINBASEAPI WINBOOL WINAPI WriteConsoleOutputCharacterA(HANDLE hConsoleOutput,LPCSTR lpCharacter,DWORD nLength,COORD dwWriteCoord,LPDWORD lpNumberOfCharsWritten);
230 WINBASEAPI WINBOOL WINAPI WriteConsoleOutputCharacterW(HANDLE hConsoleOutput,LPCWSTR lpCharacter,DWORD nLength,COORD dwWriteCoord,LPDWORD lpNumberOfCharsWritten);
231 WINBASEAPI WINBOOL WINAPI WriteConsoleOutputAttribute(HANDLE hConsoleOutput,CONST WORD *lpAttribute,DWORD nLength,COORD dwWriteCoord,LPDWORD lpNumberOfAttrsWritten);
232 WINBASEAPI WINBOOL WINAPI FillConsoleOutputCharacterA(HANDLE hConsoleOutput,CHAR cCharacter,DWORD nLength,COORD dwWriteCoord,LPDWORD lpNumberOfCharsWritten);
233 WINBASEAPI WINBOOL WINAPI FillConsoleOutputCharacterW(HANDLE hConsoleOutput,WCHAR cCharacter,DWORD nLength,COORD dwWriteCoord,LPDWORD lpNumberOfCharsWritten);
234 WINBASEAPI WINBOOL WINAPI FillConsoleOutputAttribute(HANDLE hConsoleOutput,WORD wAttribute,DWORD nLength,COORD dwWriteCoord,LPDWORD lpNumberOfAttrsWritten);
235 WINBASEAPI WINBOOL WINAPI GetConsoleMode(HANDLE hConsoleHandle,LPDWORD lpMode);
236 WINBASEAPI WINBOOL WINAPI GetNumberOfConsoleInputEvents(HANDLE hConsoleInput,LPDWORD lpNumberOfEvents);
237 WINBASEAPI WINBOOL WINAPI GetConsoleScreenBufferInfo(HANDLE hConsoleOutput,PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo);
238 WINBASEAPI COORD WINAPI GetLargestConsoleWindowSize(HANDLE hConsoleOutput);
239 WINBASEAPI WINBOOL WINAPI GetConsoleCursorInfo(HANDLE hConsoleOutput,PCONSOLE_CURSOR_INFO lpConsoleCursorInfo);
240 WINBASEAPI WINBOOL WINAPI GetCurrentConsoleFont(HANDLE hConsoleOutput,WINBOOL bMaximumWindow,PCONSOLE_FONT_INFO lpConsoleCurrentFont);
241 WINBASEAPI COORD WINAPI GetConsoleFontSize(HANDLE hConsoleOutput,DWORD nFont);
242 WINBASEAPI WINBOOL WINAPI GetConsoleSelectionInfo(PCONSOLE_SELECTION_INFO lpConsoleSelectionInfo);
243 WINBASEAPI WINBOOL WINAPI GetNumberOfConsoleMouseButtons(LPDWORD lpNumberOfMouseButtons);
244 WINBASEAPI WINBOOL WINAPI SetConsoleMode(HANDLE hConsoleHandle,DWORD dwMode);
245 WINBASEAPI WINBOOL WINAPI SetConsoleActiveScreenBuffer(HANDLE hConsoleOutput);
246 WINBASEAPI WINBOOL WINAPI FlushConsoleInputBuffer(HANDLE hConsoleInput);
247 WINBASEAPI WINBOOL WINAPI SetConsoleScreenBufferSize(HANDLE hConsoleOutput,COORD dwSize);
248 WINBASEAPI WINBOOL WINAPI SetConsoleCursorPosition(HANDLE hConsoleOutput,COORD dwCursorPosition);
249 WINBASEAPI WINBOOL WINAPI SetConsoleCursorInfo(HANDLE hConsoleOutput,CONST CONSOLE_CURSOR_INFO *lpConsoleCursorInfo);
250 WINBASEAPI WINBOOL WINAPI ScrollConsoleScreenBufferA(HANDLE hConsoleOutput,CONST SMALL_RECT *lpScrollRectangle,CONST SMALL_RECT *lpClipRectangle,COORD dwDestinationOrigin,CONST CHAR_INFO *lpFill);
251 WINBASEAPI WINBOOL WINAPI ScrollConsoleScreenBufferW(HANDLE hConsoleOutput,CONST SMALL_RECT *lpScrollRectangle,CONST SMALL_RECT *lpClipRectangle,COORD dwDestinationOrigin,CONST CHAR_INFO *lpFill);
252 WINBASEAPI WINBOOL WINAPI SetConsoleWindowInfo(HANDLE hConsoleOutput,WINBOOL bAbsolute,CONST SMALL_RECT *lpConsoleWindow);
253 WINBASEAPI WINBOOL WINAPI SetConsoleTextAttribute(HANDLE hConsoleOutput,WORD wAttributes);
254 WINBASEAPI WINBOOL WINAPI SetConsoleCtrlHandler(PHANDLER_ROUTINE HandlerRoutine,WINBOOL Add);
255 WINBASEAPI WINBOOL WINAPI GenerateConsoleCtrlEvent(DWORD dwCtrlEvent,DWORD dwProcessGroupId);
256 WINBASEAPI WINBOOL WINAPI AllocConsole(VOID);
257 WINBASEAPI WINBOOL WINAPI FreeConsole(VOID);
258 WINBASEAPI WINBOOL WINAPI AttachConsole(DWORD dwProcessId);
260 #define ATTACH_PARENT_PROCESS ((DWORD)-1)
262 WINBASEAPI DWORD WINAPI GetConsoleTitleA(LPSTR lpConsoleTitle,DWORD nSize);
263 WINBASEAPI DWORD WINAPI GetConsoleTitleW(LPWSTR lpConsoleTitle,DWORD nSize);
264 WINBASEAPI WINBOOL WINAPI SetConsoleTitleA(LPCSTR lpConsoleTitle);
265 WINBASEAPI WINBOOL WINAPI SetConsoleTitleW(LPCWSTR lpConsoleTitle);
266 WINBASEAPI WINBOOL WINAPI ReadConsoleA(HANDLE hConsoleInput,LPVOID lpBuffer,DWORD nNumberOfCharsToRead,LPDWORD lpNumberOfCharsRead,LPVOID lpReserved);
267 WINBASEAPI WINBOOL WINAPI ReadConsoleW(HANDLE hConsoleInput,LPVOID lpBuffer,DWORD nNumberOfCharsToRead,LPDWORD lpNumberOfCharsRead,LPVOID lpReserved);
268 WINBASEAPI WINBOOL WINAPI WriteConsoleA(HANDLE hConsoleOutput,CONST VOID *lpBuffer,DWORD nNumberOfCharsToWrite,LPDWORD lpNumberOfCharsWritten,LPVOID lpReserved);
269 WINBASEAPI WINBOOL WINAPI WriteConsoleW(HANDLE hConsoleOutput,CONST VOID *lpBuffer,DWORD nNumberOfCharsToWrite,LPDWORD lpNumberOfCharsWritten,LPVOID lpReserved);
271 #define CONSOLE_TEXTMODE_BUFFER 1
273 WINBASEAPI HANDLE WINAPI CreateConsoleScreenBuffer(DWORD dwDesiredAccess,DWORD dwShareMode,CONST SECURITY_ATTRIBUTES *lpSecurityAttributes,DWORD dwFlags,LPVOID lpScreenBufferData);
274 WINBASEAPI UINT WINAPI GetConsoleCP(VOID);
275 WINBASEAPI WINBOOL WINAPI SetConsoleCP(UINT wCodePageID);
276 WINBASEAPI UINT WINAPI GetConsoleOutputCP(VOID);
277 WINBASEAPI WINBOOL WINAPI SetConsoleOutputCP(UINT wCodePageID);
279 #define CONSOLE_FULLSCREEN 1
280 #define CONSOLE_FULLSCREEN_HARDWARE 2
282 WINBASEAPI WINBOOL WINAPI GetConsoleDisplayMode(LPDWORD lpModeFlags);
283 WINBASEAPI HWND WINAPI GetConsoleWindow(VOID);
284 WINBASEAPI DWORD WINAPI GetConsoleProcessList(LPDWORD lpdwProcessList,DWORD dwProcessCount);
285 WINBASEAPI WINBOOL WINAPI AddConsoleAliasA(LPSTR Source,LPSTR Target,LPSTR ExeName);
286 WINBASEAPI WINBOOL WINAPI AddConsoleAliasW(LPWSTR Source,LPWSTR Target,LPWSTR ExeName);
287 WINBASEAPI DWORD WINAPI GetConsoleAliasA(LPSTR Source,LPSTR TargetBuffer,DWORD TargetBufferLength,LPSTR ExeName);
288 WINBASEAPI DWORD WINAPI GetConsoleAliasW(LPWSTR Source,LPWSTR TargetBuffer,DWORD TargetBufferLength,LPWSTR ExeName);
289 WINBASEAPI DWORD WINAPI GetConsoleAliasesLengthA(LPSTR ExeName);
290 WINBASEAPI DWORD WINAPI GetConsoleAliasesLengthW(LPWSTR ExeName);
291 WINBASEAPI DWORD WINAPI GetConsoleAliasExesLengthA(VOID);
292 WINBASEAPI DWORD WINAPI GetConsoleAliasExesLengthW(VOID);
293 WINBASEAPI DWORD WINAPI GetConsoleAliasesA(LPSTR AliasBuffer,DWORD AliasBufferLength,LPSTR ExeName);
294 WINBASEAPI DWORD WINAPI GetConsoleAliasesW(LPWSTR AliasBuffer,DWORD AliasBufferLength,LPWSTR ExeName);
295 WINBASEAPI DWORD WINAPI GetConsoleAliasExesA(LPSTR ExeNameBuffer,DWORD ExeNameBufferLength);
296 WINBASEAPI DWORD WINAPI GetConsoleAliasExesW(LPWSTR ExeNameBuffer,DWORD ExeNameBufferLength);
298 #ifdef __cplusplus
300 #endif
301 #endif