Diff

Not logged in

Differences From Artifact [5ebbf537eec215cc]:

To Artifact [a1d2dfcf9ddedace]:


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 10 module win32.wincon; 2 - 3 -// Translated from Microsoft Platform SDK August 2001 Edition 4 -// by Y.Tomino 5 - 6 -import win32.windef; 7 -import win32.winbase; 8 - 9 -// #ifndef _WINCON_ 10 -// #define _WINCON_ 11 +pragma(lib, "kernel32.lib"); 12 + 13 +private import win32.w32api, win32.windef; 14 + 15 +// FIXME: clean up Windows version support 16 + 17 +enum { 18 + FOREGROUND_BLUE = 1, 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 13 -// extern "C" { 14 -// #endif 15 - 16 -struct _COORD { 17 - SHORT X; 18 - SHORT Y; 155 +struct WINDOW_BUFFER_SIZE_RECORD { 156 + COORD dwSize; 19 157 } 20 -alias _COORD COORD; 21 -alias _COORD* PCOORD; 22 158 23 -struct _SMALL_RECT { 24 - SHORT Left; 25 - SHORT Top; 26 - SHORT Right; 27 - SHORT Bottom; 159 +struct MENU_EVENT_RECORD { 160 + UINT dwCommandId; 28 161 } 29 -alias _SMALL_RECT SMALL_RECT; 30 -alias _SMALL_RECT* PSMALL_RECT; 162 +alias MENU_EVENT_RECORD* PMENU_EVENT_RECORD; 31 163 32 -struct _KEY_EVENT_RECORD { 33 - BOOL bKeyDown; 34 - WORD wRepeatCount; 35 - WORD wVirtualKeyCode; 36 - WORD wVirtualScanCode; 37 -union { 38 - WCHAR UnicodeChar; 39 - CHAR AsciiChar; 164 +struct FOCUS_EVENT_RECORD { 165 + BOOL bSetFocus; 40 166 } 41 167 42 - DWORD dwControlKeyState; 43 -} 44 -alias _KEY_EVENT_RECORD KEY_EVENT_RECORD; 45 -alias _KEY_EVENT_RECORD* PKEY_EVENT_RECORD; 46 - 47 -enum : uint { RIGHT_ALT_PRESSED = 0x0001 } 48 -enum : uint { LEFT_ALT_PRESSED = 0x0002 } 49 -enum : uint { RIGHT_CTRL_PRESSED = 0x0004 } 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 - 64 -struct _MOUSE_EVENT_RECORD { 65 - COORD dwMousePosition; 66 - DWORD dwButtonState; 67 - DWORD dwControlKeyState; 68 - DWORD dwEventFlags; 168 +struct INPUT_RECORD { 169 + WORD EventType; 170 + union _Event { 171 + KEY_EVENT_RECORD KeyEvent; 172 + MOUSE_EVENT_RECORD MouseEvent; 173 + WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent; 174 + MENU_EVENT_RECORD MenuEvent; 175 + FOCUS_EVENT_RECORD FocusEvent; 176 + } 177 + _Event Event; 69 178 } 70 -alias _MOUSE_EVENT_RECORD MOUSE_EVENT_RECORD; 71 -alias _MOUSE_EVENT_RECORD* PMOUSE_EVENT_RECORD; 179 +alias INPUT_RECORD* PINPUT_RECORD; 72 180 73 -enum : uint { FROM_LEFT_1ST_BUTTON_PRESSED = 0x0001 } 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 } 181 +extern (Windows): 78 182 79 -enum : uint { MOUSE_MOVED = 0x0001 } 80 -enum : uint { DOUBLE_CLICK = 0x0002 } 81 -enum : uint { MOUSE_WHEELED = 0x0004 } 82 - 83 -struct _WINDOW_BUFFER_SIZE_RECORD { 84 - COORD dwSize; 85 -} 86 -alias _WINDOW_BUFFER_SIZE_RECORD WINDOW_BUFFER_SIZE_RECORD; 87 -alias _WINDOW_BUFFER_SIZE_RECORD* PWINDOW_BUFFER_SIZE_RECORD; 88 - 89 -struct _MENU_EVENT_RECORD { 90 - UINT dwCommandId; 91 -} 92 -alias _MENU_EVENT_RECORD MENU_EVENT_RECORD; 93 -alias _MENU_EVENT_RECORD* PMENU_EVENT_RECORD; 183 +BOOL AllocConsole(); 184 +HANDLE CreateConsoleScreenBuffer(DWORD, DWORD, SECURITY_ATTRIBUTES*, DWORD, LPVOID); 185 +BOOL FillConsoleOutputAttribute(HANDLE, WORD, DWORD, COORD, PDWORD); 186 +BOOL FillConsoleOutputCharacterA(HANDLE, CHAR, DWORD, COORD, PDWORD); 187 +BOOL FillConsoleOutputCharacterW(HANDLE, WCHAR, DWORD, COORD, PDWORD); 188 +BOOL FlushConsoleInputBuffer(HANDLE); 189 +BOOL FreeConsole(); 190 +BOOL GenerateConsoleCtrlEvent(DWORD, DWORD); 191 +UINT GetConsoleCP(); 192 +BOOL GetConsoleCursorInfo(HANDLE, PCONSOLE_CURSOR_INFO); 193 +BOOL GetConsoleMode(HANDLE,PDWORD); 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), COORD, CPtr!(CHAR_INFO)); 213 +BOOL ScrollConsoleScreenBufferW(HANDLE, CPtr!(SMALL_RECT), CPtr!(SMALL_RECT), COORD, CPtr!(CHAR_INFO)); 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); 219 + 94 220 95 -struct _FOCUS_EVENT_RECORD { 96 - BOOL bSetFocus; 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; 221 +static if (_WIN32_WINNT >= 0x0500) { 222 +BOOL GetConsoleDisplayMode(LPDWORD); 223 +HWND GetConsoleWindow(); 109 224 } 110 225 111 -} 112 -alias _INPUT_RECORD INPUT_RECORD; 113 -alias _INPUT_RECORD* PINPUT_RECORD; 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; 226 +static if (_WIN32_WINNT >= 0x0501) { 227 +BOOL AttachConsole(DWORD); 228 +BOOL SetConsoleDisplayMode(HANDLE, DWORD, PCOORD); 229 +const DWORD ATTACH_PARENT_PROCESS = cast(DWORD)-1; 125 230 } 126 231 127 - WORD Attributes; 128 -} 129 -alias _CHAR_INFO CHAR_INFO; 130 -alias _CHAR_INFO* PCHAR_INFO; 131 - 132 -enum : uint { FOREGROUND_BLUE = 0x0001 } 133 -enum : uint { FOREGROUND_GREEN = 0x0002 } 134 -enum : uint { FOREGROUND_RED = 0x0004 } 135 -enum : uint { FOREGROUND_INTENSITY = 0x0008 } 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( 245 - HANDLE hConsoleInput, 246 - INPUT_RECORD *lpBuffer, 247 - DWORD nLength, 248 - LPDWORD lpNumberOfEventsWritten 249 - ); 250 -extern(Windows) export BOOL WriteConsoleInputW( 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 232 +BOOL SetConsoleMode(HANDLE, DWORD); 233 +BOOL SetConsoleOutputCP(UINT); 234 +BOOL SetConsoleScreenBufferSize(HANDLE, COORD); 235 +BOOL SetConsoleTextAttribute(HANDLE, WORD); 236 +BOOL SetConsoleTitleA(LPCSTR); 237 +BOOL SetConsoleTitleW(LPCWSTR); 238 +BOOL SetConsoleWindowInfo(HANDLE, BOOL, CPtr!(SMALL_RECT)); 239 +BOOL WriteConsoleA(HANDLE, PCVOID, DWORD, PDWORD, PVOID); 240 +BOOL WriteConsoleW(HANDLE, PCVOID, DWORD, PDWORD, PVOID); 241 +BOOL WriteConsoleInputA(HANDLE, CPtr!(INPUT_RECORD), DWORD, PDWORD); 242 +BOOL WriteConsoleInputW(HANDLE, CPtr!(INPUT_RECORD), DWORD, PDWORD); 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( 263 - HANDLE hConsoleOutput, 264 - PCHAR_INFO lpBuffer, 265 - COORD dwBufferSize, 266 - COORD dwBufferCoord, 267 - PSMALL_RECT lpReadRegion 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; 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; 318 -// #else 319 -// #... 320 -// #endif // !UNICODE 321 - 322 -extern(Windows) export BOOL ReadConsoleOutputAttribute( 323 - HANDLE hConsoleOutput, 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; 346 -// #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; 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( 392 - HANDLE hConsoleInput, 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( 443 - HANDLE hConsoleInput 444 - ); 445 - 446 -extern(Windows) export BOOL SetConsoleScreenBufferSize( 447 - HANDLE hConsoleOutput, 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 476 -alias ScrollConsoleScreenBufferW 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; 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( 559 - HANDLE hConsoleOutput, 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; 574 -// #else 575 -// #... 576 -// #endif // !UNICODE 577 - 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 - 249 +version (Unicode) { 250 + alias FillConsoleOutputCharacterW FillConsoleOutputCharacter; 251 + alias GetConsoleTitleW GetConsoleTitle; 252 + alias PeekConsoleInputW PeekConsoleInput; 253 + alias ReadConsoleW ReadConsole; 254 + alias ReadConsoleInputW ReadConsoleInput; 255 + alias ReadConsoleOutputW ReadConsoleOutput; 256 + alias ReadConsoleOutputCharacterW ReadConsoleOutputCharacter; 257 + alias ScrollConsoleScreenBufferW ScrollConsoleScreenBuffer; 258 + alias SetConsoleTitleW SetConsoleTitle; 259 + alias WriteConsoleW WriteConsole; 260 + alias WriteConsoleInputW WriteConsoleInput; 261 + alias WriteConsoleOutputW WriteConsoleOutput; 262 + alias WriteConsoleOutputCharacterW WriteConsoleOutputCharacter; 263 +} else { 264 + alias FillConsoleOutputCharacterA FillConsoleOutputCharacter; 265 + alias GetConsoleTitleA GetConsoleTitle; 266 + alias PeekConsoleInputA PeekConsoleInput; 267 + alias ReadConsoleA ReadConsole; 268 + alias ReadConsoleInputA ReadConsoleInput; 269 + alias ReadConsoleOutputA ReadConsoleOutput; 270 + alias ReadConsoleOutputCharacterA ReadConsoleOutputCharacter; 271 + alias ScrollConsoleScreenBufferA ScrollConsoleScreenBuffer; 272 + alias SetConsoleTitleA SetConsoleTitle; 273 + alias WriteConsoleA WriteConsole; 274 + alias WriteConsoleInputA WriteConsoleInput; 275 + alias WriteConsoleOutputA WriteConsoleOutput; 276 + alias WriteConsoleOutputCharacterA WriteConsoleOutputCharacter; 277 +}