1
{******************************************************************************}
3
{ Console Applications API interface Unit for Object Pascal }
5
{ Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft }
6
{ Corporation. All Rights Reserved. }
8
{ The original file is: wincon.h, released June 2000. The original Pascal }
9
{ code is: WinCon.pas, released December 2000. The initial developer of the }
10
{ Pascal code is Marcel van Brakel (brakelm att chello dott nl). }
12
{ Portions created by Marcel van Brakel are Copyright (C) 1999-2001 }
13
{ Marcel van Brakel. All Rights Reserved. }
15
{ Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) }
17
{ You may retrieve the latest version of this file at the Project JEDI }
18
{ APILIB home page, located at http://jedi-apilib.sourceforge.net }
20
{ The contents of this file are used with permission, subject to the Mozilla }
21
{ Public License Version 1.1 (the "License"); you may not use this file except }
22
{ in compliance with the License. You may obtain a copy of the License at }
23
{ http://www.mozilla.org/MPL/MPL-1.1.html }
25
{ Software distributed under the License is distributed on an "AS IS" basis, }
26
{ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
27
{ the specific language governing rights and limitations under the License. }
29
{ Alternatively, the contents of this file may be used under the terms of the }
30
{ GNU Lesser General Public License (the "LGPL License"), in which case the }
31
{ provisions of the LGPL License are applicable instead of those above. }
32
{ If you wish to allow use of your version of this file only under the terms }
33
{ of the LGPL License and not to allow others to use your version of this file }
34
{ under the MPL, indicate your decision by deleting the provisions above and }
35
{ replace them with the notice and other provisions required by the LGPL }
36
{ License. If you do not delete the provisions above, a recipient may use }
37
{ your version of this file under either the MPL or the LGPL License. }
39
{ For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
41
{******************************************************************************}
43
// $Id: jwawincon.pas,v 1.1 2005/04/04 07:56:11 marco Exp $
50
{$HPPEMIT '#include "WinCon.h"'}
58
JwaWinBase, JwaWinType;
72
PSMALL_RECT = ^SMALL_RECT;
73
{$EXTERNALSYM PSMALL_RECT}
80
{$EXTERNALSYM _SMALL_RECT}
81
SMALL_RECT = _SMALL_RECT;
82
{$EXTERNALSYM SMALL_RECT}
83
TSmallRect = SMALL_RECT;
84
PSmallRect = PSMALL_RECT;
88
0: (UnicodeChar: WCHAR);
92
PKEY_EVENT_RECORD = ^KEY_EVENT_RECORD;
93
{$EXTERNALSYM PKEY_EVENT_RECORD}
94
_KEY_EVENT_RECORD = record
97
wVirtualKeyCode: WORD;
98
wVirtualScanCode: WORD;
100
dwControlKeyState: DWORD;
102
{$EXTERNALSYM _KEY_EVENT_RECORD}
103
KEY_EVENT_RECORD = _KEY_EVENT_RECORD;
104
{$EXTERNALSYM KEY_EVENT_RECORD}
105
TKeyEventRecord = KEY_EVENT_RECORD;
106
PKeyEventRecord = PKEY_EVENT_RECORD;
109
// ControlKeyState flags
113
RIGHT_ALT_PRESSED = $0001; // the right alt key is pressed.
114
{$EXTERNALSYM RIGHT_ALT_PRESSED}
115
LEFT_ALT_PRESSED = $0002; // the left alt key is pressed.
116
{$EXTERNALSYM LEFT_ALT_PRESSED}
117
RIGHT_CTRL_PRESSED = $0004; // the right ctrl key is pressed.
118
{$EXTERNALSYM RIGHT_CTRL_PRESSED}
119
LEFT_CTRL_PRESSED = $0008; // the left ctrl key is pressed.
120
{$EXTERNALSYM LEFT_CTRL_PRESSED}
121
SHIFT_PRESSED = $0010; // the shift key is pressed.
122
{$EXTERNALSYM SHIFT_PRESSED}
123
NUMLOCK_ON = $0020; // the numlock light is on.
124
{$EXTERNALSYM NUMLOCK_ON}
125
SCROLLLOCK_ON = $0040; // the scrolllock light is on.
126
{$EXTERNALSYM SCROLLLOCK_ON}
127
CAPSLOCK_ON = $0080; // the capslock light is on.
128
{$EXTERNALSYM CAPSLOCK_ON}
129
ENHANCED_KEY = $0100; // the key is enhanced.
130
{$EXTERNALSYM ENHANCED_KEY}
131
NLS_DBCSCHAR = $00010000; // DBCS for JPN: SBCS/DBCS mode.
132
{$EXTERNALSYM NLS_DBCSCHAR}
133
NLS_ALPHANUMERIC = $00000000; // DBCS for JPN: Alphanumeric mode.
134
{$EXTERNALSYM NLS_ALPHANUMERIC}
135
NLS_KATAKANA = $00020000; // DBCS for JPN: Katakana mode.
136
{$EXTERNALSYM NLS_KATAKANA}
137
NLS_HIRAGANA = $00040000; // DBCS for JPN: Hiragana mode.
138
{$EXTERNALSYM NLS_HIRAGANA}
139
NLS_ROMAN = $00400000; // DBCS for JPN: Roman/Noroman mode.
140
{$EXTERNALSYM NLS_ROMAN}
141
NLS_IME_CONVERSION = $00800000; // DBCS for JPN: IME conversion.
142
{$EXTERNALSYM NLS_IME_CONVERSION}
143
NLS_IME_DISABLE = $20000000; // DBCS for JPN: IME enable/disable.
144
{$EXTERNALSYM NLS_IME_DISABLE}
147
PMOUSE_EVENT_RECORD = ^MOUSE_EVENT_RECORD;
148
{$EXTERNALSYM PMOUSE_EVENT_RECORD}
149
_MOUSE_EVENT_RECORD = record
150
dwMousePosition: COORD;
151
dwButtonState: DWORD;
152
dwControlKeyState: DWORD;
155
{$EXTERNALSYM _MOUSE_EVENT_RECORD}
156
MOUSE_EVENT_RECORD = _MOUSE_EVENT_RECORD;
157
{$EXTERNALSYM MOUSE_EVENT_RECORD}
158
TMouseEventRecord = MOUSE_EVENT_RECORD;
159
PMouseEventRecord = PMOUSE_EVENT_RECORD;
166
FROM_LEFT_1ST_BUTTON_PRESSED = $0001;
167
{$EXTERNALSYM FROM_LEFT_1ST_BUTTON_PRESSED}
168
RIGHTMOST_BUTTON_PRESSED = $0002;
169
{$EXTERNALSYM RIGHTMOST_BUTTON_PRESSED}
170
FROM_LEFT_2ND_BUTTON_PRESSED = $0004;
171
{$EXTERNALSYM FROM_LEFT_2ND_BUTTON_PRESSED}
172
FROM_LEFT_3RD_BUTTON_PRESSED = $0008;
173
{$EXTERNALSYM FROM_LEFT_3RD_BUTTON_PRESSED}
174
FROM_LEFT_4TH_BUTTON_PRESSED = $0010;
175
{$EXTERNALSYM FROM_LEFT_4TH_BUTTON_PRESSED}
182
{$EXTERNALSYM MOUSE_MOVED}
183
DOUBLE_CLICK = $0002;
184
{$EXTERNALSYM DOUBLE_CLICK}
185
MOUSE_WHEELED = $0004;
186
{$EXTERNALSYM MOUSE_WHEELED}
189
PWINDOW_BUFFER_SIZE_RECORD = ^WINDOW_BUFFER_SIZE_RECORD;
190
{$EXTERNALSYM PWINDOW_BUFFER_SIZE_RECORD}
191
_WINDOW_BUFFER_SIZE_RECORD = record
194
{$EXTERNALSYM _WINDOW_BUFFER_SIZE_RECORD}
195
WINDOW_BUFFER_SIZE_RECORD = _WINDOW_BUFFER_SIZE_RECORD;
196
{$EXTERNALSYM WINDOW_BUFFER_SIZE_RECORD}
197
TWindowBufferSizeRecord = WINDOW_BUFFER_SIZE_RECORD;
198
PWindowBufferSizeRecord = PWINDOW_BUFFER_SIZE_RECORD;
200
PMENU_EVENT_RECORD = ^MENU_EVENT_RECORD;
201
{$EXTERNALSYM PMENU_EVENT_RECORD}
202
_MENU_EVENT_RECORD = record
205
{$EXTERNALSYM _MENU_EVENT_RECORD}
206
MENU_EVENT_RECORD = _MENU_EVENT_RECORD;
207
{$EXTERNALSYM MENU_EVENT_RECORD}
208
TMenuEventRecord = MENU_EVENT_RECORD;
209
PMenuEventRecord = PMENU_EVENT_RECORD;
211
PFOCUS_EVENT_RECORD = ^FOCUS_EVENT_RECORD;
212
{$EXTERNALSYM PFOCUS_EVENT_RECORD}
213
_FOCUS_EVENT_RECORD = record
216
{$EXTERNALSYM _FOCUS_EVENT_RECORD}
217
FOCUS_EVENT_RECORD = _FOCUS_EVENT_RECORD;
218
{$EXTERNALSYM FOCUS_EVENT_RECORD}
219
TFocusEventRecord = FOCUS_EVENT_RECORD;
220
PFocusEventRecord = PFOCUS_EVENT_RECORD;
222
PINPUT_RECORD = ^INPUT_RECORD;
223
{$EXTERNALSYM PINPUT_RECORD}
224
_INPUT_RECORD = record
227
0: (KeyEvent: KEY_EVENT_RECORD);
228
1: (MouseEvent: MOUSE_EVENT_RECORD);
229
2: (WindowBufferSizeEvent: WINDOW_BUFFER_SIZE_RECORD);
230
3: (MenuEvent: MENU_EVENT_RECORD);
231
4: (FocusEvent: FOCUS_EVENT_RECORD);
233
{$EXTERNALSYM _INPUT_RECORD}
234
INPUT_RECORD = _INPUT_RECORD;
235
{$EXTERNALSYM INPUT_RECORD}
236
TInputRecord = INPUT_RECORD;
237
PInputRecord = PINPUT_RECORD;
244
KEY_EVENT = $0001; // Event contains key event record
245
{$EXTERNALSYM KEY_EVENT}
246
MOUSE_EVENT = $0002; // Event contains mouse event record
247
{$EXTERNALSYM MOUSE_EVENT}
248
WINDOW_BUFFER_SIZE_EVENT = $0004; // Event contains window change event record
249
{$EXTERNALSYM WINDOW_BUFFER_SIZE_EVENT}
250
MENU_EVENT = $0008; // Event contains menu event record
251
{$EXTERNALSYM MENU_EVENT}
252
FOCUS_EVENT = $0010; // event contains focus change
253
{$EXTERNALSYM FOCUS_EVENT}
256
PCHAR_INFO = ^CHAR_INFO;
257
{$EXTERNALSYM PCHAR_INFO}
262
{$EXTERNALSYM _CHAR_INFO}
263
CHAR_INFO = _CHAR_INFO;
264
{$EXTERNALSYM CHAR_INFO}
265
TCharInfo = CHAR_INFO;
266
PCharInfo = PCHAR_INFO;
273
FOREGROUND_BLUE = $0001; // text color contains blue.
274
{$EXTERNALSYM FOREGROUND_BLUE}
275
FOREGROUND_GREEN = $0002; // text color contains green.
276
{$EXTERNALSYM FOREGROUND_GREEN}
277
FOREGROUND_RED = $0004; // text color contains red.
278
{$EXTERNALSYM FOREGROUND_RED}
279
FOREGROUND_INTENSITY = $0008; // text color is intensified.
280
{$EXTERNALSYM FOREGROUND_INTENSITY}
281
BACKGROUND_BLUE = $0010; // background color contains blue.
282
{$EXTERNALSYM BACKGROUND_BLUE}
283
BACKGROUND_GREEN = $0020; // background color contains green.
284
{$EXTERNALSYM BACKGROUND_GREEN}
285
BACKGROUND_RED = $0040; // background color contains red.
286
{$EXTERNALSYM BACKGROUND_RED}
287
BACKGROUND_INTENSITY = $0080; // background color is intensified.
288
{$EXTERNALSYM BACKGROUND_INTENSITY}
289
COMMON_LVB_LEADING_BYTE = $0100; // Leading Byte of DBCS
290
{$EXTERNALSYM COMMON_LVB_LEADING_BYTE}
291
COMMON_LVB_TRAILING_BYTE = $0200; // Trailing Byte of DBCS
292
{$EXTERNALSYM COMMON_LVB_TRAILING_BYTE}
293
COMMON_LVB_GRID_HORIZONTAL = $0400; // DBCS: Grid attribute: top horizontal.
294
{$EXTERNALSYM COMMON_LVB_GRID_HORIZONTAL}
295
COMMON_LVB_GRID_LVERTICAL = $0800; // DBCS: Grid attribute: left vertical.
296
{$EXTERNALSYM COMMON_LVB_GRID_LVERTICAL}
297
COMMON_LVB_GRID_RVERTICAL = $1000; // DBCS: Grid attribute: right vertical.
298
{$EXTERNALSYM COMMON_LVB_GRID_RVERTICAL}
299
COMMON_LVB_REVERSE_VIDEO = $4000; // DBCS: Reverse fore/back ground attribute.
300
{$EXTERNALSYM COMMON_LVB_REVERSE_VIDEO}
301
COMMON_LVB_UNDERSCORE = $8000; // DBCS: Underscore.
302
{$EXTERNALSYM COMMON_LVB_UNDERSCORE}
304
COMMON_LVB_SBCSDBCS = $0300; // SBCS or DBCS flag.
305
{$EXTERNALSYM COMMON_LVB_SBCSDBCS}
308
PCONSOLE_SCREEN_BUFFER_INFO = ^CONSOLE_SCREEN_BUFFER_INFO;
309
{$EXTERNALSYM PCONSOLE_SCREEN_BUFFER_INFO}
310
_CONSOLE_SCREEN_BUFFER_INFO = record
312
dwCursorPosition: COORD;
314
srWindow: SMALL_RECT;
315
dwMaximumWindowSize: COORD;
317
{$EXTERNALSYM _CONSOLE_SCREEN_BUFFER_INFO}
318
CONSOLE_SCREEN_BUFFER_INFO = _CONSOLE_SCREEN_BUFFER_INFO;
319
{$EXTERNALSYM CONSOLE_SCREEN_BUFFER_INFO}
320
TConsoleScreenBufferInfo = CONSOLE_SCREEN_BUFFER_INFO;
321
PConsoleScreenBufferInfo = PCONSOLE_SCREEN_BUFFER_INFO;
323
PCONSOLE_CURSOR_INFO = ^CONSOLE_CURSOR_INFO;
324
{$EXTERNALSYM PCONSOLE_CURSOR_INFO}
325
_CONSOLE_CURSOR_INFO = record
329
{$EXTERNALSYM _CONSOLE_CURSOR_INFO}
330
CONSOLE_CURSOR_INFO = _CONSOLE_CURSOR_INFO;
331
{$EXTERNALSYM CONSOLE_CURSOR_INFO}
332
TConsoleCursorInfo = CONSOLE_CURSOR_INFO;
333
PConsoleCursorInfo = PCONSOLE_CURSOR_INFO;
335
_CONSOLE_FONT_INFO = record
339
{$EXTERNALSYM _CONSOLE_FONT_INFO}
340
CONSOLE_FONT_INFO = _CONSOLE_FONT_INFO;
341
{$EXTERNALSYM CONSOLE_FONT_INFO}
342
PCONSOLE_FONT_INFO = ^CONSOLE_FONT_INFO;
343
{$EXTERNALSYM PCONSOLE_FONT_INFO}
344
TConsoleFontInfo = CONSOLE_FONT_INFO;
345
PConsoleFontInfo = PCONSOLE_FONT_INFO;
347
_CONSOLE_SELECTION_INFO = record
349
dwSelectionAnchor: COORD;
350
srSelection: SMALL_RECT;
352
{$EXTERNALSYM _CONSOLE_SELECTION_INFO}
353
CONSOLE_SELECTION_INFO = _CONSOLE_SELECTION_INFO;
354
{$EXTERNALSYM CONSOLE_SELECTION_INFO}
355
PCONSOLE_SELECTION_INFO = ^CONSOLE_SELECTION_INFO;
356
{$EXTERNALSYM PCONSOLE_SELECTION_INFO}
357
TConsoleSelectionInfo = CONSOLE_SELECTION_INFO;
358
PConsoleSelectionInfo = PCONSOLE_SELECTION_INFO;
365
CONSOLE_NO_SELECTION = $0000;
366
{$EXTERNALSYM CONSOLE_NO_SELECTION}
367
CONSOLE_SELECTION_IN_PROGRESS = $0001; // selection has begun
368
{$EXTERNALSYM CONSOLE_SELECTION_IN_PROGRESS}
369
CONSOLE_SELECTION_NOT_EMPTY = $0002; // non-null select rectangle
370
{$EXTERNALSYM CONSOLE_SELECTION_NOT_EMPTY}
371
CONSOLE_MOUSE_SELECTION = $0004; // selecting with mouse
372
{$EXTERNALSYM CONSOLE_MOUSE_SELECTION}
373
CONSOLE_MOUSE_DOWN = $0008; // mouse is down
374
{$EXTERNALSYM CONSOLE_MOUSE_DOWN}
377
// typedef for ctrl-c handler routines
381
PHANDLER_ROUTINE = function(CtrlType: DWORD): BOOL; stdcall;
382
{$EXTERNALSYM PHANDLER_ROUTINE}
383
THandlerRoutine = PHANDLER_ROUTINE;
387
{$EXTERNALSYM CTRL_C_EVENT}
388
CTRL_BREAK_EVENT = 1;
389
{$EXTERNALSYM CTRL_BREAK_EVENT}
390
CTRL_CLOSE_EVENT = 2;
391
{$EXTERNALSYM CTRL_CLOSE_EVENT}
394
CTRL_LOGOFF_EVENT = 5;
395
{$EXTERNALSYM CTRL_LOGOFF_EVENT}
396
CTRL_SHUTDOWN_EVENT = 6;
397
{$EXTERNALSYM CTRL_SHUTDOWN_EVENT}
403
ENABLE_PROCESSED_INPUT = $0001;
404
{$EXTERNALSYM ENABLE_PROCESSED_INPUT}
405
ENABLE_LINE_INPUT = $0002;
406
{$EXTERNALSYM ENABLE_LINE_INPUT}
407
ENABLE_ECHO_INPUT = $0004;
408
{$EXTERNALSYM ENABLE_ECHO_INPUT}
409
ENABLE_WINDOW_INPUT = $0008;
410
{$EXTERNALSYM ENABLE_WINDOW_INPUT}
411
ENABLE_MOUSE_INPUT = $0010;
412
{$EXTERNALSYM ENABLE_MOUSE_INPUT}
415
// Output Mode flags:
418
ENABLE_PROCESSED_OUTPUT = $0001;
419
{$EXTERNALSYM ENABLE_PROCESSED_OUTPUT}
420
ENABLE_WRAP_AT_EOL_OUTPUT = $0002;
421
{$EXTERNALSYM ENABLE_WRAP_AT_EOL_OUTPUT}
424
// direct API definitions.
427
function PeekConsoleInputA(hConsoleInput: HANDLE; lpBuffer: PINPUT_RECORD;
428
nLength: DWORD; var lpNumberOfEventsRead: DWORD): BOOL; stdcall;
429
{$EXTERNALSYM PeekConsoleInputA}
430
function PeekConsoleInputW(hConsoleInput: HANDLE; lpBuffer: PINPUT_RECORD;
431
nLength: DWORD; var lpNumberOfEventsRead: DWORD): BOOL; stdcall;
432
{$EXTERNALSYM PeekConsoleInputW}
433
function PeekConsoleInput(hConsoleInput: HANDLE; lpBuffer: PINPUT_RECORD;
434
nLength: DWORD; var lpNumberOfEventsRead: DWORD): BOOL; stdcall;
435
{$EXTERNALSYM PeekConsoleInput}
437
function ReadConsoleInputA(hConsoleInput: HANDLE; lpBuffer: PINPUT_RECORD;
438
nLength: DWORD; var lpNumberOfEventsRead: DWORD): BOOL; stdcall;
439
{$EXTERNALSYM ReadConsoleInputA}
440
function ReadConsoleInputW(hConsoleInput: HANDLE; lpBuffer: PINPUT_RECORD;
441
nLength: DWORD; var lpNumberOfEventsRead: DWORD): BOOL; stdcall;
442
{$EXTERNALSYM ReadConsoleInputW}
443
function ReadConsoleInput(hConsoleInput: HANDLE; lpBuffer: PINPUT_RECORD;
444
nLength: DWORD; var lpNumberOfEventsRead: DWORD): BOOL; stdcall;
445
{$EXTERNALSYM ReadConsoleInput}
447
function WriteConsoleInputA(hConsoleInput: HANDLE; lpBuffer: PINPUT_RECORD;
448
nLength: DWORD; var lpNumberOfEventsWritten: DWORD): BOOL; stdcall;
449
{$EXTERNALSYM WriteConsoleInputA}
450
function WriteConsoleInputW(hConsoleInput: HANDLE; lpBuffer: PINPUT_RECORD;
451
nLength: DWORD; var lpNumberOfEventsWritten: DWORD): BOOL; stdcall;
452
{$EXTERNALSYM WriteConsoleInputW}
453
function WriteConsoleInput(hConsoleInput: HANDLE; lpBuffer: PINPUT_RECORD;
454
nLength: DWORD; var lpNumberOfEventsWritten: DWORD): BOOL; stdcall;
455
{$EXTERNALSYM WriteConsoleInput}
457
function ReadConsoleOutputA(hConsoleOutput: HANDLE; lpBuffer: PCHAR_INFO;
458
dwBufferSize: COORD; dwBufferCoord: COORD;
459
var lpReadRegion: SMALL_RECT): BOOL; stdcall;
460
{$EXTERNALSYM ReadConsoleOutputA}
461
function ReadConsoleOutputW(hConsoleOutput: HANDLE; lpBuffer: PCHAR_INFO;
462
dwBufferSize: COORD; dwBufferCoord: COORD;
463
var lpReadRegion: SMALL_RECT): BOOL; stdcall;
464
{$EXTERNALSYM ReadConsoleOutputW}
465
function ReadConsoleOutput(hConsoleOutput: HANDLE; lpBuffer: PCHAR_INFO;
466
dwBufferSize: COORD; dwBufferCoord: COORD;
467
var lpReadRegion: SMALL_RECT): BOOL; stdcall;
468
{$EXTERNALSYM ReadConsoleOutput}
470
function WriteConsoleOutputA(hConsoleOutput: HANDLE; lpBuffer: PCHAR_INFO;
471
dwBufferSize: COORD; dwBufferCoord: COORD;
472
var lpWriteRegion: SMALL_RECT): BOOL; stdcall;
473
{$EXTERNALSYM WriteConsoleOutputA}
474
function WriteConsoleOutputW(hConsoleOutput: HANDLE; lpBuffer: PCHAR_INFO;
475
dwBufferSize: COORD; dwBufferCoord: COORD;
476
var lpWriteRegion: SMALL_RECT): BOOL; stdcall;
477
{$EXTERNALSYM WriteConsoleOutputW}
478
function WriteConsoleOutput(hConsoleOutput: HANDLE; lpBuffer: PCHAR_INFO;
479
dwBufferSize: COORD; dwBufferCoord: COORD;
480
var lpWriteRegion: SMALL_RECT): BOOL; stdcall;
481
{$EXTERNALSYM WriteConsoleOutput}
483
function ReadConsoleOutputCharacterA(hConsoleOutput: HANDLE; lpCharacter: LPSTR;
484
nLength: DWORD; dwReadCoord: COORD; var lpNumberOfCharsRead: DWORD): BOOL; stdcall;
485
{$EXTERNALSYM ReadConsoleOutputCharacterA}
486
function ReadConsoleOutputCharacterW(hConsoleOutput: HANDLE; lpCharacter: LPWSTR;
487
nLength: DWORD; dwReadCoord: COORD; var lpNumberOfCharsRead: DWORD): BOOL; stdcall;
488
{$EXTERNALSYM ReadConsoleOutputCharacterW}
489
function ReadConsoleOutputCharacter(hConsoleOutput: HANDLE; lpCharacter: LPTSTR;
490
nLength: DWORD; dwReadCoord: COORD; var lpNumberOfCharsRead: DWORD): BOOL; stdcall;
491
{$EXTERNALSYM ReadConsoleOutputCharacter}
493
function ReadConsoleOutputAttribute(hConsoleOutput: HANDLE;
494
var lpAttribute: DWORD; nLength: DWORD; dwReadCoord: COORD;
495
var lpNumberOfAttrsRead: DWORD): BOOL; stdcall;
496
{$EXTERNALSYM ReadConsoleOutputAttribute}
498
function WriteConsoleOutputCharacterA(hConsoleOutput: HANDLE;
499
lpCharacter: LPCSTR; nLength: DWORD; dwWriteCoord: COORD;
500
var lpNumberOfCharsWritten: DWORD): BOOL; stdcall;
501
{$EXTERNALSYM WriteConsoleOutputCharacterA}
502
function WriteConsoleOutputCharacterW(hConsoleOutput: HANDLE;
503
lpCharacter: LPCWSTR; nLength: DWORD; dwWriteCoord: COORD;
504
var lpNumberOfCharsWritten: DWORD): BOOL; stdcall;
505
{$EXTERNALSYM WriteConsoleOutputCharacterW}
506
function WriteConsoleOutputCharacter(hConsoleOutput: HANDLE;
507
lpCharacter: LPCTSTR; nLength: DWORD; dwWriteCoord: COORD;
508
var lpNumberOfCharsWritten: DWORD): BOOL; stdcall;
509
{$EXTERNALSYM WriteConsoleOutputCharacter}
511
function WriteConsoleOutputAttribute(hConsoleOutput: HANDLE; lpAttribute: PWORD;
512
nLength: DWORD; dwWriteCoord: COORD; var lpNumberOfAttrsWritten: DWORD): BOOL; stdcall;
513
{$EXTERNALSYM WriteConsoleOutputAttribute}
515
function FillConsoleOutputCharacterA(hConsoleOutput: HANDLE; cCharacter: CHAR;
516
nLength: DWORD; dwWriteCoord: COORD; var lpNumberOfCharsWritten: DWORD): BOOL; stdcall;
517
{$EXTERNALSYM FillConsoleOutputCharacterA}
518
function FillConsoleOutputCharacterW(hConsoleOutput: HANDLE; cCharacter: WCHAR;
519
nLength: DWORD; dwWriteCoord: COORD; var lpNumberOfCharsWritten: DWORD): BOOL; stdcall;
520
{$EXTERNALSYM FillConsoleOutputCharacterW}
521
function FillConsoleOutputCharacter(hConsoleOutput: HANDLE; cCharacter: TCHAR;
522
nLength: DWORD; dwWriteCoord: COORD; var lpNumberOfCharsWritten: DWORD): BOOL; stdcall;
523
{$EXTERNALSYM FillConsoleOutputCharacter}
525
function FillConsoleOutputAttribute(hConsoleOutput: HANDLE; wAttribute: WORD;
526
nLength: DWORD; dwWriteCoord: COORD; var lpNumberOfAttrsWritten: DWORD): BOOL; stdcall;
527
{$EXTERNALSYM FillConsoleOutputAttribute}
528
function GetConsoleMode(hConsoleHandle: HANDLE; var lpMode: DWORD): BOOL; stdcall;
529
{$EXTERNALSYM GetConsoleMode}
530
function GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE;
531
var lpNumberOfEvents: DWORD): BOOL; stdcall;
532
{$EXTERNALSYM GetNumberOfConsoleInputEvents}
533
function GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE;
534
var lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO): BOOL; stdcall;
535
{$EXTERNALSYM GetConsoleScreenBufferInfo}
536
function GetLargestConsoleWindowSize(hConsoleOutput: HANDLE): COORD; stdcall;
537
{$EXTERNALSYM GetLargestConsoleWindowSize}
538
function GetConsoleCursorInfo(hConsoleOutput: HANDLE;
539
var lpConsoleCursorInfo: CONSOLE_CURSOR_INFO): BOOL; stdcall;
540
function GetCurrentConsoleFont(hConsoleOutput: HANDLE; bMaximumWindow: BOOL;
541
var lpConsoleCurrentFont: CONSOLE_FONT_INFO): BOOL; stdcall;
542
{$EXTERNALSYM GetCurrentConsoleFont}
543
function GetConsoleFontSize(hConsoleOutput: HANDLE; nFont: DWORD): COORD; stdcall;
544
{$EXTERNALSYM GetConsoleFontSize}
545
function GetConsoleSelectionInfo(var lpConsoleSelectionInfo: CONSOLE_SELECTION_INFO): BOOL; stdcall;
546
{$EXTERNALSYM GetConsoleSelectionInfo}
547
{$EXTERNALSYM GetConsoleCursorInfo}
548
function GetNumberOfConsoleMouseButtons(var lpNumberOfMouseButtons: DWORD): BOOL; stdcall;
549
{$EXTERNALSYM GetNumberOfConsoleMouseButtons}
550
function SetConsoleMode(hConsoleHandle: HANDLE; dwMode: DWORD): BOOL; stdcall;
551
{$EXTERNALSYM SetConsoleMode}
552
function SetConsoleActiveScreenBuffer(hConsoleOutput: HANDLE): BOOL; stdcall;
553
{$EXTERNALSYM SetConsoleActiveScreenBuffer}
554
function FlushConsoleInputBuffer(hConsoleInput: HANDLE): BOOL; stdcall;
555
{$EXTERNALSYM FlushConsoleInputBuffer}
556
function SetConsoleScreenBufferSize(hConsoleOutput: HANDLE; dwSize: COORD): BOOL; stdcall;
557
{$EXTERNALSYM SetConsoleScreenBufferSize}
558
function SetConsoleCursorPosition(hConsoleOutput: HANDLE; dwCursorPosition: COORD): BOOL; stdcall;
559
{$EXTERNALSYM SetConsoleCursorPosition}
560
function SetConsoleCursorInfo(hConsoleOutput: HANDLE;
561
var lpConsoleCursorInfo: CONSOLE_CURSOR_INFO): BOOL; stdcall;
562
{$EXTERNALSYM SetConsoleCursorInfo}
564
function ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE;
565
const lpScrollRectangle: SMALL_RECT; lpClipRectangle: PSMALL_RECT;
566
dwDestinationOrigin: COORD; const lpFill: CHAR_INFO): BOOL; stdcall;
567
{$EXTERNALSYM ScrollConsoleScreenBufferA}
568
function ScrollConsoleScreenBufferW(hConsoleOutput: HANDLE;
569
const lpScrollRectangle: PSMALL_RECT; lpClipRectangle: PSMALL_RECT;
570
dwDestinationOrigin: COORD; const lpFill: CHAR_INFO): BOOL; stdcall;
571
{$EXTERNALSYM ScrollConsoleScreenBufferW}
572
function ScrollConsoleScreenBuffer(hConsoleOutput: HANDLE;
573
const lpScrollRectangle: PSMALL_RECT; lpClipRectangle: PSMALL_RECT;
574
dwDestinationOrigin: COORD; const lpFill: CHAR_INFO): BOOL; stdcall;
575
{$EXTERNALSYM ScrollConsoleScreenBuffer}
577
function SetConsoleWindowInfo(hConsoleOutput: HANDLE; bAbsolute: BOOL;
578
const lpConsoleWindow: SMALL_RECT): BOOL; stdcall;
579
{$EXTERNALSYM SetConsoleWindowInfo}
580
function SetConsoleTextAttribute(hConsoleOutput: HANDLE; wAttributes: WORD): BOOL; stdcall;
581
{$EXTERNALSYM SetConsoleTextAttribute}
582
function SetConsoleCtrlHandler(HandlerRoutine: PHANDLER_ROUTINE; Add: BOOL): BOOL; stdcall;
583
{$EXTERNALSYM SetConsoleCtrlHandler}
584
function GenerateConsoleCtrlEvent(dwCtrlEvent: DWORD; dwProcessGroupId: DWORD): BOOL; stdcall;
585
{$EXTERNALSYM GenerateConsoleCtrlEvent}
586
function AllocConsole: BOOL; stdcall;
587
{$EXTERNALSYM AllocConsole}
588
function FreeConsole: BOOL; stdcall;
589
{$EXTERNALSYM FreeConsole}
590
function AttachConsole(dwProcessId: DWORD): BOOL; stdcall;
591
{$EXTERNALSYM AttachConsole}
594
ATTACH_PARENT_PROCESS = DWORD(-1);
595
{$EXTERNALSYM ATTACH_PARENT_PROCESS}
597
function GetConsoleTitleA(lpConsoleTitle: LPSTR; nSize: DWORD): DWORD; stdcall;
598
{$EXTERNALSYM GetConsoleTitleA}
599
function GetConsoleTitleW(lpConsoleTitle: LPWSTR; nSize: DWORD): DWORD; stdcall;
600
{$EXTERNALSYM GetConsoleTitleW}
601
function GetConsoleTitle(lpConsoleTitle: LPTSTR; nSize: DWORD): DWORD; stdcall;
602
{$EXTERNALSYM GetConsoleTitle}
604
function SetConsoleTitleA(lpConsoleTitle: LPCSTR): BOOL; stdcall;
605
{$EXTERNALSYM SetConsoleTitleA}
606
function SetConsoleTitleW(lpConsoleTitle: LPCWSTR): BOOL; stdcall;
607
{$EXTERNALSYM SetConsoleTitleW}
608
function SetConsoleTitle(lpConsoleTitle: LPCTSTR): BOOL; stdcall;
609
{$EXTERNALSYM SetConsoleTitle}
611
function ReadConsoleA(hConsoleInput: HANDLE; lpBuffer: LPVOID;
612
nNumberOfCharsToRead: DWORD; var lpNumberOfCharsRead: DWORD;
613
lpReserved: LPVOID): BOOL; stdcall;
614
{$EXTERNALSYM ReadConsoleA}
615
function ReadConsoleW(hConsoleInput: HANDLE; lpBuffer: LPVOID;
616
nNumberOfCharsToRead: DWORD; var lpNumberOfCharsRead: DWORD;
617
lpReserved: LPVOID): BOOL; stdcall;
618
{$EXTERNALSYM ReadConsoleW}
619
function ReadConsole(hConsoleInput: HANDLE; lpBuffer: LPVOID;
620
nNumberOfCharsToRead: DWORD; var lpNumberOfCharsRead: DWORD;
621
lpReserved: LPVOID): BOOL; stdcall;
622
{$EXTERNALSYM ReadConsole}
624
function WriteConsoleA(hConsoleOutput: HANDLE; lpBuffer: LPVOID;
625
nNumberOfCharsToWrite: DWORD; var lpNumberOfCharsWritten: DWORD;
626
lpReserved: LPVOID): BOOL; stdcall;
627
{$EXTERNALSYM WriteConsoleA}
628
function WriteConsoleW(hConsoleOutput: HANDLE; lpBuffer: LPVOID;
629
nNumberOfCharsToWrite: DWORD; var lpNumberOfCharsWritten: DWORD;
630
lpReserved: LPVOID): BOOL; stdcall;
631
{$EXTERNALSYM WriteConsoleW}
632
function WriteConsole(hConsoleOutput: HANDLE; lpBuffer: LPVOID;
633
nNumberOfCharsToWrite: DWORD; var lpNumberOfCharsWritten: DWORD;
634
lpReserved: LPVOID): BOOL; stdcall;
635
{$EXTERNALSYM WriteConsole}
638
CONSOLE_TEXTMODE_BUFFER = 1;
639
{$EXTERNALSYM CONSOLE_TEXTMODE_BUFFER}
641
function CreateConsoleScreenBuffer(dwDesiredAccess: DWORD; dwShareMode: DWORD;
642
lpSecurityAttributes: PSECURITY_ATTRIBUTES; dwFlags: DWORD;
643
lpScreenBufferData: LPVOID): HANDLE; stdcall;
644
{$EXTERNALSYM CreateConsoleScreenBuffer}
645
function GetConsoleCP: UINT; stdcall;
646
{$EXTERNALSYM GetConsoleCP}
647
function SetConsoleCP(wCodePageID: UINT): BOOL; stdcall;
648
{$EXTERNALSYM SetConsoleCP}
649
function GetConsoleOutputCP: UINT; stdcall;
650
{$EXTERNALSYM GetConsoleOutputCP}
651
function SetConsoleOutputCP(wCodePageID: UINT): BOOL; stdcall;
652
{$EXTERNALSYM SetConsoleOutputCP}
655
CONSOLE_FULLSCREEN = 1; // fullscreen console
656
{$EXTERNALSYM CONSOLE_FULLSCREEN}
657
CONSOLE_FULLSCREEN_HARDWARE = 2; // console owns the hardware
658
{$EXTERNALSYM CONSOLE_FULLSCREEN_HARDWARE}
660
function GetConsoleDisplayMode(var lpModeFlags: DWORD): BOOL; stdcall;
661
{$EXTERNALSYM GetConsoleDisplayMode}
663
function GetConsoleWindow: HWND; stdcall;
664
{$EXTERNALSYM GetConsoleWindow}
666
function GetConsoleProcessList(var lpdwProcessList: LPDWORD; dwProcessCount: DWORD): DWORD; stdcall;
667
{$EXTERNALSYM GetConsoleProcessList}
673
function AddConsoleAliasA(Source, Target, ExeName: LPSTR): BOOL; stdcall;
674
{$EXTERNALSYM AddConsoleAliasA}
675
function AddConsoleAliasW(Source, Target, ExeName: LPWSTR): BOOL; stdcall;
676
{$EXTERNALSYM AddConsoleAliasW}
677
function AddConsoleAlias(Source, Target, ExeName: LPTSTR): BOOL; stdcall;
678
{$EXTERNALSYM AddConsoleAlias}
680
function GetConsoleAliasA(Source, TargetBuffer: LPSTR; TargetBufferLength: DWORD; ExeName: LPSTR): DWORD; stdcall;
681
{$EXTERNALSYM GetConsoleAliasA}
682
function GetConsoleAliasW(Source, TargetBuffer: LPWSTR; TargetBufferLength: DWORD; ExeName: LPWSTR): DWORD; stdcall;
683
{$EXTERNALSYM GetConsoleAliasW}
684
function GetConsoleAlias(Source, TargetBuffer: LPTSTR; TargetBufferLength: DWORD; ExeName: LPTSTR): DWORD; stdcall;
685
{$EXTERNALSYM GetConsoleAlias}
687
function GetConsoleAliasesLengthA(ExeName: LPSTR): DWORD; stdcall;
688
{$EXTERNALSYM GetConsoleAliasesLengthA}
689
function GetConsoleAliasesLengthW(ExeName: LPWSTR): DWORD; stdcall;
690
{$EXTERNALSYM GetConsoleAliasesLengthW}
691
function GetConsoleAliasesLength(ExeName: LPTSTR): DWORD; stdcall;
692
{$EXTERNALSYM GetConsoleAliasesLength}
694
function GetConsoleAliasExesLengthA: DWORD; stdcall;
695
{$EXTERNALSYM GetConsoleAliasExesLengthA}
696
function GetConsoleAliasExesLengthW: DWORD; stdcall;
697
{$EXTERNALSYM GetConsoleAliasExesLengthW}
698
function GetConsoleAliasExesLength: DWORD; stdcall;
699
{$EXTERNALSYM GetConsoleAliasExesLength}
701
function GetConsoleAliasesA(AliasBuffer: LPSTR; AliasBufferLength: DWORD; ExeName: LPSTR): DWORD; stdcall;
702
{$EXTERNALSYM GetConsoleAliasesA}
703
function GetConsoleAliasesW(AliasBuffer: LPWSTR; AliasBufferLength: DWORD; ExeName: LPWSTR): DWORD; stdcall;
704
{$EXTERNALSYM GetConsoleAliasesW}
705
function GetConsoleAliases(AliasBuffer: LPTSTR; AliasBufferLength: DWORD; ExeName: LPTSTR): DWORD; stdcall;
706
{$EXTERNALSYM GetConsoleAliases}
708
function GetConsoleAliasExesA(ExeNameBuffer: LPSTR; ExeNameBufferLength: DWORD): DWORD; stdcall;
709
{$EXTERNALSYM GetConsoleAliasExesA}
710
function GetConsoleAliasExesW(ExeNameBuffer: LPWSTR; ExeNameBufferLength: DWORD): DWORD; stdcall;
711
{$EXTERNALSYM GetConsoleAliasExesW}
712
function GetConsoleAliasExes(ExeNameBuffer: LPTSTR; ExeNameBufferLength: DWORD): DWORD; stdcall;
713
{$EXTERNALSYM GetConsoleAliasExes}
718
kernel32 = 'kernel32.dll';
725
{$IFDEF DYNAMIC_LINK}
728
_PeekConsoleInputA: Pointer;
730
function PeekConsoleInputA;
732
GetProcedureAddress(_PeekConsoleInputA, kernel32, 'PeekConsoleInputA');
736
JMP [_PeekConsoleInputA]
741
_PeekConsoleInputW: Pointer;
743
function PeekConsoleInputW;
745
GetProcedureAddress(_PeekConsoleInputW, kernel32, 'PeekConsoleInputW');
749
JMP [_PeekConsoleInputW]
754
_PeekConsoleInput: Pointer;
756
function PeekConsoleInput;
758
GetProcedureAddress(_PeekConsoleInput, kernel32, 'PeekConsoleInput' + AWSuffix);
762
JMP [_PeekConsoleInput]
767
_ReadConsoleInputA: Pointer;
769
function ReadConsoleInputA;
771
GetProcedureAddress(_ReadConsoleInputA, kernel32, 'ReadConsoleInputA');
775
JMP [_ReadConsoleInputA]
780
_ReadConsoleInputW: Pointer;
782
function ReadConsoleInputW;
784
GetProcedureAddress(_ReadConsoleInputW, kernel32, 'ReadConsoleInputW');
788
JMP [_ReadConsoleInputW]
793
_ReadConsoleInput: Pointer;
795
function ReadConsoleInput;
797
GetProcedureAddress(_ReadConsoleInput, kernel32, 'ReadConsoleInput' + AWSuffix);
801
JMP [_ReadConsoleInput]
806
_WriteConsoleInputA: Pointer;
808
function WriteConsoleInputA;
810
GetProcedureAddress(_WriteConsoleInputA, kernel32, 'WriteConsoleInputA');
814
JMP [_WriteConsoleInputA]
819
_WriteConsoleInputW: Pointer;
821
function WriteConsoleInputW;
823
GetProcedureAddress(_WriteConsoleInputW, kernel32, 'WriteConsoleInputW');
827
JMP [_WriteConsoleInputW]
832
_WriteConsoleInput: Pointer;
834
function WriteConsoleInput;
836
GetProcedureAddress(_WriteConsoleInput, kernel32, 'WriteConsoleInput' + AWSuffix);
840
JMP [_WriteConsoleInput]
845
_ReadConsoleOutputA: Pointer;
847
function ReadConsoleOutputA;
849
GetProcedureAddress(_ReadConsoleOutputA, kernel32, 'ReadConsoleOutputA');
853
JMP [_ReadConsoleOutputA]
858
_ReadConsoleOutputW: Pointer;
860
function ReadConsoleOutputW;
862
GetProcedureAddress(_ReadConsoleOutputW, kernel32, 'ReadConsoleOutputW');
866
JMP [_ReadConsoleOutputW]
871
_ReadConsoleOutput: Pointer;
873
function ReadConsoleOutput;
875
GetProcedureAddress(_ReadConsoleOutput, kernel32, 'ReadConsoleOutput' + AWSuffix);
879
JMP [_ReadConsoleOutput]
884
_WriteConsoleOutputA: Pointer;
886
function WriteConsoleOutputA;
888
GetProcedureAddress(_WriteConsoleOutputA, kernel32, 'WriteConsoleOutputA');
892
JMP [_WriteConsoleOutputA]
897
_WriteConsoleOutputW: Pointer;
899
function WriteConsoleOutputW;
901
GetProcedureAddress(_WriteConsoleOutputW, kernel32, 'WriteConsoleOutputW');
905
JMP [_WriteConsoleOutputW]
910
_WriteConsoleOutput: Pointer;
912
function WriteConsoleOutput;
914
GetProcedureAddress(_WriteConsoleOutput, kernel32, 'WriteConsoleOutput' + AWSuffix);
918
JMP [_WriteConsoleOutput]
923
_ReadConsoleOutputCharacterA: Pointer;
925
function ReadConsoleOutputCharacterA;
927
GetProcedureAddress(_ReadConsoleOutputCharacterA, kernel32, 'ReadConsoleOutputCharacterA');
931
JMP [_ReadConsoleOutputCharacterA]
936
_ReadConsoleOutputCharacterW: Pointer;
938
function ReadConsoleOutputCharacterW;
940
GetProcedureAddress(_ReadConsoleOutputCharacterW, kernel32, 'ReadConsoleOutputCharacterW');
944
JMP [_ReadConsoleOutputCharacterW]
949
_ReadConsoleOutputCharacter: Pointer;
951
function ReadConsoleOutputCharacter;
953
GetProcedureAddress(_ReadConsoleOutputCharacter, kernel32, 'ReadConsoleOutputCharacter' + AWSuffix);
957
JMP [_ReadConsoleOutputCharacter]
962
_ReadConsoleOutputAttribute: Pointer;
964
function ReadConsoleOutputAttribute;
966
GetProcedureAddress(_ReadConsoleOutputAttribute, kernel32, 'ReadConsoleOutputAttribute');
970
JMP [_ReadConsoleOutputAttribute]
975
_WriteConsoleOutputCharacterA: Pointer;
977
function WriteConsoleOutputCharacterA;
979
GetProcedureAddress(_WriteConsoleOutputCharacterA, kernel32, 'WriteConsoleOutputCharacterA');
983
JMP [_WriteConsoleOutputCharacterA]
988
_WriteConsoleOutputCharacterW: Pointer;
990
function WriteConsoleOutputCharacterW;
992
GetProcedureAddress(_WriteConsoleOutputCharacterW, kernel32, 'WriteConsoleOutputCharacterW');
996
JMP [_WriteConsoleOutputCharacterW]
1001
_WriteConsoleOutputCharacter: Pointer;
1003
function WriteConsoleOutputCharacter;
1005
GetProcedureAddress(_WriteConsoleOutputCharacter, kernel32, 'WriteConsoleOutputCharacter' + AWSuffix);
1009
JMP [_WriteConsoleOutputCharacter]
1014
_WriteConsoleOutputAttribute: Pointer;
1016
function WriteConsoleOutputAttribute;
1018
GetProcedureAddress(_WriteConsoleOutputAttribute, kernel32, 'WriteConsoleOutputAttribute');
1022
JMP [_WriteConsoleOutputAttribute]
1027
_FillConsoleOutputCharacterA: Pointer;
1029
function FillConsoleOutputCharacterA;
1031
GetProcedureAddress(_FillConsoleOutputCharacterA, kernel32, 'FillConsoleOutputCharacterA');
1035
JMP [_FillConsoleOutputCharacterA]
1040
_FillConsoleOutputCharacterW: Pointer;
1042
function FillConsoleOutputCharacterW;
1044
GetProcedureAddress(_FillConsoleOutputCharacterW, kernel32, 'FillConsoleOutputCharacterW');
1048
JMP [_FillConsoleOutputCharacterW]
1053
_FillConsoleOutputCharacter: Pointer;
1055
function FillConsoleOutputCharacter;
1057
GetProcedureAddress(_FillConsoleOutputCharacter, kernel32, 'FillConsoleOutputCharacter' + AWSuffix);
1061
JMP [_FillConsoleOutputCharacter]
1066
_FillConsoleOutputAttribute: Pointer;
1068
function FillConsoleOutputAttribute;
1070
GetProcedureAddress(_FillConsoleOutputAttribute, kernel32, 'FillConsoleOutputAttribute');
1074
JMP [_FillConsoleOutputAttribute]
1079
_GetConsoleMode: Pointer;
1081
function GetConsoleMode;
1083
GetProcedureAddress(_GetConsoleMode, kernel32, 'GetConsoleMode');
1087
JMP [_GetConsoleMode]
1092
_GetNumberOfConsoleInputEvents: Pointer;
1094
function GetNumberOfConsoleInputEvents;
1096
GetProcedureAddress(_GetNumberOfConsoleInputEvents, kernel32, 'GetNumberOfConsoleInputEvents');
1100
JMP [_GetNumberOfConsoleInputEvents]
1105
_GetConsoleScreenBufferInfo: Pointer;
1107
function GetConsoleScreenBufferInfo;
1109
GetProcedureAddress(_GetConsoleScreenBufferInfo, kernel32, 'GetConsoleScreenBufferInfo');
1113
JMP [_GetConsoleScreenBufferInfo]
1118
_GetLargestConsoleWindowSize: Pointer;
1120
function GetLargestConsoleWindowSize;
1122
GetProcedureAddress(_GetLargestConsoleWindowSize, kernel32, 'GetLargestConsoleWindowSize');
1126
JMP [_GetLargestConsoleWindowSize]
1131
_GetConsoleCursorInfo: Pointer;
1133
function GetConsoleCursorInfo;
1135
GetProcedureAddress(_GetConsoleCursorInfo, kernel32, 'GetConsoleCursorInfo');
1139
JMP [_GetConsoleCursorInfo]
1144
_GetCurrentConsoleFont: Pointer;
1146
function GetCurrentConsoleFont;
1148
GetProcedureAddress(_GetCurrentConsoleFont, kernel32, 'GetCurrentConsoleFont');
1152
JMP [_GetCurrentConsoleFont]
1157
_GetConsoleFontSize: Pointer;
1159
function GetConsoleFontSize;
1161
GetProcedureAddress(_GetConsoleFontSize, kernel32, 'GetConsoleFontSize');
1165
JMP [_GetConsoleFontSize]
1170
_GetConsoleSelectionInfo: Pointer;
1172
function GetConsoleSelectionInfo;
1174
GetProcedureAddress(_GetConsoleSelectionInfo, kernel32, 'GetConsoleSelectionInfo');
1178
JMP [_GetConsoleSelectionInfo]
1183
_GetNumberOfConsoleMouseButtons: Pointer;
1185
function GetNumberOfConsoleMouseButtons;
1187
GetProcedureAddress(_GetNumberOfConsoleMouseButtons, kernel32, 'GetNumberOfConsoleMouseButtons');
1191
JMP [_GetNumberOfConsoleMouseButtons]
1196
_SetConsoleMode: Pointer;
1198
function SetConsoleMode;
1200
GetProcedureAddress(_SetConsoleMode, kernel32, 'SetConsoleMode');
1204
JMP [_SetConsoleMode]
1209
_SetConsoleActiveScreenBuffer: Pointer;
1211
function SetConsoleActiveScreenBuffer;
1213
GetProcedureAddress(_SetConsoleActiveScreenBuffer, kernel32, 'SetConsoleActiveScreenBuffer');
1217
JMP [_SetConsoleActiveScreenBuffer]
1222
_FlushConsoleInputBuffer: Pointer;
1224
function FlushConsoleInputBuffer;
1226
GetProcedureAddress(_FlushConsoleInputBuffer, kernel32, 'FlushConsoleInputBuffer');
1230
JMP [_FlushConsoleInputBuffer]
1235
_SetConsoleScreenBufferSize: Pointer;
1237
function SetConsoleScreenBufferSize;
1239
GetProcedureAddress(_SetConsoleScreenBufferSize, kernel32, 'SetConsoleScreenBufferSize');
1243
JMP [_SetConsoleScreenBufferSize]
1248
_SetConsoleCursorPosition: Pointer;
1250
function SetConsoleCursorPosition;
1252
GetProcedureAddress(_SetConsoleCursorPosition, kernel32, 'SetConsoleCursorPosition');
1256
JMP [_SetConsoleCursorPosition]
1261
_SetConsoleCursorInfo: Pointer;
1263
function SetConsoleCursorInfo;
1265
GetProcedureAddress(_SetConsoleCursorInfo, kernel32, 'SetConsoleCursorInfo');
1269
JMP [_SetConsoleCursorInfo]
1274
_ScrollConsoleScreenBufferA: Pointer;
1276
function ScrollConsoleScreenBufferA;
1278
GetProcedureAddress(_ScrollConsoleScreenBufferA, kernel32, 'ScrollConsoleScreenBufferA');
1282
JMP [_ScrollConsoleScreenBufferA]
1287
_ScrollConsoleScreenBufferW: Pointer;
1289
function ScrollConsoleScreenBufferW;
1291
GetProcedureAddress(_ScrollConsoleScreenBufferW, kernel32, 'ScrollConsoleScreenBufferW');
1295
JMP [_ScrollConsoleScreenBufferW]
1300
_ScrollConsoleScreenBuffer: Pointer;
1302
function ScrollConsoleScreenBuffer;
1304
GetProcedureAddress(_ScrollConsoleScreenBuffer, kernel32, 'ScrollConsoleScreenBuffer' + AWSuffix);
1308
JMP [_ScrollConsoleScreenBuffer]
1313
_SetConsoleWindowInfo: Pointer;
1315
function SetConsoleWindowInfo;
1317
GetProcedureAddress(_SetConsoleWindowInfo, kernel32, 'SetConsoleWindowInfo');
1321
JMP [_SetConsoleWindowInfo]
1326
_SetConsoleTextAttribute: Pointer;
1328
function SetConsoleTextAttribute;
1330
GetProcedureAddress(_SetConsoleTextAttribute, kernel32, 'SetConsoleTextAttribute');
1334
JMP [_SetConsoleTextAttribute]
1339
_SetConsoleCtrlHandler: Pointer;
1341
function SetConsoleCtrlHandler;
1343
GetProcedureAddress(_SetConsoleCtrlHandler, kernel32, 'SetConsoleCtrlHandler');
1347
JMP [_SetConsoleCtrlHandler]
1352
_GenerateConsoleCtrlEvent: Pointer;
1354
function GenerateConsoleCtrlEvent;
1356
GetProcedureAddress(_GenerateConsoleCtrlEvent, kernel32, 'GenerateConsoleCtrlEvent');
1360
JMP [_GenerateConsoleCtrlEvent]
1365
_AllocConsole: Pointer;
1367
function AllocConsole;
1369
GetProcedureAddress(_AllocConsole, kernel32, 'AllocConsole');
1378
_FreeConsole: Pointer;
1380
function FreeConsole;
1382
GetProcedureAddress(_FreeConsole, kernel32, 'FreeConsole');
1391
_AttachConsole: Pointer;
1393
function AttachConsole;
1395
GetProcedureAddress(_AttachConsole, kernel32, 'AttachConsole');
1399
JMP [_AttachConsole]
1404
_GetConsoleTitleA: Pointer;
1406
function GetConsoleTitleA;
1408
GetProcedureAddress(_GetConsoleTitleA, kernel32, 'GetConsoleTitleA');
1412
JMP [_GetConsoleTitleA]
1417
_GetConsoleTitleW: Pointer;
1419
function GetConsoleTitleW;
1421
GetProcedureAddress(_GetConsoleTitleW, kernel32, 'GetConsoleTitleW');
1425
JMP [_GetConsoleTitleW]
1430
_GetConsoleTitle: Pointer;
1432
function GetConsoleTitle;
1434
GetProcedureAddress(_GetConsoleTitle, kernel32, 'GetConsoleTitle' + AWSuffix);
1438
JMP [_GetConsoleTitle]
1443
_SetConsoleTitleA: Pointer;
1445
function SetConsoleTitleA;
1447
GetProcedureAddress(_SetConsoleTitleA, kernel32, 'SetConsoleTitleA');
1451
JMP [_SetConsoleTitleA]
1456
_SetConsoleTitleW: Pointer;
1458
function SetConsoleTitleW;
1460
GetProcedureAddress(_SetConsoleTitleW, kernel32, 'SetConsoleTitleW');
1464
JMP [_SetConsoleTitleW]
1469
_SetConsoleTitle: Pointer;
1471
function SetConsoleTitle;
1473
GetProcedureAddress(_SetConsoleTitle, kernel32, 'SetConsoleTitle' + AWSuffix);
1477
JMP [_SetConsoleTitle]
1482
_ReadConsoleA: Pointer;
1484
function ReadConsoleA;
1486
GetProcedureAddress(_ReadConsoleA, kernel32, 'ReadConsoleA');
1495
_ReadConsoleW: Pointer;
1497
function ReadConsoleW;
1499
GetProcedureAddress(_ReadConsoleW, kernel32, 'ReadConsoleW');
1508
_ReadConsole: Pointer;
1510
function ReadConsole;
1512
GetProcedureAddress(_ReadConsole, kernel32, 'ReadConsole' + AWSuffix);
1521
_WriteConsoleA: Pointer;
1523
function WriteConsoleA;
1525
GetProcedureAddress(_WriteConsoleA, kernel32, 'WriteConsoleA');
1529
JMP [_WriteConsoleA]
1534
_WriteConsoleW: Pointer;
1536
function WriteConsoleW;
1538
GetProcedureAddress(_WriteConsoleW, kernel32, 'WriteConsoleW');
1542
JMP [_WriteConsoleW]
1547
_WriteConsole: Pointer;
1549
function WriteConsole;
1551
GetProcedureAddress(_WriteConsole, kernel32, 'WriteConsole' + AWSuffix);
1560
_CreateConsoleScreenBuffer: Pointer;
1562
function CreateConsoleScreenBuffer;
1564
GetProcedureAddress(_CreateConsoleScreenBuffer, kernel32, 'CreateConsoleScreenBuffer');
1568
JMP [_CreateConsoleScreenBuffer]
1573
_GetConsoleCP: Pointer;
1575
function GetConsoleCP;
1577
GetProcedureAddress(_GetConsoleCP, kernel32, 'GetConsoleCP');
1586
_SetConsoleCP: Pointer;
1588
function SetConsoleCP;
1590
GetProcedureAddress(_SetConsoleCP, kernel32, 'SetConsoleCP');
1599
_GetConsoleOutputCP: Pointer;
1601
function GetConsoleOutputCP;
1603
GetProcedureAddress(_GetConsoleOutputCP, kernel32, 'GetConsoleOutputCP');
1607
JMP [_GetConsoleOutputCP]
1612
_SetConsoleOutputCP: Pointer;
1614
function SetConsoleOutputCP;
1616
GetProcedureAddress(_SetConsoleOutputCP, kernel32, 'SetConsoleOutputCP');
1620
JMP [_SetConsoleOutputCP]
1625
_GetConsoleDisplayMode: Pointer;
1627
function GetConsoleDisplayMode;
1629
GetProcedureAddress(_GetConsoleDisplayMode, kernel32, 'GetConsoleDisplayMode');
1633
JMP [_GetConsoleDisplayMode]
1638
_GetConsoleWindow: Pointer;
1640
function GetConsoleWindow;
1642
GetProcedureAddress(_GetConsoleWindow, kernel32, 'GetConsoleWindow');
1646
JMP [_GetConsoleWindow]
1651
_GetConsoleProcessList: Pointer;
1653
function GetConsoleProcessList;
1655
GetProcedureAddress(_GetConsoleProcessList, kernel32, 'GetConsoleProcessList');
1659
JMP [_GetConsoleProcessList]
1664
_AddConsoleAliasA: Pointer;
1666
function AddConsoleAliasA;
1668
GetProcedureAddress(_AddConsoleAliasA, kernel32, 'AddConsoleAliasA');
1672
JMP [_AddConsoleAliasA]
1677
_AddConsoleAliasW: Pointer;
1679
function AddConsoleAliasW;
1681
GetProcedureAddress(_AddConsoleAliasW, kernel32, 'AddConsoleAliasW');
1685
JMP [_AddConsoleAliasW]
1690
_AddConsoleAlias: Pointer;
1692
function AddConsoleAlias;
1694
GetProcedureAddress(_AddConsoleAlias, kernel32, 'AddConsoleAlias' + AWSuffix);
1698
JMP [_AddConsoleAlias]
1703
_GetConsoleAliasA: Pointer;
1705
function GetConsoleAliasA;
1707
GetProcedureAddress(_GetConsoleAliasA, kernel32, 'GetConsoleAliasA');
1711
JMP [_GetConsoleAliasA]
1716
_GetConsoleAliasW: Pointer;
1718
function GetConsoleAliasW;
1720
GetProcedureAddress(_GetConsoleAliasW, kernel32, 'GetConsoleAliasW');
1724
JMP [_GetConsoleAliasW]
1729
_GetConsoleAlias: Pointer;
1731
function GetConsoleAlias;
1733
GetProcedureAddress(_GetConsoleAlias, kernel32, 'GetConsoleAlias' + AWSuffix);
1737
JMP [_GetConsoleAlias]
1742
_GetConsoleAliasesLengthA: Pointer;
1744
function GetConsoleAliasesLengthA;
1746
GetProcedureAddress(_GetConsoleAliasesLengthA, kernel32, 'GetConsoleAliasesLengthA');
1750
JMP [_GetConsoleAliasesLengthA]
1755
_GetConsoleAliasesLengthW: Pointer;
1757
function GetConsoleAliasesLengthW;
1759
GetProcedureAddress(_GetConsoleAliasesLengthW, kernel32, 'GetConsoleAliasesLengthW');
1763
JMP [_GetConsoleAliasesLengthW]
1768
_GetConsoleAliasesLength: Pointer;
1770
function GetConsoleAliasesLength;
1772
GetProcedureAddress(_GetConsoleAliasesLength, kernel32, 'GetConsoleAliasesLength' + AWSuffix);
1776
JMP [_GetConsoleAliasesLength]
1781
_GetConsoleAliasExesLengthA: Pointer;
1783
function GetConsoleAliasExesLengthA;
1785
GetProcedureAddress(_GetConsoleAliasExesLengthA, kernel32, 'GetConsoleAliasExesLengthA');
1789
JMP [_GetConsoleAliasExesLengthA]
1794
_GetConsoleAliasExesLengthW: Pointer;
1796
function GetConsoleAliasExesLengthW;
1798
GetProcedureAddress(_GetConsoleAliasExesLengthW, kernel32, 'GetConsoleAliasExesLengthW');
1802
JMP [_GetConsoleAliasExesLengthW]
1807
_GetConsoleAliasExesLength: Pointer;
1809
function GetConsoleAliasExesLength;
1811
GetProcedureAddress(_GetConsoleAliasExesLength, kernel32, 'GetConsoleAliasExesLength' + AWSuffix);
1815
JMP [_GetConsoleAliasExesLength]
1820
_GetConsoleAliasesA: Pointer;
1822
function GetConsoleAliasesA;
1824
GetProcedureAddress(_GetConsoleAliasesA, kernel32, 'GetConsoleAliasesA');
1828
JMP [_GetConsoleAliasesA]
1833
_GetConsoleAliasesW: Pointer;
1835
function GetConsoleAliasesW;
1837
GetProcedureAddress(_GetConsoleAliasesW, kernel32, 'GetConsoleAliasesW');
1841
JMP [_GetConsoleAliasesW]
1846
_GetConsoleAliases: Pointer;
1848
function GetConsoleAliases;
1850
GetProcedureAddress(_GetConsoleAliases, kernel32, 'GetConsoleAliases' + AWSuffix);
1854
JMP [_GetConsoleAliases]
1859
_GetConsoleAliasExesA: Pointer;
1861
function GetConsoleAliasExesA;
1863
GetProcedureAddress(_GetConsoleAliasExesA, kernel32, 'GetConsoleAliasExesA');
1867
JMP [_GetConsoleAliasExesA]
1872
_GetConsoleAliasExesW: Pointer;
1874
function GetConsoleAliasExesW;
1876
GetProcedureAddress(_GetConsoleAliasExesW, kernel32, 'GetConsoleAliasExesW');
1880
JMP [_GetConsoleAliasExesW]
1885
_GetConsoleAliasExes: Pointer;
1887
function GetConsoleAliasExes;
1889
GetProcedureAddress(_GetConsoleAliasExes, kernel32, 'GetConsoleAliasExes' + AWSuffix);
1893
JMP [_GetConsoleAliasExes]
1899
function PeekConsoleInputA; external kernel32 name 'PeekConsoleInputA';
1900
function PeekConsoleInputW; external kernel32 name 'PeekConsoleInputW';
1901
function PeekConsoleInput; external kernel32 name 'PeekConsoleInput' + AWSuffix;
1902
function ReadConsoleInputA; external kernel32 name 'ReadConsoleInputA';
1903
function ReadConsoleInputW; external kernel32 name 'ReadConsoleInputW';
1904
function ReadConsoleInput; external kernel32 name 'ReadConsoleInput' + AWSuffix;
1905
function WriteConsoleInputA; external kernel32 name 'WriteConsoleInputA';
1906
function WriteConsoleInputW; external kernel32 name 'WriteConsoleInputW';
1907
function WriteConsoleInput; external kernel32 name 'WriteConsoleInput' + AWSuffix;
1908
function ReadConsoleOutputA; external kernel32 name 'ReadConsoleOutputA';
1909
function ReadConsoleOutputW; external kernel32 name 'ReadConsoleOutputW';
1910
function ReadConsoleOutput; external kernel32 name 'ReadConsoleOutput' + AWSuffix;
1911
function WriteConsoleOutputA; external kernel32 name 'WriteConsoleOutputA';
1912
function WriteConsoleOutputW; external kernel32 name 'WriteConsoleOutputW';
1913
function WriteConsoleOutput; external kernel32 name 'WriteConsoleOutput' + AWSuffix;
1914
function ReadConsoleOutputCharacterA; external kernel32 name 'ReadConsoleOutputCharacterA';
1915
function ReadConsoleOutputCharacterW; external kernel32 name 'ReadConsoleOutputCharacterW';
1916
function ReadConsoleOutputCharacter; external kernel32 name 'ReadConsoleOutputCharacter' + AWSuffix;
1917
function ReadConsoleOutputAttribute; external kernel32 name 'ReadConsoleOutputAttribute';
1918
function WriteConsoleOutputCharacterA; external kernel32 name 'WriteConsoleOutputCharacterA';
1919
function WriteConsoleOutputCharacterW; external kernel32 name 'WriteConsoleOutputCharacterW';
1920
function WriteConsoleOutputCharacter; external kernel32 name 'WriteConsoleOutputCharacter' + AWSuffix;
1921
function WriteConsoleOutputAttribute; external kernel32 name 'WriteConsoleOutputAttribute';
1922
function FillConsoleOutputCharacterA; external kernel32 name 'FillConsoleOutputCharacterA';
1923
function FillConsoleOutputCharacterW; external kernel32 name 'FillConsoleOutputCharacterW';
1924
function FillConsoleOutputCharacter; external kernel32 name 'FillConsoleOutputCharacter' + AWSuffix;
1925
function FillConsoleOutputAttribute; external kernel32 name 'FillConsoleOutputAttribute';
1926
function GetConsoleMode; external kernel32 name 'GetConsoleMode';
1927
function GetNumberOfConsoleInputEvents; external kernel32 name 'GetNumberOfConsoleInputEvents';
1928
function GetConsoleScreenBufferInfo; external kernel32 name 'GetConsoleScreenBufferInfo';
1929
function GetLargestConsoleWindowSize; external kernel32 name 'GetLargestConsoleWindowSize';
1930
function GetConsoleCursorInfo; external kernel32 name 'GetConsoleCursorInfo';
1931
function GetCurrentConsoleFont; external kernel32 name 'GetCurrentConsoleFont';
1932
function GetConsoleFontSize; external kernel32 name 'GetConsoleFontSize';
1933
function GetConsoleSelectionInfo; external kernel32 name 'GetConsoleSelectionInfo';
1934
function GetNumberOfConsoleMouseButtons; external kernel32 name 'GetNumberOfConsoleMouseButtons';
1935
function SetConsoleMode; external kernel32 name 'SetConsoleMode';
1936
function SetConsoleActiveScreenBuffer; external kernel32 name 'SetConsoleActiveScreenBuffer';
1937
function FlushConsoleInputBuffer; external kernel32 name 'FlushConsoleInputBuffer';
1938
function SetConsoleScreenBufferSize; external kernel32 name 'SetConsoleScreenBufferSize';
1939
function SetConsoleCursorPosition; external kernel32 name 'SetConsoleCursorPosition';
1940
function SetConsoleCursorInfo; external kernel32 name 'SetConsoleCursorInfo';
1941
function ScrollConsoleScreenBufferA; external kernel32 name 'ScrollConsoleScreenBufferA';
1942
function ScrollConsoleScreenBufferW; external kernel32 name 'ScrollConsoleScreenBufferW';
1943
function ScrollConsoleScreenBuffer; external kernel32 name 'ScrollConsoleScreenBuffer' + AWSuffix;
1944
function SetConsoleWindowInfo; external kernel32 name 'SetConsoleWindowInfo';
1945
function SetConsoleTextAttribute; external kernel32 name 'SetConsoleTextAttribute';
1946
function SetConsoleCtrlHandler; external kernel32 name 'SetConsoleCtrlHandler';
1947
function GenerateConsoleCtrlEvent; external kernel32 name 'GenerateConsoleCtrlEvent';
1948
function AllocConsole; external kernel32 name 'AllocConsole';
1949
function FreeConsole; external kernel32 name 'FreeConsole';
1950
function AttachConsole; external kernel32 name 'AttachConsole';
1951
function GetConsoleTitleA; external kernel32 name 'GetConsoleTitleA';
1952
function GetConsoleTitleW; external kernel32 name 'GetConsoleTitleW';
1953
function GetConsoleTitle; external kernel32 name 'GetConsoleTitle' + AWSuffix;
1954
function SetConsoleTitleA; external kernel32 name 'SetConsoleTitleA';
1955
function SetConsoleTitleW; external kernel32 name 'SetConsoleTitleW';
1956
function SetConsoleTitle; external kernel32 name 'SetConsoleTitle' + AWSuffix;
1957
function ReadConsoleA; external kernel32 name 'ReadConsoleA';
1958
function ReadConsoleW; external kernel32 name 'ReadConsoleW';
1959
function ReadConsole; external kernel32 name 'ReadConsole' + AWSuffix;
1960
function WriteConsoleA; external kernel32 name 'WriteConsoleA';
1961
function WriteConsoleW; external kernel32 name 'WriteConsoleW';
1962
function WriteConsole; external kernel32 name 'WriteConsole' + AWSuffix;
1963
function CreateConsoleScreenBuffer; external kernel32 name 'CreateConsoleScreenBuffer';
1964
function GetConsoleCP; external kernel32 name 'GetConsoleCP';
1965
function SetConsoleCP; external kernel32 name 'SetConsoleCP';
1966
function GetConsoleOutputCP; external kernel32 name 'GetConsoleOutputCP';
1967
function SetConsoleOutputCP; external kernel32 name 'SetConsoleOutputCP';
1968
function GetConsoleDisplayMode; external kernel32 name 'GetConsoleDisplayMode';
1969
function GetConsoleWindow; external kernel32 name 'GetConsoleWindow';
1970
function GetConsoleProcessList; external kernel32 name 'GetConsoleProcessList';
1971
function AddConsoleAliasA; external kernel32 name 'AddConsoleAliasA';
1972
function AddConsoleAliasW; external kernel32 name 'AddConsoleAliasW';
1973
function AddConsoleAlias; external kernel32 name 'AddConsoleAlias' + AWSuffix;
1974
function GetConsoleAliasA; external kernel32 name 'GetConsoleAliasA';
1975
function GetConsoleAliasW; external kernel32 name 'GetConsoleAliasW';
1976
function GetConsoleAlias; external kernel32 name 'GetConsoleAlias' + AWSuffix;
1977
function GetConsoleAliasesLengthA; external kernel32 name 'GetConsoleAliasesLengthA';
1978
function GetConsoleAliasesLengthW; external kernel32 name 'GetConsoleAliasesLengthW';
1979
function GetConsoleAliasesLength; external kernel32 name 'GetConsoleAliasesLength' + AWSuffix;
1980
function GetConsoleAliasExesLengthA; external kernel32 name 'GetConsoleAliasExesLengthA';
1981
function GetConsoleAliasExesLengthW; external kernel32 name 'GetConsoleAliasExesLengthW';
1982
function GetConsoleAliasExesLength; external kernel32 name 'GetConsoleAliasExesLength' + AWSuffix;
1983
function GetConsoleAliasesA; external kernel32 name 'GetConsoleAliasesA';
1984
function GetConsoleAliasesW; external kernel32 name 'GetConsoleAliasesW';
1985
function GetConsoleAliases; external kernel32 name 'GetConsoleAliases' + AWSuffix;
1986
function GetConsoleAliasExesA; external kernel32 name 'GetConsoleAliasExesA';
1987
function GetConsoleAliasExesW; external kernel32 name 'GetConsoleAliasExesW';
1988
function GetConsoleAliasExes; external kernel32 name 'GetConsoleAliasExes' + AWSuffix;
1990
{$ENDIF DYNAMIC_LINK}
1
{******************************************************************************}
3
{ Console Applications API interface Unit for Object Pascal }
5
{ Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft }
6
{ Corporation. All Rights Reserved. }
8
{ The original file is: wincon.h, released June 2000. The original Pascal }
9
{ code is: WinCon.pas, released December 2000. The initial developer of the }
10
{ Pascal code is Marcel van Brakel (brakelm att chello dott nl). }
12
{ Portions created by Marcel van Brakel are Copyright (C) 1999-2001 }
13
{ Marcel van Brakel. All Rights Reserved. }
15
{ Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) }
17
{ You may retrieve the latest version of this file at the Project JEDI }
18
{ APILIB home page, located at http://jedi-apilib.sourceforge.net }
20
{ The contents of this file are used with permission, subject to the Mozilla }
21
{ Public License Version 1.1 (the "License"); you may not use this file except }
22
{ in compliance with the License. You may obtain a copy of the License at }
23
{ http://www.mozilla.org/MPL/MPL-1.1.html }
25
{ Software distributed under the License is distributed on an "AS IS" basis, }
26
{ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
27
{ the specific language governing rights and limitations under the License. }
29
{ Alternatively, the contents of this file may be used under the terms of the }
30
{ GNU Lesser General Public License (the "LGPL License"), in which case the }
31
{ provisions of the LGPL License are applicable instead of those above. }
32
{ If you wish to allow use of your version of this file only under the terms }
33
{ of the LGPL License and not to allow others to use your version of this file }
34
{ under the MPL, indicate your decision by deleting the provisions above and }
35
{ replace them with the notice and other provisions required by the LGPL }
36
{ License. If you do not delete the provisions above, a recipient may use }
37
{ your version of this file under either the MPL or the LGPL License. }
39
{ For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
41
{******************************************************************************}
49
{$HPPEMIT '#include "WinCon.h"'}
57
JwaWinBase, JwaWinType;
71
PSMALL_RECT = ^SMALL_RECT;
72
{$EXTERNALSYM PSMALL_RECT}
79
{$EXTERNALSYM _SMALL_RECT}
80
SMALL_RECT = _SMALL_RECT;
81
{$EXTERNALSYM SMALL_RECT}
82
TSmallRect = SMALL_RECT;
83
PSmallRect = PSMALL_RECT;
87
0: (UnicodeChar: WCHAR);
91
PKEY_EVENT_RECORD = ^KEY_EVENT_RECORD;
92
{$EXTERNALSYM PKEY_EVENT_RECORD}
93
_KEY_EVENT_RECORD = record
96
wVirtualKeyCode: WORD;
97
wVirtualScanCode: WORD;
99
dwControlKeyState: DWORD;
101
{$EXTERNALSYM _KEY_EVENT_RECORD}
102
KEY_EVENT_RECORD = _KEY_EVENT_RECORD;
103
{$EXTERNALSYM KEY_EVENT_RECORD}
104
TKeyEventRecord = KEY_EVENT_RECORD;
105
PKeyEventRecord = PKEY_EVENT_RECORD;
108
// ControlKeyState flags
112
RIGHT_ALT_PRESSED = $0001; // the right alt key is pressed.
113
{$EXTERNALSYM RIGHT_ALT_PRESSED}
114
LEFT_ALT_PRESSED = $0002; // the left alt key is pressed.
115
{$EXTERNALSYM LEFT_ALT_PRESSED}
116
RIGHT_CTRL_PRESSED = $0004; // the right ctrl key is pressed.
117
{$EXTERNALSYM RIGHT_CTRL_PRESSED}
118
LEFT_CTRL_PRESSED = $0008; // the left ctrl key is pressed.
119
{$EXTERNALSYM LEFT_CTRL_PRESSED}
120
SHIFT_PRESSED = $0010; // the shift key is pressed.
121
{$EXTERNALSYM SHIFT_PRESSED}
122
NUMLOCK_ON = $0020; // the numlock light is on.
123
{$EXTERNALSYM NUMLOCK_ON}
124
SCROLLLOCK_ON = $0040; // the scrolllock light is on.
125
{$EXTERNALSYM SCROLLLOCK_ON}
126
CAPSLOCK_ON = $0080; // the capslock light is on.
127
{$EXTERNALSYM CAPSLOCK_ON}
128
ENHANCED_KEY = $0100; // the key is enhanced.
129
{$EXTERNALSYM ENHANCED_KEY}
130
NLS_DBCSCHAR = $00010000; // DBCS for JPN: SBCS/DBCS mode.
131
{$EXTERNALSYM NLS_DBCSCHAR}
132
NLS_ALPHANUMERIC = $00000000; // DBCS for JPN: Alphanumeric mode.
133
{$EXTERNALSYM NLS_ALPHANUMERIC}
134
NLS_KATAKANA = $00020000; // DBCS for JPN: Katakana mode.
135
{$EXTERNALSYM NLS_KATAKANA}
136
NLS_HIRAGANA = $00040000; // DBCS for JPN: Hiragana mode.
137
{$EXTERNALSYM NLS_HIRAGANA}
138
NLS_ROMAN = $00400000; // DBCS for JPN: Roman/Noroman mode.
139
{$EXTERNALSYM NLS_ROMAN}
140
NLS_IME_CONVERSION = $00800000; // DBCS for JPN: IME conversion.
141
{$EXTERNALSYM NLS_IME_CONVERSION}
142
NLS_IME_DISABLE = $20000000; // DBCS for JPN: IME enable/disable.
143
{$EXTERNALSYM NLS_IME_DISABLE}
146
PMOUSE_EVENT_RECORD = ^MOUSE_EVENT_RECORD;
147
{$EXTERNALSYM PMOUSE_EVENT_RECORD}
148
_MOUSE_EVENT_RECORD = record
149
dwMousePosition: COORD;
150
dwButtonState: DWORD;
151
dwControlKeyState: DWORD;
154
{$EXTERNALSYM _MOUSE_EVENT_RECORD}
155
MOUSE_EVENT_RECORD = _MOUSE_EVENT_RECORD;
156
{$EXTERNALSYM MOUSE_EVENT_RECORD}
157
TMouseEventRecord = MOUSE_EVENT_RECORD;
158
PMouseEventRecord = PMOUSE_EVENT_RECORD;
165
FROM_LEFT_1ST_BUTTON_PRESSED = $0001;
166
{$EXTERNALSYM FROM_LEFT_1ST_BUTTON_PRESSED}
167
RIGHTMOST_BUTTON_PRESSED = $0002;
168
{$EXTERNALSYM RIGHTMOST_BUTTON_PRESSED}
169
FROM_LEFT_2ND_BUTTON_PRESSED = $0004;
170
{$EXTERNALSYM FROM_LEFT_2ND_BUTTON_PRESSED}
171
FROM_LEFT_3RD_BUTTON_PRESSED = $0008;
172
{$EXTERNALSYM FROM_LEFT_3RD_BUTTON_PRESSED}
173
FROM_LEFT_4TH_BUTTON_PRESSED = $0010;
174
{$EXTERNALSYM FROM_LEFT_4TH_BUTTON_PRESSED}
181
{$EXTERNALSYM MOUSE_MOVED}
182
DOUBLE_CLICK = $0002;
183
{$EXTERNALSYM DOUBLE_CLICK}
184
MOUSE_WHEELED = $0004;
185
{$EXTERNALSYM MOUSE_WHEELED}
188
PWINDOW_BUFFER_SIZE_RECORD = ^WINDOW_BUFFER_SIZE_RECORD;
189
{$EXTERNALSYM PWINDOW_BUFFER_SIZE_RECORD}
190
_WINDOW_BUFFER_SIZE_RECORD = record
193
{$EXTERNALSYM _WINDOW_BUFFER_SIZE_RECORD}
194
WINDOW_BUFFER_SIZE_RECORD = _WINDOW_BUFFER_SIZE_RECORD;
195
{$EXTERNALSYM WINDOW_BUFFER_SIZE_RECORD}
196
TWindowBufferSizeRecord = WINDOW_BUFFER_SIZE_RECORD;
197
PWindowBufferSizeRecord = PWINDOW_BUFFER_SIZE_RECORD;
199
PMENU_EVENT_RECORD = ^MENU_EVENT_RECORD;
200
{$EXTERNALSYM PMENU_EVENT_RECORD}
201
_MENU_EVENT_RECORD = record
204
{$EXTERNALSYM _MENU_EVENT_RECORD}
205
MENU_EVENT_RECORD = _MENU_EVENT_RECORD;
206
{$EXTERNALSYM MENU_EVENT_RECORD}
207
TMenuEventRecord = MENU_EVENT_RECORD;
208
PMenuEventRecord = PMENU_EVENT_RECORD;
210
PFOCUS_EVENT_RECORD = ^FOCUS_EVENT_RECORD;
211
{$EXTERNALSYM PFOCUS_EVENT_RECORD}
212
_FOCUS_EVENT_RECORD = record
215
{$EXTERNALSYM _FOCUS_EVENT_RECORD}
216
FOCUS_EVENT_RECORD = _FOCUS_EVENT_RECORD;
217
{$EXTERNALSYM FOCUS_EVENT_RECORD}
218
TFocusEventRecord = FOCUS_EVENT_RECORD;
219
PFocusEventRecord = PFOCUS_EVENT_RECORD;
221
PINPUT_RECORD = ^INPUT_RECORD;
222
{$EXTERNALSYM PINPUT_RECORD}
223
_INPUT_RECORD = record
226
0: (KeyEvent: KEY_EVENT_RECORD);
227
1: (MouseEvent: MOUSE_EVENT_RECORD);
228
2: (WindowBufferSizeEvent: WINDOW_BUFFER_SIZE_RECORD);
229
3: (MenuEvent: MENU_EVENT_RECORD);
230
4: (FocusEvent: FOCUS_EVENT_RECORD);
232
{$EXTERNALSYM _INPUT_RECORD}
233
INPUT_RECORD = _INPUT_RECORD;
234
{$EXTERNALSYM INPUT_RECORD}
235
TInputRecord = INPUT_RECORD;
236
PInputRecord = PINPUT_RECORD;
243
KEY_EVENT = $0001; // Event contains key event record
244
{$EXTERNALSYM KEY_EVENT}
245
MOUSE_EVENT = $0002; // Event contains mouse event record
246
{$EXTERNALSYM MOUSE_EVENT}
247
WINDOW_BUFFER_SIZE_EVENT = $0004; // Event contains window change event record
248
{$EXTERNALSYM WINDOW_BUFFER_SIZE_EVENT}
249
MENU_EVENT = $0008; // Event contains menu event record
250
{$EXTERNALSYM MENU_EVENT}
251
FOCUS_EVENT = $0010; // event contains focus change
252
{$EXTERNALSYM FOCUS_EVENT}
255
PCHAR_INFO = ^CHAR_INFO;
256
{$EXTERNALSYM PCHAR_INFO}
261
{$EXTERNALSYM _CHAR_INFO}
262
CHAR_INFO = _CHAR_INFO;
263
{$EXTERNALSYM CHAR_INFO}
264
TCharInfo = CHAR_INFO;
265
PCharInfo = PCHAR_INFO;
272
FOREGROUND_BLUE = $0001; // text color contains blue.
273
{$EXTERNALSYM FOREGROUND_BLUE}
274
FOREGROUND_GREEN = $0002; // text color contains green.
275
{$EXTERNALSYM FOREGROUND_GREEN}
276
FOREGROUND_RED = $0004; // text color contains red.
277
{$EXTERNALSYM FOREGROUND_RED}
278
FOREGROUND_INTENSITY = $0008; // text color is intensified.
279
{$EXTERNALSYM FOREGROUND_INTENSITY}
280
BACKGROUND_BLUE = $0010; // background color contains blue.
281
{$EXTERNALSYM BACKGROUND_BLUE}
282
BACKGROUND_GREEN = $0020; // background color contains green.
283
{$EXTERNALSYM BACKGROUND_GREEN}
284
BACKGROUND_RED = $0040; // background color contains red.
285
{$EXTERNALSYM BACKGROUND_RED}
286
BACKGROUND_INTENSITY = $0080; // background color is intensified.
287
{$EXTERNALSYM BACKGROUND_INTENSITY}
288
COMMON_LVB_LEADING_BYTE = $0100; // Leading Byte of DBCS
289
{$EXTERNALSYM COMMON_LVB_LEADING_BYTE}
290
COMMON_LVB_TRAILING_BYTE = $0200; // Trailing Byte of DBCS
291
{$EXTERNALSYM COMMON_LVB_TRAILING_BYTE}
292
COMMON_LVB_GRID_HORIZONTAL = $0400; // DBCS: Grid attribute: top horizontal.
293
{$EXTERNALSYM COMMON_LVB_GRID_HORIZONTAL}
294
COMMON_LVB_GRID_LVERTICAL = $0800; // DBCS: Grid attribute: left vertical.
295
{$EXTERNALSYM COMMON_LVB_GRID_LVERTICAL}
296
COMMON_LVB_GRID_RVERTICAL = $1000; // DBCS: Grid attribute: right vertical.
297
{$EXTERNALSYM COMMON_LVB_GRID_RVERTICAL}
298
COMMON_LVB_REVERSE_VIDEO = $4000; // DBCS: Reverse fore/back ground attribute.
299
{$EXTERNALSYM COMMON_LVB_REVERSE_VIDEO}
300
COMMON_LVB_UNDERSCORE = $8000; // DBCS: Underscore.
301
{$EXTERNALSYM COMMON_LVB_UNDERSCORE}
303
COMMON_LVB_SBCSDBCS = $0300; // SBCS or DBCS flag.
304
{$EXTERNALSYM COMMON_LVB_SBCSDBCS}
307
PCONSOLE_SCREEN_BUFFER_INFO = ^CONSOLE_SCREEN_BUFFER_INFO;
308
{$EXTERNALSYM PCONSOLE_SCREEN_BUFFER_INFO}
309
_CONSOLE_SCREEN_BUFFER_INFO = record
311
dwCursorPosition: COORD;
313
srWindow: SMALL_RECT;
314
dwMaximumWindowSize: COORD;
316
{$EXTERNALSYM _CONSOLE_SCREEN_BUFFER_INFO}
317
CONSOLE_SCREEN_BUFFER_INFO = _CONSOLE_SCREEN_BUFFER_INFO;
318
{$EXTERNALSYM CONSOLE_SCREEN_BUFFER_INFO}
319
TConsoleScreenBufferInfo = CONSOLE_SCREEN_BUFFER_INFO;
320
PConsoleScreenBufferInfo = PCONSOLE_SCREEN_BUFFER_INFO;
322
PCONSOLE_CURSOR_INFO = ^CONSOLE_CURSOR_INFO;
323
{$EXTERNALSYM PCONSOLE_CURSOR_INFO}
324
_CONSOLE_CURSOR_INFO = record
328
{$EXTERNALSYM _CONSOLE_CURSOR_INFO}
329
CONSOLE_CURSOR_INFO = _CONSOLE_CURSOR_INFO;
330
{$EXTERNALSYM CONSOLE_CURSOR_INFO}
331
TConsoleCursorInfo = CONSOLE_CURSOR_INFO;
332
PConsoleCursorInfo = PCONSOLE_CURSOR_INFO;
334
_CONSOLE_FONT_INFO = record
338
{$EXTERNALSYM _CONSOLE_FONT_INFO}
339
CONSOLE_FONT_INFO = _CONSOLE_FONT_INFO;
340
{$EXTERNALSYM CONSOLE_FONT_INFO}
341
PCONSOLE_FONT_INFO = ^CONSOLE_FONT_INFO;
342
{$EXTERNALSYM PCONSOLE_FONT_INFO}
343
TConsoleFontInfo = CONSOLE_FONT_INFO;
344
PConsoleFontInfo = PCONSOLE_FONT_INFO;
346
_CONSOLE_SELECTION_INFO = record
348
dwSelectionAnchor: COORD;
349
srSelection: SMALL_RECT;
351
{$EXTERNALSYM _CONSOLE_SELECTION_INFO}
352
CONSOLE_SELECTION_INFO = _CONSOLE_SELECTION_INFO;
353
{$EXTERNALSYM CONSOLE_SELECTION_INFO}
354
PCONSOLE_SELECTION_INFO = ^CONSOLE_SELECTION_INFO;
355
{$EXTERNALSYM PCONSOLE_SELECTION_INFO}
356
TConsoleSelectionInfo = CONSOLE_SELECTION_INFO;
357
PConsoleSelectionInfo = PCONSOLE_SELECTION_INFO;
364
CONSOLE_NO_SELECTION = $0000;
365
{$EXTERNALSYM CONSOLE_NO_SELECTION}
366
CONSOLE_SELECTION_IN_PROGRESS = $0001; // selection has begun
367
{$EXTERNALSYM CONSOLE_SELECTION_IN_PROGRESS}
368
CONSOLE_SELECTION_NOT_EMPTY = $0002; // non-null select rectangle
369
{$EXTERNALSYM CONSOLE_SELECTION_NOT_EMPTY}
370
CONSOLE_MOUSE_SELECTION = $0004; // selecting with mouse
371
{$EXTERNALSYM CONSOLE_MOUSE_SELECTION}
372
CONSOLE_MOUSE_DOWN = $0008; // mouse is down
373
{$EXTERNALSYM CONSOLE_MOUSE_DOWN}
376
// typedef for ctrl-c handler routines
380
PHANDLER_ROUTINE = function(CtrlType: DWORD): BOOL; stdcall;
381
{$EXTERNALSYM PHANDLER_ROUTINE}
382
THandlerRoutine = PHANDLER_ROUTINE;
386
{$EXTERNALSYM CTRL_C_EVENT}
387
CTRL_BREAK_EVENT = 1;
388
{$EXTERNALSYM CTRL_BREAK_EVENT}
389
CTRL_CLOSE_EVENT = 2;
390
{$EXTERNALSYM CTRL_CLOSE_EVENT}
393
CTRL_LOGOFF_EVENT = 5;
394
{$EXTERNALSYM CTRL_LOGOFF_EVENT}
395
CTRL_SHUTDOWN_EVENT = 6;
396
{$EXTERNALSYM CTRL_SHUTDOWN_EVENT}
402
ENABLE_PROCESSED_INPUT = $0001;
403
{$EXTERNALSYM ENABLE_PROCESSED_INPUT}
404
ENABLE_LINE_INPUT = $0002;
405
{$EXTERNALSYM ENABLE_LINE_INPUT}
406
ENABLE_ECHO_INPUT = $0004;
407
{$EXTERNALSYM ENABLE_ECHO_INPUT}
408
ENABLE_WINDOW_INPUT = $0008;
409
{$EXTERNALSYM ENABLE_WINDOW_INPUT}
410
ENABLE_MOUSE_INPUT = $0010;
411
{$EXTERNALSYM ENABLE_MOUSE_INPUT}
414
// Output Mode flags:
417
ENABLE_PROCESSED_OUTPUT = $0001;
418
{$EXTERNALSYM ENABLE_PROCESSED_OUTPUT}
419
ENABLE_WRAP_AT_EOL_OUTPUT = $0002;
420
{$EXTERNALSYM ENABLE_WRAP_AT_EOL_OUTPUT}
423
// direct API definitions.
426
function PeekConsoleInputA(hConsoleInput: HANDLE; lpBuffer: PINPUT_RECORD;
427
nLength: DWORD; var lpNumberOfEventsRead: DWORD): BOOL; stdcall;
428
{$EXTERNALSYM PeekConsoleInputA}
429
function PeekConsoleInputW(hConsoleInput: HANDLE; lpBuffer: PINPUT_RECORD;
430
nLength: DWORD; var lpNumberOfEventsRead: DWORD): BOOL; stdcall;
431
{$EXTERNALSYM PeekConsoleInputW}
432
function PeekConsoleInput(hConsoleInput: HANDLE; lpBuffer: PINPUT_RECORD;
433
nLength: DWORD; var lpNumberOfEventsRead: DWORD): BOOL; stdcall;
434
{$EXTERNALSYM PeekConsoleInput}
436
function ReadConsoleInputA(hConsoleInput: HANDLE; lpBuffer: PINPUT_RECORD;
437
nLength: DWORD; var lpNumberOfEventsRead: DWORD): BOOL; stdcall;
438
{$EXTERNALSYM ReadConsoleInputA}
439
function ReadConsoleInputW(hConsoleInput: HANDLE; lpBuffer: PINPUT_RECORD;
440
nLength: DWORD; var lpNumberOfEventsRead: DWORD): BOOL; stdcall;
441
{$EXTERNALSYM ReadConsoleInputW}
442
function ReadConsoleInput(hConsoleInput: HANDLE; lpBuffer: PINPUT_RECORD;
443
nLength: DWORD; var lpNumberOfEventsRead: DWORD): BOOL; stdcall;
444
{$EXTERNALSYM ReadConsoleInput}
446
function WriteConsoleInputA(hConsoleInput: HANDLE; lpBuffer: PINPUT_RECORD;
447
nLength: DWORD; var lpNumberOfEventsWritten: DWORD): BOOL; stdcall;
448
{$EXTERNALSYM WriteConsoleInputA}
449
function WriteConsoleInputW(hConsoleInput: HANDLE; lpBuffer: PINPUT_RECORD;
450
nLength: DWORD; var lpNumberOfEventsWritten: DWORD): BOOL; stdcall;
451
{$EXTERNALSYM WriteConsoleInputW}
452
function WriteConsoleInput(hConsoleInput: HANDLE; lpBuffer: PINPUT_RECORD;
453
nLength: DWORD; var lpNumberOfEventsWritten: DWORD): BOOL; stdcall;
454
{$EXTERNALSYM WriteConsoleInput}
456
function ReadConsoleOutputA(hConsoleOutput: HANDLE; lpBuffer: PCHAR_INFO;
457
dwBufferSize: COORD; dwBufferCoord: COORD;
458
var lpReadRegion: SMALL_RECT): BOOL; stdcall;
459
{$EXTERNALSYM ReadConsoleOutputA}
460
function ReadConsoleOutputW(hConsoleOutput: HANDLE; lpBuffer: PCHAR_INFO;
461
dwBufferSize: COORD; dwBufferCoord: COORD;
462
var lpReadRegion: SMALL_RECT): BOOL; stdcall;
463
{$EXTERNALSYM ReadConsoleOutputW}
464
function ReadConsoleOutput(hConsoleOutput: HANDLE; lpBuffer: PCHAR_INFO;
465
dwBufferSize: COORD; dwBufferCoord: COORD;
466
var lpReadRegion: SMALL_RECT): BOOL; stdcall;
467
{$EXTERNALSYM ReadConsoleOutput}
469
function WriteConsoleOutputA(hConsoleOutput: HANDLE; lpBuffer: PCHAR_INFO;
470
dwBufferSize: COORD; dwBufferCoord: COORD;
471
var lpWriteRegion: SMALL_RECT): BOOL; stdcall;
472
{$EXTERNALSYM WriteConsoleOutputA}
473
function WriteConsoleOutputW(hConsoleOutput: HANDLE; lpBuffer: PCHAR_INFO;
474
dwBufferSize: COORD; dwBufferCoord: COORD;
475
var lpWriteRegion: SMALL_RECT): BOOL; stdcall;
476
{$EXTERNALSYM WriteConsoleOutputW}
477
function WriteConsoleOutput(hConsoleOutput: HANDLE; lpBuffer: PCHAR_INFO;
478
dwBufferSize: COORD; dwBufferCoord: COORD;
479
var lpWriteRegion: SMALL_RECT): BOOL; stdcall;
480
{$EXTERNALSYM WriteConsoleOutput}
482
function ReadConsoleOutputCharacterA(hConsoleOutput: HANDLE; lpCharacter: LPSTR;
483
nLength: DWORD; dwReadCoord: COORD; var lpNumberOfCharsRead: DWORD): BOOL; stdcall;
484
{$EXTERNALSYM ReadConsoleOutputCharacterA}
485
function ReadConsoleOutputCharacterW(hConsoleOutput: HANDLE; lpCharacter: LPWSTR;
486
nLength: DWORD; dwReadCoord: COORD; var lpNumberOfCharsRead: DWORD): BOOL; stdcall;
487
{$EXTERNALSYM ReadConsoleOutputCharacterW}
488
function ReadConsoleOutputCharacter(hConsoleOutput: HANDLE; lpCharacter: LPTSTR;
489
nLength: DWORD; dwReadCoord: COORD; var lpNumberOfCharsRead: DWORD): BOOL; stdcall;
490
{$EXTERNALSYM ReadConsoleOutputCharacter}
492
function ReadConsoleOutputAttribute(hConsoleOutput: HANDLE;
493
var lpAttribute: DWORD; nLength: DWORD; dwReadCoord: COORD;
494
var lpNumberOfAttrsRead: DWORD): BOOL; stdcall;
495
{$EXTERNALSYM ReadConsoleOutputAttribute}
497
function WriteConsoleOutputCharacterA(hConsoleOutput: HANDLE;
498
lpCharacter: LPCSTR; nLength: DWORD; dwWriteCoord: COORD;
499
var lpNumberOfCharsWritten: DWORD): BOOL; stdcall;
500
{$EXTERNALSYM WriteConsoleOutputCharacterA}
501
function WriteConsoleOutputCharacterW(hConsoleOutput: HANDLE;
502
lpCharacter: LPCWSTR; nLength: DWORD; dwWriteCoord: COORD;
503
var lpNumberOfCharsWritten: DWORD): BOOL; stdcall;
504
{$EXTERNALSYM WriteConsoleOutputCharacterW}
505
function WriteConsoleOutputCharacter(hConsoleOutput: HANDLE;
506
lpCharacter: LPCTSTR; nLength: DWORD; dwWriteCoord: COORD;
507
var lpNumberOfCharsWritten: DWORD): BOOL; stdcall;
508
{$EXTERNALSYM WriteConsoleOutputCharacter}
510
function WriteConsoleOutputAttribute(hConsoleOutput: HANDLE; lpAttribute: PWORD;
511
nLength: DWORD; dwWriteCoord: COORD; var lpNumberOfAttrsWritten: DWORD): BOOL; stdcall;
512
{$EXTERNALSYM WriteConsoleOutputAttribute}
514
function FillConsoleOutputCharacterA(hConsoleOutput: HANDLE; cCharacter: CHAR;
515
nLength: DWORD; dwWriteCoord: COORD; var lpNumberOfCharsWritten: DWORD): BOOL; stdcall;
516
{$EXTERNALSYM FillConsoleOutputCharacterA}
517
function FillConsoleOutputCharacterW(hConsoleOutput: HANDLE; cCharacter: WCHAR;
518
nLength: DWORD; dwWriteCoord: COORD; var lpNumberOfCharsWritten: DWORD): BOOL; stdcall;
519
{$EXTERNALSYM FillConsoleOutputCharacterW}
520
function FillConsoleOutputCharacter(hConsoleOutput: HANDLE; cCharacter: TCHAR;
521
nLength: DWORD; dwWriteCoord: COORD; var lpNumberOfCharsWritten: DWORD): BOOL; stdcall;
522
{$EXTERNALSYM FillConsoleOutputCharacter}
524
function FillConsoleOutputAttribute(hConsoleOutput: HANDLE; wAttribute: WORD;
525
nLength: DWORD; dwWriteCoord: COORD; var lpNumberOfAttrsWritten: DWORD): BOOL; stdcall;
526
{$EXTERNALSYM FillConsoleOutputAttribute}
527
function GetConsoleMode(hConsoleHandle: HANDLE; var lpMode: DWORD): BOOL; stdcall;
528
{$EXTERNALSYM GetConsoleMode}
529
function GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE;
530
var lpNumberOfEvents: DWORD): BOOL; stdcall;
531
{$EXTERNALSYM GetNumberOfConsoleInputEvents}
532
function GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE;
533
var lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO): BOOL; stdcall;
534
{$EXTERNALSYM GetConsoleScreenBufferInfo}
535
function GetLargestConsoleWindowSize(hConsoleOutput: HANDLE): COORD; stdcall;
536
{$EXTERNALSYM GetLargestConsoleWindowSize}
537
function GetConsoleCursorInfo(hConsoleOutput: HANDLE;
538
var lpConsoleCursorInfo: CONSOLE_CURSOR_INFO): BOOL; stdcall;
539
function GetCurrentConsoleFont(hConsoleOutput: HANDLE; bMaximumWindow: BOOL;
540
var lpConsoleCurrentFont: CONSOLE_FONT_INFO): BOOL; stdcall;
541
{$EXTERNALSYM GetCurrentConsoleFont}
542
function GetConsoleFontSize(hConsoleOutput: HANDLE; nFont: DWORD): COORD; stdcall;
543
{$EXTERNALSYM GetConsoleFontSize}
544
function GetConsoleSelectionInfo(var lpConsoleSelectionInfo: CONSOLE_SELECTION_INFO): BOOL; stdcall;
545
{$EXTERNALSYM GetConsoleSelectionInfo}
546
{$EXTERNALSYM GetConsoleCursorInfo}
547
function GetNumberOfConsoleMouseButtons(var lpNumberOfMouseButtons: DWORD): BOOL; stdcall;
548
{$EXTERNALSYM GetNumberOfConsoleMouseButtons}
549
function SetConsoleMode(hConsoleHandle: HANDLE; dwMode: DWORD): BOOL; stdcall;
550
{$EXTERNALSYM SetConsoleMode}
551
function SetConsoleActiveScreenBuffer(hConsoleOutput: HANDLE): BOOL; stdcall;
552
{$EXTERNALSYM SetConsoleActiveScreenBuffer}
553
function FlushConsoleInputBuffer(hConsoleInput: HANDLE): BOOL; stdcall;
554
{$EXTERNALSYM FlushConsoleInputBuffer}
555
function SetConsoleScreenBufferSize(hConsoleOutput: HANDLE; dwSize: COORD): BOOL; stdcall;
556
{$EXTERNALSYM SetConsoleScreenBufferSize}
557
function SetConsoleCursorPosition(hConsoleOutput: HANDLE; dwCursorPosition: COORD): BOOL; stdcall;
558
{$EXTERNALSYM SetConsoleCursorPosition}
559
function SetConsoleCursorInfo(hConsoleOutput: HANDLE;
560
var lpConsoleCursorInfo: CONSOLE_CURSOR_INFO): BOOL; stdcall;
561
{$EXTERNALSYM SetConsoleCursorInfo}
563
function ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE;
564
const lpScrollRectangle: SMALL_RECT; lpClipRectangle: PSMALL_RECT;
565
dwDestinationOrigin: COORD; const lpFill: CHAR_INFO): BOOL; stdcall;
566
{$EXTERNALSYM ScrollConsoleScreenBufferA}
567
function ScrollConsoleScreenBufferW(hConsoleOutput: HANDLE;
568
const lpScrollRectangle: PSMALL_RECT; lpClipRectangle: PSMALL_RECT;
569
dwDestinationOrigin: COORD; const lpFill: CHAR_INFO): BOOL; stdcall;
570
{$EXTERNALSYM ScrollConsoleScreenBufferW}
571
function ScrollConsoleScreenBuffer(hConsoleOutput: HANDLE;
572
const lpScrollRectangle: PSMALL_RECT; lpClipRectangle: PSMALL_RECT;
573
dwDestinationOrigin: COORD; const lpFill: CHAR_INFO): BOOL; stdcall;
574
{$EXTERNALSYM ScrollConsoleScreenBuffer}
576
function SetConsoleWindowInfo(hConsoleOutput: HANDLE; bAbsolute: BOOL;
577
const lpConsoleWindow: SMALL_RECT): BOOL; stdcall;
578
{$EXTERNALSYM SetConsoleWindowInfo}
579
function SetConsoleTextAttribute(hConsoleOutput: HANDLE; wAttributes: WORD): BOOL; stdcall;
580
{$EXTERNALSYM SetConsoleTextAttribute}
581
function SetConsoleCtrlHandler(HandlerRoutine: PHANDLER_ROUTINE; Add: BOOL): BOOL; stdcall;
582
{$EXTERNALSYM SetConsoleCtrlHandler}
583
function GenerateConsoleCtrlEvent(dwCtrlEvent: DWORD; dwProcessGroupId: DWORD): BOOL; stdcall;
584
{$EXTERNALSYM GenerateConsoleCtrlEvent}
585
function AllocConsole: BOOL; stdcall;
586
{$EXTERNALSYM AllocConsole}
587
function FreeConsole: BOOL; stdcall;
588
{$EXTERNALSYM FreeConsole}
589
function AttachConsole(dwProcessId: DWORD): BOOL; stdcall;
590
{$EXTERNALSYM AttachConsole}
593
ATTACH_PARENT_PROCESS = DWORD(-1);
594
{$EXTERNALSYM ATTACH_PARENT_PROCESS}
596
function GetConsoleTitleA(lpConsoleTitle: LPSTR; nSize: DWORD): DWORD; stdcall;
597
{$EXTERNALSYM GetConsoleTitleA}
598
function GetConsoleTitleW(lpConsoleTitle: LPWSTR; nSize: DWORD): DWORD; stdcall;
599
{$EXTERNALSYM GetConsoleTitleW}
600
function GetConsoleTitle(lpConsoleTitle: LPTSTR; nSize: DWORD): DWORD; stdcall;
601
{$EXTERNALSYM GetConsoleTitle}
603
function SetConsoleTitleA(lpConsoleTitle: LPCSTR): BOOL; stdcall;
604
{$EXTERNALSYM SetConsoleTitleA}
605
function SetConsoleTitleW(lpConsoleTitle: LPCWSTR): BOOL; stdcall;
606
{$EXTERNALSYM SetConsoleTitleW}
607
function SetConsoleTitle(lpConsoleTitle: LPCTSTR): BOOL; stdcall;
608
{$EXTERNALSYM SetConsoleTitle}
610
function ReadConsoleA(hConsoleInput: HANDLE; lpBuffer: LPVOID;
611
nNumberOfCharsToRead: DWORD; var lpNumberOfCharsRead: DWORD;
612
lpReserved: LPVOID): BOOL; stdcall;
613
{$EXTERNALSYM ReadConsoleA}
614
function ReadConsoleW(hConsoleInput: HANDLE; lpBuffer: LPVOID;
615
nNumberOfCharsToRead: DWORD; var lpNumberOfCharsRead: DWORD;
616
lpReserved: LPVOID): BOOL; stdcall;
617
{$EXTERNALSYM ReadConsoleW}
618
function ReadConsole(hConsoleInput: HANDLE; lpBuffer: LPVOID;
619
nNumberOfCharsToRead: DWORD; var lpNumberOfCharsRead: DWORD;
620
lpReserved: LPVOID): BOOL; stdcall;
621
{$EXTERNALSYM ReadConsole}
623
function WriteConsoleA(hConsoleOutput: HANDLE; lpBuffer: LPVOID;
624
nNumberOfCharsToWrite: DWORD; var lpNumberOfCharsWritten: DWORD;
625
lpReserved: LPVOID): BOOL; stdcall;
626
{$EXTERNALSYM WriteConsoleA}
627
function WriteConsoleW(hConsoleOutput: HANDLE; lpBuffer: LPVOID;
628
nNumberOfCharsToWrite: DWORD; var lpNumberOfCharsWritten: DWORD;
629
lpReserved: LPVOID): BOOL; stdcall;
630
{$EXTERNALSYM WriteConsoleW}
631
function WriteConsole(hConsoleOutput: HANDLE; lpBuffer: LPVOID;
632
nNumberOfCharsToWrite: DWORD; var lpNumberOfCharsWritten: DWORD;
633
lpReserved: LPVOID): BOOL; stdcall;
634
{$EXTERNALSYM WriteConsole}
637
CONSOLE_TEXTMODE_BUFFER = 1;
638
{$EXTERNALSYM CONSOLE_TEXTMODE_BUFFER}
640
function CreateConsoleScreenBuffer(dwDesiredAccess: DWORD; dwShareMode: DWORD;
641
lpSecurityAttributes: PSECURITY_ATTRIBUTES; dwFlags: DWORD;
642
lpScreenBufferData: LPVOID): HANDLE; stdcall;
643
{$EXTERNALSYM CreateConsoleScreenBuffer}
644
function GetConsoleCP: UINT; stdcall;
645
{$EXTERNALSYM GetConsoleCP}
646
function SetConsoleCP(wCodePageID: UINT): BOOL; stdcall;
647
{$EXTERNALSYM SetConsoleCP}
648
function GetConsoleOutputCP: UINT; stdcall;
649
{$EXTERNALSYM GetConsoleOutputCP}
650
function SetConsoleOutputCP(wCodePageID: UINT): BOOL; stdcall;
651
{$EXTERNALSYM SetConsoleOutputCP}
654
CONSOLE_FULLSCREEN = 1; // fullscreen console
655
{$EXTERNALSYM CONSOLE_FULLSCREEN}
656
CONSOLE_FULLSCREEN_HARDWARE = 2; // console owns the hardware
657
{$EXTERNALSYM CONSOLE_FULLSCREEN_HARDWARE}
659
function GetConsoleDisplayMode(var lpModeFlags: DWORD): BOOL; stdcall;
660
{$EXTERNALSYM GetConsoleDisplayMode}
662
function GetConsoleWindow: HWND; stdcall;
663
{$EXTERNALSYM GetConsoleWindow}
665
function GetConsoleProcessList(var lpdwProcessList: LPDWORD; dwProcessCount: DWORD): DWORD; stdcall;
666
{$EXTERNALSYM GetConsoleProcessList}
672
function AddConsoleAliasA(Source, Target, ExeName: LPSTR): BOOL; stdcall;
673
{$EXTERNALSYM AddConsoleAliasA}
674
function AddConsoleAliasW(Source, Target, ExeName: LPWSTR): BOOL; stdcall;
675
{$EXTERNALSYM AddConsoleAliasW}
676
function AddConsoleAlias(Source, Target, ExeName: LPTSTR): BOOL; stdcall;
677
{$EXTERNALSYM AddConsoleAlias}
679
function GetConsoleAliasA(Source, TargetBuffer: LPSTR; TargetBufferLength: DWORD; ExeName: LPSTR): DWORD; stdcall;
680
{$EXTERNALSYM GetConsoleAliasA}
681
function GetConsoleAliasW(Source, TargetBuffer: LPWSTR; TargetBufferLength: DWORD; ExeName: LPWSTR): DWORD; stdcall;
682
{$EXTERNALSYM GetConsoleAliasW}
683
function GetConsoleAlias(Source, TargetBuffer: LPTSTR; TargetBufferLength: DWORD; ExeName: LPTSTR): DWORD; stdcall;
684
{$EXTERNALSYM GetConsoleAlias}
686
function GetConsoleAliasesLengthA(ExeName: LPSTR): DWORD; stdcall;
687
{$EXTERNALSYM GetConsoleAliasesLengthA}
688
function GetConsoleAliasesLengthW(ExeName: LPWSTR): DWORD; stdcall;
689
{$EXTERNALSYM GetConsoleAliasesLengthW}
690
function GetConsoleAliasesLength(ExeName: LPTSTR): DWORD; stdcall;
691
{$EXTERNALSYM GetConsoleAliasesLength}
693
function GetConsoleAliasExesLengthA: DWORD; stdcall;
694
{$EXTERNALSYM GetConsoleAliasExesLengthA}
695
function GetConsoleAliasExesLengthW: DWORD; stdcall;
696
{$EXTERNALSYM GetConsoleAliasExesLengthW}
697
function GetConsoleAliasExesLength: DWORD; stdcall;
698
{$EXTERNALSYM GetConsoleAliasExesLength}
700
function GetConsoleAliasesA(AliasBuffer: LPSTR; AliasBufferLength: DWORD; ExeName: LPSTR): DWORD; stdcall;
701
{$EXTERNALSYM GetConsoleAliasesA}
702
function GetConsoleAliasesW(AliasBuffer: LPWSTR; AliasBufferLength: DWORD; ExeName: LPWSTR): DWORD; stdcall;
703
{$EXTERNALSYM GetConsoleAliasesW}
704
function GetConsoleAliases(AliasBuffer: LPTSTR; AliasBufferLength: DWORD; ExeName: LPTSTR): DWORD; stdcall;
705
{$EXTERNALSYM GetConsoleAliases}
707
function GetConsoleAliasExesA(ExeNameBuffer: LPSTR; ExeNameBufferLength: DWORD): DWORD; stdcall;
708
{$EXTERNALSYM GetConsoleAliasExesA}
709
function GetConsoleAliasExesW(ExeNameBuffer: LPWSTR; ExeNameBufferLength: DWORD): DWORD; stdcall;
710
{$EXTERNALSYM GetConsoleAliasExesW}
711
function GetConsoleAliasExes(ExeNameBuffer: LPTSTR; ExeNameBufferLength: DWORD): DWORD; stdcall;
712
{$EXTERNALSYM GetConsoleAliasExes}
717
kernel32 = 'kernel32.dll';
724
{$IFDEF DYNAMIC_LINK}
727
_PeekConsoleInputA: Pointer;
729
function PeekConsoleInputA;
731
GetProcedureAddress(_PeekConsoleInputA, kernel32, 'PeekConsoleInputA');
735
JMP [_PeekConsoleInputA]
740
_PeekConsoleInputW: Pointer;
742
function PeekConsoleInputW;
744
GetProcedureAddress(_PeekConsoleInputW, kernel32, 'PeekConsoleInputW');
748
JMP [_PeekConsoleInputW]
753
_PeekConsoleInput: Pointer;
755
function PeekConsoleInput;
757
GetProcedureAddress(_PeekConsoleInput, kernel32, 'PeekConsoleInput' + AWSuffix);
761
JMP [_PeekConsoleInput]
766
_ReadConsoleInputA: Pointer;
768
function ReadConsoleInputA;
770
GetProcedureAddress(_ReadConsoleInputA, kernel32, 'ReadConsoleInputA');
774
JMP [_ReadConsoleInputA]
779
_ReadConsoleInputW: Pointer;
781
function ReadConsoleInputW;
783
GetProcedureAddress(_ReadConsoleInputW, kernel32, 'ReadConsoleInputW');
787
JMP [_ReadConsoleInputW]
792
_ReadConsoleInput: Pointer;
794
function ReadConsoleInput;
796
GetProcedureAddress(_ReadConsoleInput, kernel32, 'ReadConsoleInput' + AWSuffix);
800
JMP [_ReadConsoleInput]
805
_WriteConsoleInputA: Pointer;
807
function WriteConsoleInputA;
809
GetProcedureAddress(_WriteConsoleInputA, kernel32, 'WriteConsoleInputA');
813
JMP [_WriteConsoleInputA]
818
_WriteConsoleInputW: Pointer;
820
function WriteConsoleInputW;
822
GetProcedureAddress(_WriteConsoleInputW, kernel32, 'WriteConsoleInputW');
826
JMP [_WriteConsoleInputW]
831
_WriteConsoleInput: Pointer;
833
function WriteConsoleInput;
835
GetProcedureAddress(_WriteConsoleInput, kernel32, 'WriteConsoleInput' + AWSuffix);
839
JMP [_WriteConsoleInput]
844
_ReadConsoleOutputA: Pointer;
846
function ReadConsoleOutputA;
848
GetProcedureAddress(_ReadConsoleOutputA, kernel32, 'ReadConsoleOutputA');
852
JMP [_ReadConsoleOutputA]
857
_ReadConsoleOutputW: Pointer;
859
function ReadConsoleOutputW;
861
GetProcedureAddress(_ReadConsoleOutputW, kernel32, 'ReadConsoleOutputW');
865
JMP [_ReadConsoleOutputW]
870
_ReadConsoleOutput: Pointer;
872
function ReadConsoleOutput;
874
GetProcedureAddress(_ReadConsoleOutput, kernel32, 'ReadConsoleOutput' + AWSuffix);
878
JMP [_ReadConsoleOutput]
883
_WriteConsoleOutputA: Pointer;
885
function WriteConsoleOutputA;
887
GetProcedureAddress(_WriteConsoleOutputA, kernel32, 'WriteConsoleOutputA');
891
JMP [_WriteConsoleOutputA]
896
_WriteConsoleOutputW: Pointer;
898
function WriteConsoleOutputW;
900
GetProcedureAddress(_WriteConsoleOutputW, kernel32, 'WriteConsoleOutputW');
904
JMP [_WriteConsoleOutputW]
909
_WriteConsoleOutput: Pointer;
911
function WriteConsoleOutput;
913
GetProcedureAddress(_WriteConsoleOutput, kernel32, 'WriteConsoleOutput' + AWSuffix);
917
JMP [_WriteConsoleOutput]
922
_ReadConsoleOutputCharacterA: Pointer;
924
function ReadConsoleOutputCharacterA;
926
GetProcedureAddress(_ReadConsoleOutputCharacterA, kernel32, 'ReadConsoleOutputCharacterA');
930
JMP [_ReadConsoleOutputCharacterA]
935
_ReadConsoleOutputCharacterW: Pointer;
937
function ReadConsoleOutputCharacterW;
939
GetProcedureAddress(_ReadConsoleOutputCharacterW, kernel32, 'ReadConsoleOutputCharacterW');
943
JMP [_ReadConsoleOutputCharacterW]
948
_ReadConsoleOutputCharacter: Pointer;
950
function ReadConsoleOutputCharacter;
952
GetProcedureAddress(_ReadConsoleOutputCharacter, kernel32, 'ReadConsoleOutputCharacter' + AWSuffix);
956
JMP [_ReadConsoleOutputCharacter]
961
_ReadConsoleOutputAttribute: Pointer;
963
function ReadConsoleOutputAttribute;
965
GetProcedureAddress(_ReadConsoleOutputAttribute, kernel32, 'ReadConsoleOutputAttribute');
969
JMP [_ReadConsoleOutputAttribute]
974
_WriteConsoleOutputCharacterA: Pointer;
976
function WriteConsoleOutputCharacterA;
978
GetProcedureAddress(_WriteConsoleOutputCharacterA, kernel32, 'WriteConsoleOutputCharacterA');
982
JMP [_WriteConsoleOutputCharacterA]
987
_WriteConsoleOutputCharacterW: Pointer;
989
function WriteConsoleOutputCharacterW;
991
GetProcedureAddress(_WriteConsoleOutputCharacterW, kernel32, 'WriteConsoleOutputCharacterW');
995
JMP [_WriteConsoleOutputCharacterW]
1000
_WriteConsoleOutputCharacter: Pointer;
1002
function WriteConsoleOutputCharacter;
1004
GetProcedureAddress(_WriteConsoleOutputCharacter, kernel32, 'WriteConsoleOutputCharacter' + AWSuffix);
1008
JMP [_WriteConsoleOutputCharacter]
1013
_WriteConsoleOutputAttribute: Pointer;
1015
function WriteConsoleOutputAttribute;
1017
GetProcedureAddress(_WriteConsoleOutputAttribute, kernel32, 'WriteConsoleOutputAttribute');
1021
JMP [_WriteConsoleOutputAttribute]
1026
_FillConsoleOutputCharacterA: Pointer;
1028
function FillConsoleOutputCharacterA;
1030
GetProcedureAddress(_FillConsoleOutputCharacterA, kernel32, 'FillConsoleOutputCharacterA');
1034
JMP [_FillConsoleOutputCharacterA]
1039
_FillConsoleOutputCharacterW: Pointer;
1041
function FillConsoleOutputCharacterW;
1043
GetProcedureAddress(_FillConsoleOutputCharacterW, kernel32, 'FillConsoleOutputCharacterW');
1047
JMP [_FillConsoleOutputCharacterW]
1052
_FillConsoleOutputCharacter: Pointer;
1054
function FillConsoleOutputCharacter;
1056
GetProcedureAddress(_FillConsoleOutputCharacter, kernel32, 'FillConsoleOutputCharacter' + AWSuffix);
1060
JMP [_FillConsoleOutputCharacter]
1065
_FillConsoleOutputAttribute: Pointer;
1067
function FillConsoleOutputAttribute;
1069
GetProcedureAddress(_FillConsoleOutputAttribute, kernel32, 'FillConsoleOutputAttribute');
1073
JMP [_FillConsoleOutputAttribute]
1078
_GetConsoleMode: Pointer;
1080
function GetConsoleMode;
1082
GetProcedureAddress(_GetConsoleMode, kernel32, 'GetConsoleMode');
1086
JMP [_GetConsoleMode]
1091
_GetNumberOfConsoleInputEvents: Pointer;
1093
function GetNumberOfConsoleInputEvents;
1095
GetProcedureAddress(_GetNumberOfConsoleInputEvents, kernel32, 'GetNumberOfConsoleInputEvents');
1099
JMP [_GetNumberOfConsoleInputEvents]
1104
_GetConsoleScreenBufferInfo: Pointer;
1106
function GetConsoleScreenBufferInfo;
1108
GetProcedureAddress(_GetConsoleScreenBufferInfo, kernel32, 'GetConsoleScreenBufferInfo');
1112
JMP [_GetConsoleScreenBufferInfo]
1117
_GetLargestConsoleWindowSize: Pointer;
1119
function GetLargestConsoleWindowSize;
1121
GetProcedureAddress(_GetLargestConsoleWindowSize, kernel32, 'GetLargestConsoleWindowSize');
1125
JMP [_GetLargestConsoleWindowSize]
1130
_GetConsoleCursorInfo: Pointer;
1132
function GetConsoleCursorInfo;
1134
GetProcedureAddress(_GetConsoleCursorInfo, kernel32, 'GetConsoleCursorInfo');
1138
JMP [_GetConsoleCursorInfo]
1143
_GetCurrentConsoleFont: Pointer;
1145
function GetCurrentConsoleFont;
1147
GetProcedureAddress(_GetCurrentConsoleFont, kernel32, 'GetCurrentConsoleFont');
1151
JMP [_GetCurrentConsoleFont]
1156
_GetConsoleFontSize: Pointer;
1158
function GetConsoleFontSize;
1160
GetProcedureAddress(_GetConsoleFontSize, kernel32, 'GetConsoleFontSize');
1164
JMP [_GetConsoleFontSize]
1169
_GetConsoleSelectionInfo: Pointer;
1171
function GetConsoleSelectionInfo;
1173
GetProcedureAddress(_GetConsoleSelectionInfo, kernel32, 'GetConsoleSelectionInfo');
1177
JMP [_GetConsoleSelectionInfo]
1182
_GetNumberOfConsoleMouseButtons: Pointer;
1184
function GetNumberOfConsoleMouseButtons;
1186
GetProcedureAddress(_GetNumberOfConsoleMouseButtons, kernel32, 'GetNumberOfConsoleMouseButtons');
1190
JMP [_GetNumberOfConsoleMouseButtons]
1195
_SetConsoleMode: Pointer;
1197
function SetConsoleMode;
1199
GetProcedureAddress(_SetConsoleMode, kernel32, 'SetConsoleMode');
1203
JMP [_SetConsoleMode]
1208
_SetConsoleActiveScreenBuffer: Pointer;
1210
function SetConsoleActiveScreenBuffer;
1212
GetProcedureAddress(_SetConsoleActiveScreenBuffer, kernel32, 'SetConsoleActiveScreenBuffer');
1216
JMP [_SetConsoleActiveScreenBuffer]
1221
_FlushConsoleInputBuffer: Pointer;
1223
function FlushConsoleInputBuffer;
1225
GetProcedureAddress(_FlushConsoleInputBuffer, kernel32, 'FlushConsoleInputBuffer');
1229
JMP [_FlushConsoleInputBuffer]
1234
_SetConsoleScreenBufferSize: Pointer;
1236
function SetConsoleScreenBufferSize;
1238
GetProcedureAddress(_SetConsoleScreenBufferSize, kernel32, 'SetConsoleScreenBufferSize');
1242
JMP [_SetConsoleScreenBufferSize]
1247
_SetConsoleCursorPosition: Pointer;
1249
function SetConsoleCursorPosition;
1251
GetProcedureAddress(_SetConsoleCursorPosition, kernel32, 'SetConsoleCursorPosition');
1255
JMP [_SetConsoleCursorPosition]
1260
_SetConsoleCursorInfo: Pointer;
1262
function SetConsoleCursorInfo;
1264
GetProcedureAddress(_SetConsoleCursorInfo, kernel32, 'SetConsoleCursorInfo');
1268
JMP [_SetConsoleCursorInfo]
1273
_ScrollConsoleScreenBufferA: Pointer;
1275
function ScrollConsoleScreenBufferA;
1277
GetProcedureAddress(_ScrollConsoleScreenBufferA, kernel32, 'ScrollConsoleScreenBufferA');
1281
JMP [_ScrollConsoleScreenBufferA]
1286
_ScrollConsoleScreenBufferW: Pointer;
1288
function ScrollConsoleScreenBufferW;
1290
GetProcedureAddress(_ScrollConsoleScreenBufferW, kernel32, 'ScrollConsoleScreenBufferW');
1294
JMP [_ScrollConsoleScreenBufferW]
1299
_ScrollConsoleScreenBuffer: Pointer;
1301
function ScrollConsoleScreenBuffer;
1303
GetProcedureAddress(_ScrollConsoleScreenBuffer, kernel32, 'ScrollConsoleScreenBuffer' + AWSuffix);
1307
JMP [_ScrollConsoleScreenBuffer]
1312
_SetConsoleWindowInfo: Pointer;
1314
function SetConsoleWindowInfo;
1316
GetProcedureAddress(_SetConsoleWindowInfo, kernel32, 'SetConsoleWindowInfo');
1320
JMP [_SetConsoleWindowInfo]
1325
_SetConsoleTextAttribute: Pointer;
1327
function SetConsoleTextAttribute;
1329
GetProcedureAddress(_SetConsoleTextAttribute, kernel32, 'SetConsoleTextAttribute');
1333
JMP [_SetConsoleTextAttribute]
1338
_SetConsoleCtrlHandler: Pointer;
1340
function SetConsoleCtrlHandler;
1342
GetProcedureAddress(_SetConsoleCtrlHandler, kernel32, 'SetConsoleCtrlHandler');
1346
JMP [_SetConsoleCtrlHandler]
1351
_GenerateConsoleCtrlEvent: Pointer;
1353
function GenerateConsoleCtrlEvent;
1355
GetProcedureAddress(_GenerateConsoleCtrlEvent, kernel32, 'GenerateConsoleCtrlEvent');
1359
JMP [_GenerateConsoleCtrlEvent]
1364
_AllocConsole: Pointer;
1366
function AllocConsole;
1368
GetProcedureAddress(_AllocConsole, kernel32, 'AllocConsole');
1377
_FreeConsole: Pointer;
1379
function FreeConsole;
1381
GetProcedureAddress(_FreeConsole, kernel32, 'FreeConsole');
1390
_AttachConsole: Pointer;
1392
function AttachConsole;
1394
GetProcedureAddress(_AttachConsole, kernel32, 'AttachConsole');
1398
JMP [_AttachConsole]
1403
_GetConsoleTitleA: Pointer;
1405
function GetConsoleTitleA;
1407
GetProcedureAddress(_GetConsoleTitleA, kernel32, 'GetConsoleTitleA');
1411
JMP [_GetConsoleTitleA]
1416
_GetConsoleTitleW: Pointer;
1418
function GetConsoleTitleW;
1420
GetProcedureAddress(_GetConsoleTitleW, kernel32, 'GetConsoleTitleW');
1424
JMP [_GetConsoleTitleW]
1429
_GetConsoleTitle: Pointer;
1431
function GetConsoleTitle;
1433
GetProcedureAddress(_GetConsoleTitle, kernel32, 'GetConsoleTitle' + AWSuffix);
1437
JMP [_GetConsoleTitle]
1442
_SetConsoleTitleA: Pointer;
1444
function SetConsoleTitleA;
1446
GetProcedureAddress(_SetConsoleTitleA, kernel32, 'SetConsoleTitleA');
1450
JMP [_SetConsoleTitleA]
1455
_SetConsoleTitleW: Pointer;
1457
function SetConsoleTitleW;
1459
GetProcedureAddress(_SetConsoleTitleW, kernel32, 'SetConsoleTitleW');
1463
JMP [_SetConsoleTitleW]
1468
_SetConsoleTitle: Pointer;
1470
function SetConsoleTitle;
1472
GetProcedureAddress(_SetConsoleTitle, kernel32, 'SetConsoleTitle' + AWSuffix);
1476
JMP [_SetConsoleTitle]
1481
_ReadConsoleA: Pointer;
1483
function ReadConsoleA;
1485
GetProcedureAddress(_ReadConsoleA, kernel32, 'ReadConsoleA');
1494
_ReadConsoleW: Pointer;
1496
function ReadConsoleW;
1498
GetProcedureAddress(_ReadConsoleW, kernel32, 'ReadConsoleW');
1507
_ReadConsole: Pointer;
1509
function ReadConsole;
1511
GetProcedureAddress(_ReadConsole, kernel32, 'ReadConsole' + AWSuffix);
1520
_WriteConsoleA: Pointer;
1522
function WriteConsoleA;
1524
GetProcedureAddress(_WriteConsoleA, kernel32, 'WriteConsoleA');
1528
JMP [_WriteConsoleA]
1533
_WriteConsoleW: Pointer;
1535
function WriteConsoleW;
1537
GetProcedureAddress(_WriteConsoleW, kernel32, 'WriteConsoleW');
1541
JMP [_WriteConsoleW]
1546
_WriteConsole: Pointer;
1548
function WriteConsole;
1550
GetProcedureAddress(_WriteConsole, kernel32, 'WriteConsole' + AWSuffix);
1559
_CreateConsoleScreenBuffer: Pointer;
1561
function CreateConsoleScreenBuffer;
1563
GetProcedureAddress(_CreateConsoleScreenBuffer, kernel32, 'CreateConsoleScreenBuffer');
1567
JMP [_CreateConsoleScreenBuffer]
1572
_GetConsoleCP: Pointer;
1574
function GetConsoleCP;
1576
GetProcedureAddress(_GetConsoleCP, kernel32, 'GetConsoleCP');
1585
_SetConsoleCP: Pointer;
1587
function SetConsoleCP;
1589
GetProcedureAddress(_SetConsoleCP, kernel32, 'SetConsoleCP');
1598
_GetConsoleOutputCP: Pointer;
1600
function GetConsoleOutputCP;
1602
GetProcedureAddress(_GetConsoleOutputCP, kernel32, 'GetConsoleOutputCP');
1606
JMP [_GetConsoleOutputCP]
1611
_SetConsoleOutputCP: Pointer;
1613
function SetConsoleOutputCP;
1615
GetProcedureAddress(_SetConsoleOutputCP, kernel32, 'SetConsoleOutputCP');
1619
JMP [_SetConsoleOutputCP]
1624
_GetConsoleDisplayMode: Pointer;
1626
function GetConsoleDisplayMode;
1628
GetProcedureAddress(_GetConsoleDisplayMode, kernel32, 'GetConsoleDisplayMode');
1632
JMP [_GetConsoleDisplayMode]
1637
_GetConsoleWindow: Pointer;
1639
function GetConsoleWindow;
1641
GetProcedureAddress(_GetConsoleWindow, kernel32, 'GetConsoleWindow');
1645
JMP [_GetConsoleWindow]
1650
_GetConsoleProcessList: Pointer;
1652
function GetConsoleProcessList;
1654
GetProcedureAddress(_GetConsoleProcessList, kernel32, 'GetConsoleProcessList');
1658
JMP [_GetConsoleProcessList]
1663
_AddConsoleAliasA: Pointer;
1665
function AddConsoleAliasA;
1667
GetProcedureAddress(_AddConsoleAliasA, kernel32, 'AddConsoleAliasA');
1671
JMP [_AddConsoleAliasA]
1676
_AddConsoleAliasW: Pointer;
1678
function AddConsoleAliasW;
1680
GetProcedureAddress(_AddConsoleAliasW, kernel32, 'AddConsoleAliasW');
1684
JMP [_AddConsoleAliasW]
1689
_AddConsoleAlias: Pointer;
1691
function AddConsoleAlias;
1693
GetProcedureAddress(_AddConsoleAlias, kernel32, 'AddConsoleAlias' + AWSuffix);
1697
JMP [_AddConsoleAlias]
1702
_GetConsoleAliasA: Pointer;
1704
function GetConsoleAliasA;
1706
GetProcedureAddress(_GetConsoleAliasA, kernel32, 'GetConsoleAliasA');
1710
JMP [_GetConsoleAliasA]
1715
_GetConsoleAliasW: Pointer;
1717
function GetConsoleAliasW;
1719
GetProcedureAddress(_GetConsoleAliasW, kernel32, 'GetConsoleAliasW');
1723
JMP [_GetConsoleAliasW]
1728
_GetConsoleAlias: Pointer;
1730
function GetConsoleAlias;
1732
GetProcedureAddress(_GetConsoleAlias, kernel32, 'GetConsoleAlias' + AWSuffix);
1736
JMP [_GetConsoleAlias]
1741
_GetConsoleAliasesLengthA: Pointer;
1743
function GetConsoleAliasesLengthA;
1745
GetProcedureAddress(_GetConsoleAliasesLengthA, kernel32, 'GetConsoleAliasesLengthA');
1749
JMP [_GetConsoleAliasesLengthA]
1754
_GetConsoleAliasesLengthW: Pointer;
1756
function GetConsoleAliasesLengthW;
1758
GetProcedureAddress(_GetConsoleAliasesLengthW, kernel32, 'GetConsoleAliasesLengthW');
1762
JMP [_GetConsoleAliasesLengthW]
1767
_GetConsoleAliasesLength: Pointer;
1769
function GetConsoleAliasesLength;
1771
GetProcedureAddress(_GetConsoleAliasesLength, kernel32, 'GetConsoleAliasesLength' + AWSuffix);
1775
JMP [_GetConsoleAliasesLength]
1780
_GetConsoleAliasExesLengthA: Pointer;
1782
function GetConsoleAliasExesLengthA;
1784
GetProcedureAddress(_GetConsoleAliasExesLengthA, kernel32, 'GetConsoleAliasExesLengthA');
1788
JMP [_GetConsoleAliasExesLengthA]
1793
_GetConsoleAliasExesLengthW: Pointer;
1795
function GetConsoleAliasExesLengthW;
1797
GetProcedureAddress(_GetConsoleAliasExesLengthW, kernel32, 'GetConsoleAliasExesLengthW');
1801
JMP [_GetConsoleAliasExesLengthW]
1806
_GetConsoleAliasExesLength: Pointer;
1808
function GetConsoleAliasExesLength;
1810
GetProcedureAddress(_GetConsoleAliasExesLength, kernel32, 'GetConsoleAliasExesLength' + AWSuffix);
1814
JMP [_GetConsoleAliasExesLength]
1819
_GetConsoleAliasesA: Pointer;
1821
function GetConsoleAliasesA;
1823
GetProcedureAddress(_GetConsoleAliasesA, kernel32, 'GetConsoleAliasesA');
1827
JMP [_GetConsoleAliasesA]
1832
_GetConsoleAliasesW: Pointer;
1834
function GetConsoleAliasesW;
1836
GetProcedureAddress(_GetConsoleAliasesW, kernel32, 'GetConsoleAliasesW');
1840
JMP [_GetConsoleAliasesW]
1845
_GetConsoleAliases: Pointer;
1847
function GetConsoleAliases;
1849
GetProcedureAddress(_GetConsoleAliases, kernel32, 'GetConsoleAliases' + AWSuffix);
1853
JMP [_GetConsoleAliases]
1858
_GetConsoleAliasExesA: Pointer;
1860
function GetConsoleAliasExesA;
1862
GetProcedureAddress(_GetConsoleAliasExesA, kernel32, 'GetConsoleAliasExesA');
1866
JMP [_GetConsoleAliasExesA]
1871
_GetConsoleAliasExesW: Pointer;
1873
function GetConsoleAliasExesW;
1875
GetProcedureAddress(_GetConsoleAliasExesW, kernel32, 'GetConsoleAliasExesW');
1879
JMP [_GetConsoleAliasExesW]
1884
_GetConsoleAliasExes: Pointer;
1886
function GetConsoleAliasExes;
1888
GetProcedureAddress(_GetConsoleAliasExes, kernel32, 'GetConsoleAliasExes' + AWSuffix);
1892
JMP [_GetConsoleAliasExes]
1898
function PeekConsoleInputA; external kernel32 name 'PeekConsoleInputA';
1899
function PeekConsoleInputW; external kernel32 name 'PeekConsoleInputW';
1900
function PeekConsoleInput; external kernel32 name 'PeekConsoleInput' + AWSuffix;
1901
function ReadConsoleInputA; external kernel32 name 'ReadConsoleInputA';
1902
function ReadConsoleInputW; external kernel32 name 'ReadConsoleInputW';
1903
function ReadConsoleInput; external kernel32 name 'ReadConsoleInput' + AWSuffix;
1904
function WriteConsoleInputA; external kernel32 name 'WriteConsoleInputA';
1905
function WriteConsoleInputW; external kernel32 name 'WriteConsoleInputW';
1906
function WriteConsoleInput; external kernel32 name 'WriteConsoleInput' + AWSuffix;
1907
function ReadConsoleOutputA; external kernel32 name 'ReadConsoleOutputA';
1908
function ReadConsoleOutputW; external kernel32 name 'ReadConsoleOutputW';
1909
function ReadConsoleOutput; external kernel32 name 'ReadConsoleOutput' + AWSuffix;
1910
function WriteConsoleOutputA; external kernel32 name 'WriteConsoleOutputA';
1911
function WriteConsoleOutputW; external kernel32 name 'WriteConsoleOutputW';
1912
function WriteConsoleOutput; external kernel32 name 'WriteConsoleOutput' + AWSuffix;
1913
function ReadConsoleOutputCharacterA; external kernel32 name 'ReadConsoleOutputCharacterA';
1914
function ReadConsoleOutputCharacterW; external kernel32 name 'ReadConsoleOutputCharacterW';
1915
function ReadConsoleOutputCharacter; external kernel32 name 'ReadConsoleOutputCharacter' + AWSuffix;
1916
function ReadConsoleOutputAttribute; external kernel32 name 'ReadConsoleOutputAttribute';
1917
function WriteConsoleOutputCharacterA; external kernel32 name 'WriteConsoleOutputCharacterA';
1918
function WriteConsoleOutputCharacterW; external kernel32 name 'WriteConsoleOutputCharacterW';
1919
function WriteConsoleOutputCharacter; external kernel32 name 'WriteConsoleOutputCharacter' + AWSuffix;
1920
function WriteConsoleOutputAttribute; external kernel32 name 'WriteConsoleOutputAttribute';
1921
function FillConsoleOutputCharacterA; external kernel32 name 'FillConsoleOutputCharacterA';
1922
function FillConsoleOutputCharacterW; external kernel32 name 'FillConsoleOutputCharacterW';
1923
function FillConsoleOutputCharacter; external kernel32 name 'FillConsoleOutputCharacter' + AWSuffix;
1924
function FillConsoleOutputAttribute; external kernel32 name 'FillConsoleOutputAttribute';
1925
function GetConsoleMode; external kernel32 name 'GetConsoleMode';
1926
function GetNumberOfConsoleInputEvents; external kernel32 name 'GetNumberOfConsoleInputEvents';
1927
function GetConsoleScreenBufferInfo; external kernel32 name 'GetConsoleScreenBufferInfo';
1928
function GetLargestConsoleWindowSize; external kernel32 name 'GetLargestConsoleWindowSize';
1929
function GetConsoleCursorInfo; external kernel32 name 'GetConsoleCursorInfo';
1930
function GetCurrentConsoleFont; external kernel32 name 'GetCurrentConsoleFont';
1931
function GetConsoleFontSize; external kernel32 name 'GetConsoleFontSize';
1932
function GetConsoleSelectionInfo; external kernel32 name 'GetConsoleSelectionInfo';
1933
function GetNumberOfConsoleMouseButtons; external kernel32 name 'GetNumberOfConsoleMouseButtons';
1934
function SetConsoleMode; external kernel32 name 'SetConsoleMode';
1935
function SetConsoleActiveScreenBuffer; external kernel32 name 'SetConsoleActiveScreenBuffer';
1936
function FlushConsoleInputBuffer; external kernel32 name 'FlushConsoleInputBuffer';
1937
function SetConsoleScreenBufferSize; external kernel32 name 'SetConsoleScreenBufferSize';
1938
function SetConsoleCursorPosition; external kernel32 name 'SetConsoleCursorPosition';
1939
function SetConsoleCursorInfo; external kernel32 name 'SetConsoleCursorInfo';
1940
function ScrollConsoleScreenBufferA; external kernel32 name 'ScrollConsoleScreenBufferA';
1941
function ScrollConsoleScreenBufferW; external kernel32 name 'ScrollConsoleScreenBufferW';
1942
function ScrollConsoleScreenBuffer; external kernel32 name 'ScrollConsoleScreenBuffer' + AWSuffix;
1943
function SetConsoleWindowInfo; external kernel32 name 'SetConsoleWindowInfo';
1944
function SetConsoleTextAttribute; external kernel32 name 'SetConsoleTextAttribute';
1945
function SetConsoleCtrlHandler; external kernel32 name 'SetConsoleCtrlHandler';
1946
function GenerateConsoleCtrlEvent; external kernel32 name 'GenerateConsoleCtrlEvent';
1947
function AllocConsole; external kernel32 name 'AllocConsole';
1948
function FreeConsole; external kernel32 name 'FreeConsole';
1949
function AttachConsole; external kernel32 name 'AttachConsole';
1950
function GetConsoleTitleA; external kernel32 name 'GetConsoleTitleA';
1951
function GetConsoleTitleW; external kernel32 name 'GetConsoleTitleW';
1952
function GetConsoleTitle; external kernel32 name 'GetConsoleTitle' + AWSuffix;
1953
function SetConsoleTitleA; external kernel32 name 'SetConsoleTitleA';
1954
function SetConsoleTitleW; external kernel32 name 'SetConsoleTitleW';
1955
function SetConsoleTitle; external kernel32 name 'SetConsoleTitle' + AWSuffix;
1956
function ReadConsoleA; external kernel32 name 'ReadConsoleA';
1957
function ReadConsoleW; external kernel32 name 'ReadConsoleW';
1958
function ReadConsole; external kernel32 name 'ReadConsole' + AWSuffix;
1959
function WriteConsoleA; external kernel32 name 'WriteConsoleA';
1960
function WriteConsoleW; external kernel32 name 'WriteConsoleW';
1961
function WriteConsole; external kernel32 name 'WriteConsole' + AWSuffix;
1962
function CreateConsoleScreenBuffer; external kernel32 name 'CreateConsoleScreenBuffer';
1963
function GetConsoleCP; external kernel32 name 'GetConsoleCP';
1964
function SetConsoleCP; external kernel32 name 'SetConsoleCP';
1965
function GetConsoleOutputCP; external kernel32 name 'GetConsoleOutputCP';
1966
function SetConsoleOutputCP; external kernel32 name 'SetConsoleOutputCP';
1967
function GetConsoleDisplayMode; external kernel32 name 'GetConsoleDisplayMode';
1968
function GetConsoleWindow; external kernel32 name 'GetConsoleWindow';
1969
function GetConsoleProcessList; external kernel32 name 'GetConsoleProcessList';
1970
function AddConsoleAliasA; external kernel32 name 'AddConsoleAliasA';
1971
function AddConsoleAliasW; external kernel32 name 'AddConsoleAliasW';
1972
function AddConsoleAlias; external kernel32 name 'AddConsoleAlias' + AWSuffix;
1973
function GetConsoleAliasA; external kernel32 name 'GetConsoleAliasA';
1974
function GetConsoleAliasW; external kernel32 name 'GetConsoleAliasW';
1975
function GetConsoleAlias; external kernel32 name 'GetConsoleAlias' + AWSuffix;
1976
function GetConsoleAliasesLengthA; external kernel32 name 'GetConsoleAliasesLengthA';
1977
function GetConsoleAliasesLengthW; external kernel32 name 'GetConsoleAliasesLengthW';
1978
function GetConsoleAliasesLength; external kernel32 name 'GetConsoleAliasesLength' + AWSuffix;
1979
function GetConsoleAliasExesLengthA; external kernel32 name 'GetConsoleAliasExesLengthA';
1980
function GetConsoleAliasExesLengthW; external kernel32 name 'GetConsoleAliasExesLengthW';
1981
function GetConsoleAliasExesLength; external kernel32 name 'GetConsoleAliasExesLength' + AWSuffix;
1982
function GetConsoleAliasesA; external kernel32 name 'GetConsoleAliasesA';
1983
function GetConsoleAliasesW; external kernel32 name 'GetConsoleAliasesW';
1984
function GetConsoleAliases; external kernel32 name 'GetConsoleAliases' + AWSuffix;
1985
function GetConsoleAliasExesA; external kernel32 name 'GetConsoleAliasExesA';
1986
function GetConsoleAliasExesW; external kernel32 name 'GetConsoleAliasExesW';
1987
function GetConsoleAliasExes; external kernel32 name 'GetConsoleAliasExes' + AWSuffix;
1989
{$ENDIF DYNAMIC_LINK}