Differences From Artifact [5ebbf537eec215cc]:
- File
src/win32/wincon.d
- 2011-02-23 12:53:16 - part of checkin [c2b7a98c21] on branch trunk - Initial import (user: kinaba) [annotate]
To Artifact [a1d2dfcf9ddedace]:
- File
src/win32/wincon.d
- 2015-04-21 10:46:55 - part of checkin [4e2933c620] on branch trunk - Rebased to the latest verson dmd 2.067. Not yet verified the outcome. (user: kinaba) [annotate]
> 1 /***********************************************************************\
> 2 * wincon.d *
> 3 * *
> 4 * Windows API header module *
> 5 * *
> 6 * Translated from MinGW Windows headers *
> 7 * *
> 8 * Placed into public domain *
> 9 \***********************************************************************/
1 module win32.wincon; 10 module win32.wincon;
> 11 pragma(lib, "kernel32.lib");
2 | 12
3 // Translated from Microsoft Platform SDK August 2001 Edition <
4 // by Y.Tomino | 13 private import win32.w32api, win32.windef;
5 | 14
6 import win32.windef; | 15 // FIXME: clean up Windows version support
7 import win32.winbase; <
8 | 16
> 17 enum {
9 // #ifndef _WINCON_ | 18 FOREGROUND_BLUE = 1,
10 // #define _WINCON_ | 19 FOREGROUND_GREEN = 2,
> 20 FOREGROUND_RED = 4,
> 21 FOREGROUND_INTENSITY = 8,
> 22 BACKGROUND_BLUE = 16,
> 23 BACKGROUND_GREEN = 32,
> 24 BACKGROUND_RED = 64,
> 25 BACKGROUND_INTENSITY = 128
> 26 }
> 27
> 28 static if (_WIN32_WINNT >= 0x0501) {
> 29 enum {
> 30 CONSOLE_FULLSCREEN_MODE = 1,
> 31 CONSOLE_WINDOWED_MODE = 0
> 32 }
> 33 }
> 34
> 35 enum {
> 36 CTRL_C_EVENT = 0,
> 37 CTRL_BREAK_EVENT = 1,
> 38 CTRL_CLOSE_EVENT = 2,
> 39 CTRL_LOGOFF_EVENT = 5,
> 40 CTRL_SHUTDOWN_EVENT = 6
> 41 }
> 42
> 43 enum {
> 44 ENABLE_PROCESSED_INPUT = 1,
> 45 ENABLE_LINE_INPUT = 2,
> 46 ENABLE_ECHO_INPUT = 4,
> 47 ENABLE_WINDOW_INPUT = 8,
> 48 ENABLE_MOUSE_INPUT = 16
> 49 }
> 50
> 51 enum {
> 52 ENABLE_PROCESSED_OUTPUT = 1,
> 53 ENABLE_WRAP_AT_EOL_OUTPUT = 2
> 54 }
> 55
> 56 enum {
> 57 KEY_EVENT = 1,
> 58 MOUSE_EVENT = 2,
> 59 WINDOW_BUFFER_SIZE_EVENT = 4,
> 60 MENU_EVENT = 8,
> 61 FOCUS_EVENT = 16
> 62 }
> 63 enum {
> 64 RIGHT_ALT_PRESSED = 1,
> 65 LEFT_ALT_PRESSED = 2,
> 66 RIGHT_CTRL_PRESSED = 4,
> 67 LEFT_CTRL_PRESSED = 8,
> 68 SHIFT_PRESSED = 16,
> 69 NUMLOCK_ON = 32,
> 70 SCROLLLOCK_ON = 64,
> 71 CAPSLOCK_ON = 128,
> 72 ENHANCED_KEY = 256
> 73 }
> 74 enum {
> 75 FROM_LEFT_1ST_BUTTON_PRESSED = 1,
> 76 RIGHTMOST_BUTTON_PRESSED = 2,
> 77 FROM_LEFT_2ND_BUTTON_PRESSED = 4,
> 78 FROM_LEFT_3RD_BUTTON_PRESSED = 8,
> 79 FROM_LEFT_4TH_BUTTON_PRESSED = 16
> 80 }
> 81
> 82 enum {
> 83 MOUSE_MOVED = 1,
> 84 DOUBLE_CLICK = 2,
> 85 MOUSE_WHEELED = 4
> 86 }
> 87
> 88 struct CHAR_INFO {
> 89 union _Char {
> 90 WCHAR UnicodeChar;
> 91 CHAR AsciiChar;
> 92 }
> 93 _Char Char;
> 94 WORD Attributes;
> 95 }
> 96 alias CHAR_INFO* PCHAR_INFO;
> 97
> 98 struct SMALL_RECT {
> 99 SHORT Left;
> 100 SHORT Top;
> 101 SHORT Right;
> 102 SHORT Bottom;
> 103 }
> 104 alias SMALL_RECT* PSMALL_RECT;
> 105
> 106 struct CONSOLE_CURSOR_INFO {
> 107 DWORD dwSize;
> 108 BOOL bVisible;
> 109 }
> 110 alias CONSOLE_CURSOR_INFO* PCONSOLE_CURSOR_INFO;
> 111
> 112 struct COORD {
> 113 SHORT X;
> 114 SHORT Y;
> 115 }
> 116 alias COORD* PCOORD;
> 117
> 118 struct CONSOLE_FONT_INFO {
> 119 DWORD nFont;
> 120 COORD dwFontSize;
> 121 }
> 122 alias CONSOLE_FONT_INFO* PCONSOLE_FONT_INFO;
> 123
> 124 struct CONSOLE_SCREEN_BUFFER_INFO {
> 125 COORD dwSize;
> 126 COORD dwCursorPosition;
> 127 WORD wAttributes;
> 128 SMALL_RECT srWindow;
> 129 COORD dwMaximumWindowSize;
> 130 }
> 131 alias CONSOLE_SCREEN_BUFFER_INFO* PCONSOLE_SCREEN_BUFFER_INFO;
> 132
> 133 alias BOOL function(DWORD) PHANDLER_ROUTINE;
> 134
> 135 struct KEY_EVENT_RECORD {
> 136 BOOL bKeyDown;
> 137 WORD wRepeatCount;
> 138 WORD wVirtualKeyCode;
> 139 WORD wVirtualScanCode;
> 140 union _uChar {
> 141 WCHAR UnicodeChar;
> 142 CHAR AsciiChar;
> 143 }
> 144 _uChar uChar;
> 145 DWORD dwControlKeyState;
> 146 }
> 147
> 148 struct MOUSE_EVENT_RECORD {
> 149 COORD dwMousePosition;
> 150 DWORD dwButtonState;
> 151 DWORD dwControlKeyState;
> 152 DWORD dwEventFlags;
> 153 }
11 154
12 // #ifdef __cplusplus | 155 struct WINDOW_BUFFER_SIZE_RECORD {
13 // extern "C" { <
14 // #endif <
15 <
16 struct _COORD { | 156 COORD dwSize;
17 SHORT X; <
18 SHORT Y; <
19 } 157 }
20 alias _COORD COORD; <
21 alias _COORD* PCOORD; <
22 158
23 struct _SMALL_RECT { | 159 struct MENU_EVENT_RECORD {
24 SHORT Left; | 160 UINT dwCommandId;
25 SHORT Top; <
26 SHORT Right; <
27 SHORT Bottom; <
28 } 161 }
29 alias _SMALL_RECT SMALL_RECT; | 162 alias MENU_EVENT_RECORD* PMENU_EVENT_RECORD;
30 alias _SMALL_RECT* PSMALL_RECT; <
31 163
32 struct _KEY_EVENT_RECORD { | 164 struct FOCUS_EVENT_RECORD {
33 BOOL bKeyDown; | 165 BOOL bSetFocus;
34 WORD wRepeatCount; <
35 WORD wVirtualKeyCode; <
36 WORD wVirtualScanCode; <
37 union { <
38 WCHAR UnicodeChar; <
39 CHAR AsciiChar; <
40 } 166 }
41 167
42 DWORD dwControlKeyState; | 168 struct INPUT_RECORD {
43 } <
> 169 WORD EventType;
> 170 union _Event {
44 alias _KEY_EVENT_RECORD KEY_EVENT_RECORD; | 171 KEY_EVENT_RECORD KeyEvent;
45 alias _KEY_EVENT_RECORD* PKEY_EVENT_RECORD; | 172 MOUSE_EVENT_RECORD MouseEvent;
46 <
47 enum : uint { RIGHT_ALT_PRESSED = 0x0001 } | 173 WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent;
48 enum : uint { LEFT_ALT_PRESSED = 0x0002 } | 174 MENU_EVENT_RECORD MenuEvent;
49 enum : uint { RIGHT_CTRL_PRESSED = 0x0004 } | 175 FOCUS_EVENT_RECORD FocusEvent;
50 enum : uint { LEFT_CTRL_PRESSED = 0x0008 } <
51 enum : uint { SHIFT_PRESSED = 0x0010 } <
52 enum : uint { NUMLOCK_ON = 0x0020 } <
53 enum : uint { SCROLLLOCK_ON = 0x0040 } <
54 enum : uint { CAPSLOCK_ON = 0x0080 } <
55 enum : uint { ENHANCED_KEY = 0x0100 } <
56 enum : uint { NLS_DBCSCHAR = 0x00010000 } <
57 enum : uint { NLS_ALPHANUMERIC = 0x00000000 } <
58 enum : uint { NLS_KATAKANA = 0x00020000 } <
59 enum : uint { NLS_HIRAGANA = 0x00040000 } <
60 enum : uint { NLS_ROMAN = 0x00400000 } <
61 enum : uint { NLS_IME_CONVERSION = 0x00800000 } <
62 enum : uint { NLS_IME_DISABLE = 0x20000000 } <
63 | 176 }
64 struct _MOUSE_EVENT_RECORD { <
65 COORD dwMousePosition; <
66 DWORD dwButtonState; <
67 DWORD dwControlKeyState; <
68 DWORD dwEventFlags; <
> 177 _Event Event;
69 } 178 }
70 alias _MOUSE_EVENT_RECORD MOUSE_EVENT_RECORD; | 179 alias INPUT_RECORD* PINPUT_RECORD;
71 alias _MOUSE_EVENT_RECORD* PMOUSE_EVENT_RECORD; <
72 180
73 enum : uint { FROM_LEFT_1ST_BUTTON_PRESSED = 0x0001 } | 181 extern (Windows):
74 enum : uint { RIGHTMOST_BUTTON_PRESSED = 0x0002 } <
75 enum : uint { FROM_LEFT_2ND_BUTTON_PRESSED = 0x0004 } <
76 enum : uint { FROM_LEFT_3RD_BUTTON_PRESSED = 0x0008 } <
77 enum : uint { FROM_LEFT_4TH_BUTTON_PRESSED = 0x0010 } <
78 182
79 enum : uint { MOUSE_MOVED = 0x0001 } | 183 BOOL AllocConsole();
80 enum : uint { DOUBLE_CLICK = 0x0002 } | 184 HANDLE CreateConsoleScreenBuffer(DWORD, DWORD, SECURITY_ATTRIBUTES*, DWORD, LPVO
81 enum : uint { MOUSE_WHEELED = 0x0004 } | 185 BOOL FillConsoleOutputAttribute(HANDLE, WORD, DWORD, COORD, PDWORD);
82 <
> 186 BOOL FillConsoleOutputCharacterA(HANDLE, CHAR, DWORD, COORD, PDWORD);
83 struct _WINDOW_BUFFER_SIZE_RECORD { | 187 BOOL FillConsoleOutputCharacterW(HANDLE, WCHAR, DWORD, COORD, PDWORD);
84 COORD dwSize; | 188 BOOL FlushConsoleInputBuffer(HANDLE);
85 } <
> 189 BOOL FreeConsole();
86 alias _WINDOW_BUFFER_SIZE_RECORD WINDOW_BUFFER_SIZE_RECORD; | 190 BOOL GenerateConsoleCtrlEvent(DWORD, DWORD);
87 alias _WINDOW_BUFFER_SIZE_RECORD* PWINDOW_BUFFER_SIZE_RECORD; | 191 UINT GetConsoleCP();
88 <
> 192 BOOL GetConsoleCursorInfo(HANDLE, PCONSOLE_CURSOR_INFO);
89 struct _MENU_EVENT_RECORD { | 193 BOOL GetConsoleMode(HANDLE,PDWORD);
90 UINT dwCommandId; | 194 UINT GetConsoleOutputCP();
> 195 BOOL GetConsoleScreenBufferInfo(HANDLE, PCONSOLE_SCREEN_BUFFER_INFO);
> 196 DWORD GetConsoleTitleA(LPSTR, DWORD);
> 197 DWORD GetConsoleTitleW(LPWSTR, DWORD);
> 198 COORD GetLargestConsoleWindowSize(HANDLE);
> 199 BOOL GetNumberOfConsoleInputEvents(HANDLE, PDWORD);
> 200 BOOL GetNumberOfConsoleMouseButtons(PDWORD);
> 201 BOOL PeekConsoleInputA(HANDLE, PINPUT_RECORD, DWORD, PDWORD);
> 202 BOOL PeekConsoleInputW(HANDLE, PINPUT_RECORD, DWORD, PDWORD);
> 203 BOOL ReadConsoleA(HANDLE, PVOID, DWORD, PDWORD, PVOID);
> 204 BOOL ReadConsoleW(HANDLE, PVOID, DWORD, PDWORD, PVOID);
> 205 BOOL ReadConsoleInputA(HANDLE, PINPUT_RECORD, DWORD, PDWORD);
> 206 BOOL ReadConsoleInputW(HANDLE, PINPUT_RECORD, DWORD, PDWORD);
> 207 BOOL ReadConsoleOutputAttribute(HANDLE, LPWORD, DWORD, COORD, LPDWORD);
> 208 BOOL ReadConsoleOutputCharacterA(HANDLE, LPSTR, DWORD, COORD, PDWORD);
> 209 BOOL ReadConsoleOutputCharacterW(HANDLE, LPWSTR, DWORD, COORD, PDWORD);
> 210 BOOL ReadConsoleOutputA(HANDLE, PCHAR_INFO, COORD, COORD, PSMALL_RECT);
> 211 BOOL ReadConsoleOutputW(HANDLE, PCHAR_INFO, COORD, COORD, PSMALL_RECT);
> 212 BOOL ScrollConsoleScreenBufferA(HANDLE, CPtr!(SMALL_RECT), CPtr!(SMALL_RECT), CO
> 213 BOOL ScrollConsoleScreenBufferW(HANDLE, CPtr!(SMALL_RECT), CPtr!(SMALL_RECT), CO
> 214 BOOL SetConsoleActiveScreenBuffer(HANDLE);
> 215 BOOL SetConsoleCP(UINT);
> 216 BOOL SetConsoleCtrlHandler(PHANDLER_ROUTINE, BOOL);
> 217 BOOL SetConsoleCursorInfo(HANDLE, CPtr!(CONSOLE_CURSOR_INFO));
> 218 BOOL SetConsoleCursorPosition(HANDLE, COORD);
91 } | 219
92 alias _MENU_EVENT_RECORD MENU_EVENT_RECORD; <
93 alias _MENU_EVENT_RECORD* PMENU_EVENT_RECORD; <
94 220
95 struct _FOCUS_EVENT_RECORD { | 221 static if (_WIN32_WINNT >= 0x0500) {
96 BOOL bSetFocus; | 222 BOOL GetConsoleDisplayMode(LPDWORD);
97 } <
98 alias _FOCUS_EVENT_RECORD FOCUS_EVENT_RECORD; <
99 alias _FOCUS_EVENT_RECORD* PFOCUS_EVENT_RECORD; <
100 <
101 struct _INPUT_RECORD { <
102 WORD EventType; <
103 union { <
104 KEY_EVENT_RECORD KeyEvent; <
105 MOUSE_EVENT_RECORD MouseEvent; <
106 WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent; <
107 MENU_EVENT_RECORD MenuEvent; <
108 FOCUS_EVENT_RECORD FocusEvent; <
> 223 HWND GetConsoleWindow();
109 } 224 }
110 225
111 } <
> 226 static if (_WIN32_WINNT >= 0x0501) {
112 alias _INPUT_RECORD INPUT_RECORD; | 227 BOOL AttachConsole(DWORD);
113 alias _INPUT_RECORD* PINPUT_RECORD; | 228 BOOL SetConsoleDisplayMode(HANDLE, DWORD, PCOORD);
114 <
115 enum : uint { KEY_EVENT = 0x0001 } <
116 enum : uint { MOUSE_EVENT = 0x0002 } <
117 enum : uint { WINDOW_BUFFER_SIZE_EVENT = 0x0004 } <
118 enum : uint { MENU_EVENT = 0x0008 } <
119 enum : uint { FOCUS_EVENT = 0x0010 } <
120 <
121 struct _CHAR_INFO { <
122 union { <
123 WCHAR UnicodeChar; <
124 CHAR AsciiChar; <
> 229 const DWORD ATTACH_PARENT_PROCESS = cast(DWORD)-1;
125 } 230 }
126 231
127 WORD Attributes; | 232 BOOL SetConsoleMode(HANDLE, DWORD);
128 } <
> 233 BOOL SetConsoleOutputCP(UINT);
129 alias _CHAR_INFO CHAR_INFO; | 234 BOOL SetConsoleScreenBufferSize(HANDLE, COORD);
130 alias _CHAR_INFO* PCHAR_INFO; | 235 BOOL SetConsoleTextAttribute(HANDLE, WORD);
131 <
> 236 BOOL SetConsoleTitleA(LPCSTR);
132 enum : uint { FOREGROUND_BLUE = 0x0001 } | 237 BOOL SetConsoleTitleW(LPCWSTR);
133 enum : uint { FOREGROUND_GREEN = 0x0002 } | 238 BOOL SetConsoleWindowInfo(HANDLE, BOOL, CPtr!(SMALL_RECT));
134 enum : uint { FOREGROUND_RED = 0x0004 } | 239 BOOL WriteConsoleA(HANDLE, PCVOID, DWORD, PDWORD, PVOID);
135 enum : uint { FOREGROUND_INTENSITY = 0x0008 } | 240 BOOL WriteConsoleW(HANDLE, PCVOID, DWORD, PDWORD, PVOID);
136 enum : uint { BACKGROUND_BLUE = 0x0010 } <
137 enum : uint { BACKGROUND_GREEN = 0x0020 } <
138 enum : uint { BACKGROUND_RED = 0x0040 } <
139 enum : uint { BACKGROUND_INTENSITY = 0x0080 } <
140 enum : uint { COMMON_LVB_LEADING_BYTE = 0x0100 } <
141 enum : uint { COMMON_LVB_TRAILING_BYTE = 0x0200 } <
142 enum : uint { COMMON_LVB_GRID_HORIZONTAL = 0x0400 } <
143 enum : uint { COMMON_LVB_GRID_LVERTICAL = 0x0800 } <
144 enum : uint { COMMON_LVB_GRID_RVERTICAL = 0x1000 } <
145 enum : uint { COMMON_LVB_REVERSE_VIDEO = 0x4000 } <
146 enum : uint { COMMON_LVB_UNDERSCORE = 0x8000 } <
147 <
148 enum : uint { COMMON_LVB_SBCSDBCS = 0x0300 } <
149 <
150 struct _CONSOLE_SCREEN_BUFFER_INFO { <
151 COORD dwSize; <
152 COORD dwCursorPosition; <
153 WORD wAttributes; <
154 SMALL_RECT srWindow; <
155 COORD dwMaximumWindowSize; <
156 } <
157 alias _CONSOLE_SCREEN_BUFFER_INFO CONSOLE_SCREEN_BUFFER_INFO; <
158 alias _CONSOLE_SCREEN_BUFFER_INFO* PCONSOLE_SCREEN_BUFFER_INFO; <
159 <
160 struct _CONSOLE_CURSOR_INFO { <
161 DWORD dwSize; <
162 BOOL bVisible; <
163 } <
164 alias _CONSOLE_CURSOR_INFO CONSOLE_CURSOR_INFO; <
165 alias _CONSOLE_CURSOR_INFO* PCONSOLE_CURSOR_INFO; <
166 <
167 struct _CONSOLE_FONT_INFO { <
168 DWORD nFont; <
169 COORD dwFontSize; <
170 } <
171 alias _CONSOLE_FONT_INFO CONSOLE_FONT_INFO; <
172 alias _CONSOLE_FONT_INFO* PCONSOLE_FONT_INFO; <
173 <
174 // #if(_WIN32_WINNT >= 0x0500) <
175 struct _CONSOLE_SELECTION_INFO { <
176 DWORD dwFlags; <
177 COORD dwSelectionAnchor; <
178 SMALL_RECT srSelection; <
179 } <
180 alias _CONSOLE_SELECTION_INFO CONSOLE_SELECTION_INFO; <
181 alias _CONSOLE_SELECTION_INFO* PCONSOLE_SELECTION_INFO; <
182 <
183 enum : uint { CONSOLE_NO_SELECTION = 0x0000 } <
184 enum : uint { CONSOLE_SELECTION_IN_PROGRESS = 0x0001 } <
185 enum : uint { CONSOLE_SELECTION_NOT_EMPTY = 0x0002 } <
186 enum : uint { CONSOLE_MOUSE_SELECTION = 0x0004 } <
187 enum : uint { CONSOLE_MOUSE_DOWN = 0x0008 } <
188 // #endif /* _WIN32_WINNT >= 0x0500 */ <
189 <
190 extern(Windows) alias BOOL function( DWORD CtrlType ) PHANDLER_ROUTINE; <
191 <
192 enum : uint { CTRL_C_EVENT = 0 } <
193 enum : uint { CTRL_BREAK_EVENT = 1 } <
194 enum : uint { CTRL_CLOSE_EVENT = 2 } <
195 <
196 enum : uint { CTRL_LOGOFF_EVENT = 5 } <
197 enum : uint { CTRL_SHUTDOWN_EVENT = 6 } <
198 <
199 enum : uint { ENABLE_PROCESSED_INPUT = 0x0001 } <
200 enum : uint { ENABLE_LINE_INPUT = 0x0002 } <
201 enum : uint { ENABLE_ECHO_INPUT = 0x0004 } <
202 enum : uint { ENABLE_WINDOW_INPUT = 0x0008 } <
203 enum : uint { ENABLE_MOUSE_INPUT = 0x0010 } <
204 <
205 enum : uint { ENABLE_PROCESSED_OUTPUT = 0x0001 } <
206 enum : uint { ENABLE_WRAP_AT_EOL_OUTPUT = 0x0002 } <
207 <
208 extern(Windows) export BOOL PeekConsoleInputA( <
209 HANDLE hConsoleInput, <
210 PINPUT_RECORD lpBuffer, <
211 DWORD nLength, <
212 LPDWORD lpNumberOfEventsRead <
213 ); <
214 extern(Windows) export BOOL PeekConsoleInputW( <
215 HANDLE hConsoleInput, <
216 PINPUT_RECORD lpBuffer, <
217 DWORD nLength, <
218 LPDWORD lpNumberOfEventsRead <
219 ); <
220 // #ifdef UNICODE <
221 alias PeekConsoleInputW PeekConsoleInput; <
222 // #else <
223 // #... <
224 // #endif // !UNICODE <
225 <
226 extern(Windows) export BOOL ReadConsoleInputA( <
227 HANDLE hConsoleInput, <
228 PINPUT_RECORD lpBuffer, <
229 DWORD nLength, <
230 LPDWORD lpNumberOfEventsRead <
231 ); <
232 extern(Windows) export BOOL ReadConsoleInputW( <
233 HANDLE hConsoleInput, <
234 PINPUT_RECORD lpBuffer, <
235 DWORD nLength, <
236 LPDWORD lpNumberOfEventsRead <
237 ); <
238 // #ifdef UNICODE <
239 alias ReadConsoleInputW ReadConsoleInput; <
240 // #else <
241 // #... <
242 // #endif // !UNICODE <
243 <
244 extern(Windows) export BOOL WriteConsoleInputA( | 241 BOOL WriteConsoleInputA(HANDLE, CPtr!(INPUT_RECORD), DWORD, PDWORD);
245 HANDLE hConsoleInput, <
246 INPUT_RECORD *lpBuffer, <
247 DWORD nLength, <
248 LPDWORD lpNumberOfEventsWritten <
249 ); <
250 extern(Windows) export BOOL WriteConsoleInputW( | 242 BOOL WriteConsoleInputW(HANDLE, CPtr!(INPUT_RECORD), DWORD, PDWORD);
251 HANDLE hConsoleInput, <
252 INPUT_RECORD *lpBuffer, <
253 DWORD nLength, <
254 LPDWORD lpNumberOfEventsWritten <
255 ); <
256 // #ifdef UNICODE <
257 alias WriteConsoleInputW WriteConsoleInput; <
258 // #else <
259 // #... <
260 // #endif // !UNICODE <
> 243 BOOL WriteConsoleOutputA(HANDLE, CPtr!(CHAR_INFO), COORD, COORD, PSMALL_RECT);
> 244 BOOL WriteConsoleOutputW(HANDLE, CPtr!(CHAR_INFO), COORD, COORD, PSMALL_RECT);
> 245 BOOL WriteConsoleOutputAttribute(HANDLE, CPtr!(WORD), DWORD, COORD, PDWORD);
> 246 BOOL WriteConsoleOutputCharacterA(HANDLE, LPCSTR, DWORD, COORD, PDWORD);
> 247 BOOL WriteConsoleOutputCharacterW(HANDLE, LPCWSTR, DWORD, COORD, PDWORD);
261 248
262 extern(Windows) export BOOL ReadConsoleOutputA( | 249 version (Unicode) {
263 HANDLE hConsoleOutput, | 250 alias FillConsoleOutputCharacterW FillConsoleOutputCharacter;
264 PCHAR_INFO lpBuffer, | 251 alias GetConsoleTitleW GetConsoleTitle;
265 COORD dwBufferSize, | 252 alias PeekConsoleInputW PeekConsoleInput;
266 COORD dwBufferCoord, | 253 alias ReadConsoleW ReadConsole;
267 PSMALL_RECT lpReadRegion | 254 alias ReadConsoleInputW ReadConsoleInput;
268 ); <
269 extern(Windows) export BOOL ReadConsoleOutputW( <
270 HANDLE hConsoleOutput, <
271 PCHAR_INFO lpBuffer, <
272 COORD dwBufferSize, <
273 COORD dwBufferCoord, <
274 PSMALL_RECT lpReadRegion <
275 ); <
276 // #ifdef UNICODE <
277 alias ReadConsoleOutputW ReadConsoleOutput; | 255 alias ReadConsoleOutputW ReadConsoleOutput;
278 // #else <
279 // #... <
280 // #endif // !UNICODE <
281 <
282 extern(Windows) export BOOL WriteConsoleOutputA( <
283 HANDLE hConsoleOutput, <
284 CHAR_INFO *lpBuffer, <
285 COORD dwBufferSize, <
286 COORD dwBufferCoord, <
287 PSMALL_RECT lpWriteRegion <
288 ); <
289 extern(Windows) export BOOL WriteConsoleOutputW( <
290 HANDLE hConsoleOutput, <
291 CHAR_INFO *lpBuffer, <
292 COORD dwBufferSize, <
293 COORD dwBufferCoord, <
294 PSMALL_RECT lpWriteRegion <
295 ); <
296 // #ifdef UNICODE <
297 alias WriteConsoleOutputW WriteConsoleOutput; <
298 // #else <
299 // #... <
300 // #endif // !UNICODE <
301 <
302 extern(Windows) export BOOL ReadConsoleOutputCharacterA( <
303 HANDLE hConsoleOutput, <
304 LPSTR lpCharacter, <
305 DWORD nLength, <
306 COORD dwReadCoord, <
307 LPDWORD lpNumberOfCharsRead <
308 ); <
309 extern(Windows) export BOOL ReadConsoleOutputCharacterW( <
310 HANDLE hConsoleOutput, <
311 LPWSTR lpCharacter, <
312 DWORD nLength, <
313 COORD dwReadCoord, <
314 LPDWORD lpNumberOfCharsRead <
315 ); <
316 // #ifdef UNICODE <
317 alias ReadConsoleOutputCharacterW ReadConsoleOutputCharacter; | 256 alias ReadConsoleOutputCharacterW ReadConsoleOutputCharacter;
318 // #else <
319 // #... <
320 // #endif // !UNICODE <
321 <
322 extern(Windows) export BOOL ReadConsoleOutputAttribute( <
> 257 alias ScrollConsoleScreenBufferW ScrollConsoleScreenBuffer;
> 258 alias SetConsoleTitleW SetConsoleTitle;
> 259 alias WriteConsoleW WriteConsole;
> 260 alias WriteConsoleInputW WriteConsoleInput;
323 HANDLE hConsoleOutput, | 261 alias WriteConsoleOutputW WriteConsoleOutput;
324 LPWORD lpAttribute, <
325 DWORD nLength, <
326 COORD dwReadCoord, <
327 LPDWORD lpNumberOfAttrsRead <
328 ); <
329 <
330 extern(Windows) export BOOL WriteConsoleOutputCharacterA( <
331 HANDLE hConsoleOutput, <
332 LPCSTR lpCharacter, <
333 DWORD nLength, <
334 COORD dwWriteCoord, <
335 LPDWORD lpNumberOfCharsWritten <
336 ); <
337 extern(Windows) export BOOL WriteConsoleOutputCharacterW( <
338 HANDLE hConsoleOutput, <
339 LPCWSTR lpCharacter, <
340 DWORD nLength, <
341 COORD dwWriteCoord, <
342 LPDWORD lpNumberOfCharsWritten <
343 ); <
344 // #ifdef UNICODE <
345 alias WriteConsoleOutputCharacterW WriteConsoleOutputCharacter; | 262 alias WriteConsoleOutputCharacterW WriteConsoleOutputCharacter;
346 // #else | 263 } else {
347 // #... <
348 // #endif // !UNICODE <
349 <
350 extern(Windows) export BOOL WriteConsoleOutputAttribute( <
351 HANDLE hConsoleOutput, <
352 WORD *lpAttribute, <
353 DWORD nLength, <
354 COORD dwWriteCoord, <
355 LPDWORD lpNumberOfAttrsWritten <
356 ); <
357 <
358 extern(Windows) export BOOL FillConsoleOutputCharacterA( <
359 HANDLE hConsoleOutput, <
360 CHAR cCharacter, <
361 DWORD nLength, <
362 COORD dwWriteCoord, <
363 LPDWORD lpNumberOfCharsWritten <
364 ); <
365 extern(Windows) export BOOL FillConsoleOutputCharacterW( <
366 HANDLE hConsoleOutput, <
367 WCHAR cCharacter, <
368 DWORD nLength, <
369 COORD dwWriteCoord, <
370 LPDWORD lpNumberOfCharsWritten <
371 ); <
372 // #ifdef UNICODE <
373 alias FillConsoleOutputCharacterW FillConsoleOutputCharacter; | 264 alias FillConsoleOutputCharacterA FillConsoleOutputCharacter;
374 // #else <
375 // #... <
376 // #endif // !UNICODE <
377 <
378 extern(Windows) export BOOL FillConsoleOutputAttribute( <
379 HANDLE hConsoleOutput, <
380 WORD wAttribute, <
381 DWORD nLength, <
382 COORD dwWriteCoord, <
383 LPDWORD lpNumberOfAttrsWritten <
384 ); <
385 <
386 extern(Windows) export BOOL GetConsoleMode( <
387 HANDLE hConsoleHandle, <
388 LPDWORD lpMode <
389 ); <
390 <
391 extern(Windows) export BOOL GetNumberOfConsoleInputEvents( <
> 265 alias GetConsoleTitleA GetConsoleTitle;
392 HANDLE hConsoleInput, | 266 alias PeekConsoleInputA PeekConsoleInput;
393 LPDWORD lpNumberOfEvents <
394 ); <
395 <
396 extern(Windows) export BOOL GetConsoleScreenBufferInfo( <
397 HANDLE hConsoleOutput, <
398 PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo <
399 ); <
400 <
401 extern(Windows) export COORD GetLargestConsoleWindowSize( <
402 HANDLE hConsoleOutput <
403 ); <
404 <
405 extern(Windows) export BOOL GetConsoleCursorInfo( <
406 HANDLE hConsoleOutput, <
407 PCONSOLE_CURSOR_INFO lpConsoleCursorInfo <
408 ); <
409 <
410 // #if(_WIN32_WINNT >= 0x0500) <
411 <
412 extern(Windows) export BOOL GetCurrentConsoleFont( <
413 HANDLE hConsoleOutput, <
414 BOOL bMaximumWindow, <
415 PCONSOLE_FONT_INFO lpConsoleCurrentFont <
416 ); <
417 <
418 extern(Windows) export COORD GetConsoleFontSize( <
419 HANDLE hConsoleOutput, <
420 DWORD nFont <
421 ); <
422 <
423 extern(Windows) export BOOL GetConsoleSelectionInfo( <
424 PCONSOLE_SELECTION_INFO lpConsoleSelectionInfo <
425 ); <
426 <
427 // #endif /* _WIN32_WINNT >= 0x0500 */ <
428 <
429 extern(Windows) export BOOL GetNumberOfConsoleMouseButtons( <
430 LPDWORD lpNumberOfMouseButtons <
431 ); <
432 <
433 extern(Windows) export BOOL SetConsoleMode( <
434 HANDLE hConsoleHandle, <
435 DWORD dwMode <
436 ); <
437 <
438 extern(Windows) export BOOL SetConsoleActiveScreenBuffer( <
439 HANDLE hConsoleOutput <
440 ); <
441 <
442 extern(Windows) export BOOL FlushConsoleInputBuffer( <
> 267 alias ReadConsoleA ReadConsole;
443 HANDLE hConsoleInput | 268 alias ReadConsoleInputA ReadConsoleInput;
444 ); <
445 <
446 extern(Windows) export BOOL SetConsoleScreenBufferSize( <
447 HANDLE hConsoleOutput, | 269 alias ReadConsoleOutputA ReadConsoleOutput;
448 COORD dwSize <
449 ); <
450 <
451 extern(Windows) export BOOL SetConsoleCursorPosition( <
452 HANDLE hConsoleOutput, <
453 COORD dwCursorPosition <
454 ); <
455 <
456 extern(Windows) export BOOL SetConsoleCursorInfo( <
457 HANDLE hConsoleOutput, <
458 CONSOLE_CURSOR_INFO *lpConsoleCursorInfo <
459 ); <
460 <
461 extern(Windows) export BOOL ScrollConsoleScreenBufferA( <
462 HANDLE hConsoleOutput, <
463 SMALL_RECT *lpScrollRectangle, <
464 SMALL_RECT *lpClipRectangle, <
465 COORD dwDestinationOrigin, <
466 CHAR_INFO *lpFill <
467 ); <
468 extern(Windows) export BOOL ScrollConsoleScreenBufferW( <
469 HANDLE hConsoleOutput, <
470 SMALL_RECT *lpScrollRectangle, <
471 SMALL_RECT *lpClipRectangle, <
472 COORD dwDestinationOrigin, <
473 CHAR_INFO *lpFill <
474 ); <
475 // #ifdef UNICODE <
> 270 alias ReadConsoleOutputCharacterA ReadConsoleOutputCharacter;
476 alias ScrollConsoleScreenBufferW ScrollConsoleScreenBuffer; | 271 alias ScrollConsoleScreenBufferA ScrollConsoleScreenBuffer;
477 // #else <
478 // #... <
479 // #endif // !UNICODE <
480 <
481 extern(Windows) export BOOL SetConsoleWindowInfo( <
482 HANDLE hConsoleOutput, <
483 BOOL bAbsolute, <
484 SMALL_RECT *lpConsoleWindow <
485 ); <
486 <
487 extern(Windows) export BOOL SetConsoleTextAttribute( <
488 HANDLE hConsoleOutput, <
489 WORD wAttributes <
490 ); <
491 <
492 extern(Windows) export BOOL SetConsoleCtrlHandler( <
493 PHANDLER_ROUTINE HandlerRoutine, <
494 BOOL Add <
495 ); <
496 <
497 extern(Windows) export BOOL GenerateConsoleCtrlEvent( <
498 DWORD dwCtrlEvent, <
499 DWORD dwProcessGroupId <
500 ); <
501 <
502 extern(Windows) export BOOL AllocConsole(); <
503 <
504 extern(Windows) export BOOL FreeConsole(); <
505 <
506 // #if(_WIN32_WINNT >= 0x0500) <
507 extern(Windows) export BOOL AttachConsole( <
508 DWORD dwProcessId <
509 ); <
510 // #endif /* _WIN32_WINNT >= 0x0500 */ <
511 <
512 extern(Windows) export DWORD GetConsoleTitleA( <
513 LPSTR lpConsoleTitle, <
514 DWORD nSize <
515 ); <
516 extern(Windows) export DWORD GetConsoleTitleW( <
517 LPWSTR lpConsoleTitle, <
518 DWORD nSize <
519 ); <
520 // #ifdef UNICODE <
521 alias GetConsoleTitleW GetConsoleTitle; <
522 // #else <
523 // #... <
524 // #endif // !UNICODE <
525 <
526 extern(Windows) export BOOL SetConsoleTitleA( <
527 LPCSTR lpConsoleTitle <
528 ); <
529 extern(Windows) export BOOL SetConsoleTitleW( <
530 LPCWSTR lpConsoleTitle <
531 ); <
532 // #ifdef UNICODE <
533 alias SetConsoleTitleW SetConsoleTitle; | 272 alias SetConsoleTitleA SetConsoleTitle;
534 // #else <
535 // #... <
536 // #endif // !UNICODE <
537 <
538 extern(Windows) export BOOL ReadConsoleA( <
539 HANDLE hConsoleInput, <
540 LPVOID lpBuffer, <
541 DWORD nNumberOfCharsToRead, <
542 LPDWORD lpNumberOfCharsRead, <
543 LPVOID lpReserved <
544 ); <
545 extern(Windows) export BOOL ReadConsoleW( <
546 HANDLE hConsoleInput, <
547 LPVOID lpBuffer, <
548 DWORD nNumberOfCharsToRead, <
549 LPDWORD lpNumberOfCharsRead, <
550 LPVOID lpReserved <
551 ); <
552 // #ifdef UNICODE <
553 alias ReadConsoleW ReadConsole; <
554 // #else <
555 // #... <
556 // #endif // !UNICODE <
557 <
558 extern(Windows) export BOOL WriteConsoleA( | 273 alias WriteConsoleA WriteConsole;
> 274 alias WriteConsoleInputA WriteConsoleInput;
559 HANDLE hConsoleOutput, | 275 alias WriteConsoleOutputA WriteConsoleOutput;
560 VOID *lpBuffer, <
561 DWORD nNumberOfCharsToWrite, <
562 LPDWORD lpNumberOfCharsWritten, <
563 LPVOID lpReserved <
564 ); <
565 extern(Windows) export BOOL WriteConsoleW( <
566 HANDLE hConsoleOutput, <
567 VOID *lpBuffer, <
568 DWORD nNumberOfCharsToWrite, <
569 LPDWORD lpNumberOfCharsWritten, <
570 LPVOID lpReserved <
571 ); <
572 // #ifdef UNICODE <
573 alias WriteConsoleW WriteConsole; | 276 alias WriteConsoleOutputCharacterA WriteConsoleOutputCharacter;
574 // #else <
575 // #... <
576 // #endif // !UNICODE <
577 | 277 }
578 enum : uint { CONSOLE_TEXTMODE_BUFFER = 1 } <
579 <
580 extern(Windows) export HANDLE CreateConsoleScreenBuffer( <
581 DWORD dwDesiredAccess, <
582 DWORD dwShareMode, <
583 SECURITY_ATTRIBUTES *lpSecurityAttributes, <
584 DWORD dwFlags, <
585 LPVOID lpScreenBufferData <
586 ); <
587 <
588 extern(Windows) export UINT GetConsoleCP(); <
589 <
590 extern(Windows) export BOOL SetConsoleCP( <
591 UINT wCodePageID <
592 ); <
593 <
594 extern(Windows) export UINT GetConsoleOutputCP(); <
595 <
596 extern(Windows) export BOOL SetConsoleOutputCP( <
597 UINT wCodePageID <
598 ); <
599 <
600 // #if(_WIN32_WINNT >= 0x0500) <
601 <
602 enum : uint { CONSOLE_FULLSCREEN = 1 } <
603 enum : uint { CONSOLE_FULLSCREEN_HARDWARE = 2 } <
604 <
605 extern(Windows) export BOOL GetConsoleDisplayMode( <
606 LPDWORD lpModeFlags <
607 ); <
608 <
609 extern(Windows) export HWND GetConsoleWindow(); <
610 <
611 // #endif /* _WIN32_WINNT >= 0x0500 */ <
612 <
613 // #if(_WIN32_WINNT >= 0x0501) <
614 <
615 extern(Windows) export DWORD GetConsoleProcessList( <
616 LPDWORD lpdwProcessList, <
617 DWORD dwProcessCount); <
618 // #endif /* _WIN32_WINNT >= 0x0501 */ <
619 <
620 // #ifdef __cplusplus <
621 // } <
622 // #endif <
623 <
624 // #endif // _WINCON_ <
625 <