source: trunk/src/kernel32/console2.h@ 22018

Last change on this file since 22018 was 21916, checked in by dmik, 14 years ago

Merge branch gcc-kmk to trunk.

File size: 28.5 KB
Line 
1/* $Id: console2.h,v 1.11 2001-10-01 01:43:35 bird Exp $ */
2
3/*
4 * Project Odin Software License can be found in LICENSE.TXT
5 * Win32 Console Subsystem for OS/2
6 * 1998/02/11 PH Patrick Haller (haller@zebra.fh-weingarten.de)
7 *
8 * @(#) HandleManager.Cpp 1.0.0 1998/02/11 PH start
9 */
10
11#ifndef _CONSOLESUBSYSTEM_H_
12#define _CONSOLESUBSYSTEM_H_
13
14
15/*****************************************************************************
16 * Remark *
17 *****************************************************************************
18 */
19
20/*****************************************************************************
21 * Includes *
22 *****************************************************************************/
23
24#pragma pack(4)
25
26#ifndef _OS2WIN_H_
27typedef struct _COORD
28{
29 SHORT X;
30 SHORT Y;
31} COORD, *PCOORD;
32#endif
33
34
35typedef struct _SMALL_RECT
36{
37 SHORT Left;
38 SHORT Top;
39 SHORT Right;
40 SHORT Bottom;
41} SMALL_RECT, *PSMALL_RECT;
42
43
44typedef struct _KEY_EVENT_RECORD
45{
46 BOOL bKeyDown;
47 WORD wRepeatCount;
48 WORD wVirtualKeyCode;
49 WORD wVirtualScanCode;
50 union
51 {
52 WCHAR UnicodeChar;
53 CHAR AsciiChar;
54 } uChar;
55 DWORD dwControlKeyState;
56} KEY_EVENT_RECORD, *PKEY_EVENT_RECORD;
57
58
59//
60// ControlKeyState flags
61//
62
63#define RIGHT_ALT_PRESSED 0x0001 // the right alt key is pressed.
64#define LEFT_ALT_PRESSED 0x0002 // the left alt key is pressed.
65#define RIGHT_CTRL_PRESSED 0x0004 // the right ctrl key is pressed.
66#define LEFT_CTRL_PRESSED 0x0008 // the left ctrl key is pressed.
67#define SHIFT_PRESSED 0x0010 // the shift key is pressed.
68#define NUMLOCK_ON 0x0020 // the numlock light is on.
69#define SCROLLLOCK_ON 0x0040 // the scrolllock light is on.
70#define CAPSLOCK_ON 0x0080 // the capslock light is on.
71#define ENHANCED_KEY 0x0100 // the key is enhanced.
72
73typedef struct _MOUSE_EVENT_RECORD
74{
75 COORD dwMousePosition;
76 DWORD dwButtonState;
77 DWORD dwControlKeyState;
78 DWORD dwEventFlags;
79} MOUSE_EVENT_RECORD, *PMOUSE_EVENT_RECORD;
80
81
82//
83// ButtonState flags
84//
85
86#define FROM_LEFT_1ST_BUTTON_PRESSED 0x0001
87#define RIGHTMOST_BUTTON_PRESSED 0x0002
88#define FROM_LEFT_2ND_BUTTON_PRESSED 0x0004
89#define FROM_LEFT_3RD_BUTTON_PRESSED 0x0008
90#define FROM_LEFT_4TH_BUTTON_PRESSED 0x0010
91
92//
93// EventFlags
94//
95
96#define MOUSE_MOVED 0x0001
97#define DOUBLE_CLICK 0x0002
98
99typedef struct _WINDOW_BUFFER_SIZE_RECORD
100{
101 COORD dwSize;
102} WINDOW_BUFFER_SIZE_RECORD, *PWINDOW_BUFFER_SIZE_RECORD;
103
104typedef struct _MENU_EVENT_RECORD
105{
106 UINT dwCommandId;
107} MENU_EVENT_RECORD, *PMENU_EVENT_RECORD;
108
109typedef struct _FOCUS_EVENT_RECORD
110{
111 BOOL bSetFocus;
112} FOCUS_EVENT_RECORD, *PFOCUS_EVENT_RECORD;
113
114typedef struct _INPUT_RECORD
115{
116 WORD EventType;
117 union
118 {
119 KEY_EVENT_RECORD KeyEvent;
120 MOUSE_EVENT_RECORD MouseEvent;
121 WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent;
122 MENU_EVENT_RECORD MenuEvent;
123 FOCUS_EVENT_RECORD FocusEvent;
124 } Event;
125} INPUT_RECORD, *PINPUT_RECORD;
126
127
128//
129// EventType flags:
130//
131
132#define KEY_EVENT 0x0001 // Event contains key event record
133#define MOUSE_EVENT 0x0002 // Event contains mouse event record
134#define WINDOW_BUFFER_SIZE_EVENT 0x0004 // Event contains window change event record
135#define MENU_EVENT 0x0008 // Event contains menu event record
136#define FOCUS_EVENT 0x0010 // event contains focus change
137
138typedef struct _CHAR_INFO
139{
140 union
141 {
142 WCHAR UnicodeChar;
143 CHAR AsciiChar;
144 } Char;
145 WORD Attributes;
146} CHAR_INFO, *PCHAR_INFO;
147
148//
149// Attributes flags:
150//
151
152#define FOREGROUND_BLUE 0x0001 // text color contains blue.
153#define FOREGROUND_GREEN 0x0002 // text color contains green.
154#define FOREGROUND_RED 0x0004 // text color contains red.
155#define FOREGROUND_INTENSITY 0x0008 // text color is intensified.
156#define BACKGROUND_BLUE 0x0010 // background color contains blue.
157#define BACKGROUND_GREEN 0x0020 // background color contains green.
158#define BACKGROUND_RED 0x0040 // background color contains red.
159#define BACKGROUND_INTENSITY 0x0080 // background color is intensified.
160
161
162typedef struct _CONSOLE_SCREEN_BUFFER_INFO
163{
164 COORD dwSize;
165 COORD dwCursorPosition;
166 WORD wAttributes;
167 SMALL_RECT srWindow;
168 COORD dwMaximumWindowSize;
169} CONSOLE_SCREEN_BUFFER_INFO, *PCONSOLE_SCREEN_BUFFER_INFO;
170
171typedef struct _CONSOLE_CURSOR_INFO
172{
173 DWORD dwSize;
174 BOOL bVisible;
175} CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO;
176
177//
178// typedef for ctrl-c handler routines
179//
180
181typedef BOOL (* __stdcall PHANDLER_ROUTINE)(DWORD CtrlType); /*PLF Fri 97-06-20 17:17:42*/
182
183#define CTRL_C_EVENT 0
184#define CTRL_BREAK_EVENT 1
185#define CTRL_CLOSE_EVENT 2
186// 3 is reserved!
187// 4 is reserved!
188#define CTRL_LOGOFF_EVENT 5
189#define CTRL_SHUTDOWN_EVENT 6
190
191//
192// Input Mode flags:
193//
194
195#define ENABLE_PROCESSED_INPUT 0x0001
196#define ENABLE_LINE_INPUT 0x0002
197#define ENABLE_ECHO_INPUT 0x0004
198#define ENABLE_WINDOW_INPUT 0x0008
199#define ENABLE_MOUSE_INPUT 0x0010
200
201//
202// Output Mode flags:
203//
204
205#define ENABLE_PROCESSED_OUTPUT 0x0001
206#define ENABLE_WRAP_AT_EOL_OUTPUT 0x0002
207
208#pragma pack()
209
210
211/*****************************************************************************
212 * Defines & Macros *
213 *****************************************************************************/
214
215#define CONSOLE_TEXTMODE_BUFFER 1
216
217#define SZ_CONSOLE_CLASS "WIN32CONSOLECLASS"
218
219
220/* according to the updated AVIO documentation of Warp 4 */
221#define MAX_OS2_ROWS 255
222#define MAX_OS2_COLUMNS 255
223#define CONSOLE_TIMER_ID 1
224#define CONSOLE_INPUTQUEUESIZE 256
225
226#ifndef FORMAT_CGA
227#define FORMAT_CGA 1
228#endif
229
230#define CONSOLECURSOR_HIDE 1
231#define CONSOLECURSOR_SHOW 2
232#define CONSOLECURSOR_BLINK 3
233#define CONSOLECURSOR_OVERWRITTEN 4
234
235#define UM_CONSOLE_CREATE WM_USER + 0x1000
236
237
238/* device request codes for use in the pseudo-device handlers */
239#define DRQ_CONSOLE 0x00010000
240#define DRQ_FILLCONSOLEOUTPUTATTRIBUTE DRQ_CONSOLE + 0
241#define DRQ_FILLCONSOLEOUTPUTCHARACTERA DRQ_CONSOLE + 1
242#define DRQ_FILLCONSOLEOUTPUTCHARACTERW DRQ_CONSOLE + 2
243#define DRQ_FLUSHCONSOLEINPUTBUFFER DRQ_CONSOLE + 3
244#define DRQ_GETCONSOLECURSORINFO DRQ_CONSOLE + 4
245#define DRQ_GETCONSOLEMODE DRQ_CONSOLE + 5
246#define DRQ_GETCONSOLESCREENBUFFERINFO DRQ_CONSOLE + 6
247#define DRQ_GETLARGESTCONSOLEWINDOWSIZE DRQ_CONSOLE + 7
248#define DRQ_GETNUMBEROFCONSOLEINPUTEVENTS DRQ_CONSOLE + 8
249#define DRQ_PEEKCONSOLEINPUTW DRQ_CONSOLE + 9
250#define DRQ_PEEKCONSOLEINPUTA DRQ_CONSOLE + 10
251#define DRQ_READCONSOLEA DRQ_CONSOLE + 11
252#define DRQ_READCONSOLEW DRQ_CONSOLE + 12
253#define DRQ_READCONSOLEINPUTA DRQ_CONSOLE + 14
254#define DRQ_READCONSOLEINPUTW DRQ_CONSOLE + 15
255#define DRQ_READCONSOLEOUTPUTA DRQ_CONSOLE + 16
256#define DRQ_READCONSOLEOUTPUTW DRQ_CONSOLE + 17
257#define DRQ_READCONSOLEOUTPUTATTRIBUTE DRQ_CONSOLE + 18
258#define DRQ_READCONSOLEOUTPUTCHARACTERA DRQ_CONSOLE + 19
259#define DRQ_READCONSOLEOUTPUTCHARACTERW DRQ_CONSOLE + 20
260#define DRQ_SCROLLCONSOLESCREENBUFFERA DRQ_CONSOLE + 21
261#define DRQ_SCROLLCONSOLESCREENBUFFERW DRQ_CONSOLE + 22
262#define DRQ_SETCONSOLEACTIVESCREENBUFFER DRQ_CONSOLE + 23
263#define DRQ_SETCONSOLECURSORINFO DRQ_CONSOLE + 24
264#define DRQ_SETCONSOLECURSORPOSITION DRQ_CONSOLE + 25
265#define DRQ_SETCONSOLEMODE DRQ_CONSOLE + 26
266#define DRQ_SETCONSOLESCREENBUFFERSIZE DRQ_CONSOLE + 27
267#define DRQ_SETCONSOLETEXTATTRIBUTE DRQ_CONSOLE + 28
268#define DRQ_SETCONSOLEWINDOWINFO DRQ_CONSOLE + 29
269#define DRQ_WRITECONSOLEA DRQ_CONSOLE + 30
270#define DRQ_WRITECONSOLEW DRQ_CONSOLE + 31
271#define DRQ_WRITECONSOLEINPUTA DRQ_CONSOLE + 32
272#define DRQ_WRITECONSOLEINPUTW DRQ_CONSOLE + 33
273#define DRQ_WRITECONSOLEOUTPUTA DRQ_CONSOLE + 34
274#define DRQ_WRITECONSOLEOUTPUTW DRQ_CONSOLE + 35
275#define DRQ_WRITECONSOLEOUTPUTATTRIBUTE DRQ_CONSOLE + 36
276#define DRQ_WRITECONSOLEOUTPUTCHARACTERA DRQ_CONSOLE + 37
277#define DRQ_WRITECONSOLEOUTPUTCHARACTERW DRQ_CONSOLE + 38
278#define DRQ_INTERNAL_CONSOLEBUFFERMAP DRQ_CONSOLE + 39
279#define DRQ_INTERNAL_CONSOLECURSORSHOW DRQ_CONSOLE + 40
280#define DRQ_INTERNAL_CONSOLEADJUSTWINDOW DRQ_CONSOLE + 41
281
282
283#define COORD2ULONG(c) ((ULONG)( ((ULONG)c.X << 16) + (ULONG)c.Y))
284#define ULONG2COORD(c,u) c.X = u >> 16; c.Y = u & 0x0000FFFF;
285
286
287/*****************************************************************************
288 * Structures *
289 *****************************************************************************/
290
291
292typedef struct _ConsoleBuffer
293{
294 /* A console buffer is a indexed array of lines. This technique allows */
295 /* much faster scrolling than a single large textbuffer. */
296 PSZ *ppszLine; /* an array of line pointers */
297 ULONG ulScrollLineOffset; /* offset to the 1st line in the buffer */
298
299 /* the following structures reflect the Win32 API structures */
300 CONSOLE_CURSOR_INFO CursorInfo;
301 COORD coordCursorPosition;
302
303 /* the mode the console is currently in */
304 DWORD dwConsoleMode;
305
306 /* information about the current screen buffer */
307 // CONSOLE_SCREEN_BUFFER_INFO ConsoleScreenBufferInfo;
308 COORD coordBufferSize;
309 UCHAR ucDefaultAttribute; /* default text attribute */
310 COORD coordWindowPosition; /* viewport position */
311 COORD coordWindowSize; /* viewport size */
312} CONSOLEBUFFER, *PCONSOLEBUFFER;
313
314
315typedef struct _ConsoleOptions
316{
317 HMODULE hmodResources; /* module handle for PM resources */
318
319 BOOL fTerminateAutomatically; /* wait for window termination or not */
320 BOOL fSpeakerEnabled; /* whether we process BEL 0x07 or not */
321 ULONG ulSpeakerDuration; /* duration and frequency for speaker beep */
322 ULONG ulSpeakerFrequency;
323 ULONG ulUpdateLimit; /* when exceeding this line counter, automatic */
324 /* screen update is performed */
325
326 BOOL fSetWindowPosition; /* TRUE if window has to be positioned */
327
328 COORD coordDefaultPosition; /* default position of the console window */
329 COORD coordDefaultSize; /* default size of the console window */
330 COORD coordBufferSize; /* size of the console buffer */
331
332 BOOL fQuickInsert; /* like NT's quick insert mode */
333 BOOL fInsertMode; /* insert mode */
334 BOOL fMouseActions; /* like Warp 4's "mouse action" mode */
335 BOOL fToolbarActive; /* windows95-like toolbar on / off */
336
337 ULONG ulTabSize; /* tabulator size */
338
339 UCHAR ucDefaultAttribute; /* the default text attribute */
340
341 UCHAR ucCursorDivisor; /* cursor timer divisor for blinking */
342
343 ULONG ulConsoleThreadPriorityClass; /* priority settings for message */
344 ULONG ulConsoleThreadPriorityDelta; /* thread */
345 ULONG ulAppThreadPriorityClass; /* priority settings for application */
346 ULONG ulAppThreadPriorityDelta; /* thread */
347
348} ICONSOLEOPTIONS, *PICONSOLEOPTIONS;
349
350
351
352typedef struct _iConsoleGlobals
353{
354 TID tidConsole; /* console message thread */
355 HEV hevConsole; /* console event semaphore */
356 APIRET rcConsole; /* initialization status of the console */
357 HAB hab; /* anchor block handle */
358 HMQ hmq; /* message queue handle for the console window */
359 QMSG qmsg; /* message for the console window */
360 ULONG flFrameFlags; /* frame window creation flags */
361 PSZ pszWindowTitle; /* name of the window */
362 HWND hwndFrame; /* frame window handle */
363 HWND hwndClient; /* client window handle */
364
365 HWND hwndHorzScroll; /* handle of horizontal scroll bar */
366 HWND hwndVertScroll; /* handle of vertical scroll bar */
367 BOOL fHasVertScroll; /* indicates if scrollbars are visible */
368 BOOL fHasHorzScroll;
369
370 HDC hdcConsole; /* console device context */
371 PFNWP pfnwpFrameOriginal; /* original frame window procedure */
372
373 HWND hwndMenuConsole; /* console popup menu */
374 HMODULE hmodResource; /* resources are stored in KERNEL32.DLL */
375 HPOINTER hPtrConsole; /* console icon */
376
377 HANDLE hConsoleBuffer; /* handle of the active console buffer */
378 HANDLE hConsoleBufferDefault; /* handle of the default console buffer */
379
380 HVPS hvpsConsole; /* console AVIO presentation space */
381
382 COORD coordMaxWindowPels; /* maximum window size in pixels */
383 COORD coordWindowSize; /* current console window size */
384 COORD coordWindowPos; /* scroller's positions */
385
386 SHORT sCellCX; /* height and width of a avio cell with the current font */
387 SHORT sCellCY;
388
389 BOOL fUpdateRequired; /* set to TRUE if next WM_TIMER shall update the */
390 /* AVIO presentation space from the consolebuffer */
391
392 ULONG idTimer; /* Timer identifier */
393 ULONG ulTimerFrequency; /* cursor + blitter timer frequency */
394 ULONG ulTimerCursor; /* cursor loop counter for divisor */
395
396 ICONSOLEOPTIONS Options; /* the console's options / properties */
397
398} ICONSOLEGLOBALS, *PICONSOLEGLOBALS;
399
400
401typedef struct _iConsoleInput
402{
403 INPUT_RECORD arrInputRecord[CONSOLE_INPUTQUEUESIZE]; /* packet queue */
404 HEV hevInputQueue; /* becomes posted if input arrives */
405
406 ULONG ulIndexFree; /* index of first free event record */
407 ULONG ulIndexEvent; /* index of first valid event in queue */
408 ULONG ulEvents; /* number of events in queue */
409 DWORD dwConsoleMode; /* input console mode */
410
411 HMTX hmtxInputQueue; /* console input queue mutex semaphore */
412} ICONSOLEINPUT, *PICONSOLEINPUT;
413
414
415
416/*****************************************************************************
417 * Prototypes *
418 *****************************************************************************/
419
420#ifdef __cplusplus
421extern "C" {
422#endif
423
424
425 /* console message thread */
426VOID /*_Optlink*/ iConsoleMsgThread (void *pParameters);
427
428MRESULT EXPENTRY iConsoleWindowProc(HWND hwnd, /* window procedure */
429 ULONG msg,
430 MPARAM mp1,
431 MPARAM mp2);
432
433MRESULT EXPENTRY iConsoleFrameWindowProc(HWND hwnd,
434 ULONG msg,
435 MPARAM mp1,
436 MPARAM mp2);
437
438void iConsoleBufferMap (PCONSOLEBUFFER pConsoleBuffer);
439
440void iConsoleBufferScrollUp (PCONSOLEBUFFER pConsoleBuffer,
441 ULONG ulLines);
442
443void iConsoleBufferFillLine (ULONG ulPattern,
444 PUSHORT pusTarget,
445 ULONG ulSize);
446
447APIRET iConsoleInputEventPush (PINPUT_RECORD pInputRecord);
448
449APIRET iConsoleInputEventPop (PINPUT_RECORD pInputRecord);
450
451APIRET iConsoleInputEventPushKey (MPARAM mp1,
452 MPARAM mp2);
453
454APIRET iConsoleInputEventPushMouse (ULONG ulMessage,
455 MPARAM mp1,
456 MPARAM mp2);
457
458APIRET iConsoleInputEventPushWindow(COORD coordWindowSize);
459
460APIRET iConsoleInputEventPushMenu (DWORD dwCommandId);
461
462APIRET iConsoleInputEventPushFocus (BOOL bSetFocus);
463
464#define QUERY_EVENT_PEEK 0
465#define QUERY_EVENT_WAIT 1
466ULONG iConsoleInputQueryEvents (PICONSOLEINPUT pConsoleInput, int fWait);
467
468void iConsoleCursorShow (PCONSOLEBUFFER pConsoleBuffer,
469 ULONG ulCursorMode);
470
471APIRET iConsoleFontQuery (void);
472
473void iConsoleAdjustWindow (PCONSOLEBUFFER pConsoleBuffer);
474
475
476#ifndef _OS2WIN_H
477
478BOOL WIN32API AllocConsole (VOID);
479
480HANDLE WIN32API CreateConsoleScreenBuffer (DWORD dwDesiredAccess,
481 DWORD dwShareMode,
482 LPVOID lpSecurityAttributes,
483 DWORD dwFlags,
484 LPVOID lpScreenBufferData);
485
486BOOL WIN32API FillConsoleOutputAttribute (HANDLE hConsoleOutput,
487 WORD wAttribute,
488 DWORD nLength,
489 COORD dwWriteCoord,
490 LPDWORD lpNumberOfAttrsWritten);
491
492BOOL WIN32API FillConsoleOutputCharacterW (HANDLE hConsoleOutput,
493 WCHAR cCharacter,
494 DWORD nLength,
495 COORD dwWriteCoord,
496 LPDWORD lpNumberOfCharsWritten);
497
498BOOL WIN32API FillConsoleOutputCharacterA (HANDLE hConsoleOutput,
499 UCHAR cCharacter,
500 DWORD nLength,
501 COORD dwWriteCoord,
502 LPDWORD lpNumberOfCharsWritten);
503
504
505BOOL WIN32API FlushConsoleInputBuffer (HANDLE hConsoleInput);
506
507BOOL WIN32API FreeConsole (VOID);
508
509BOOL WIN32API GenerateConsoleCtrlEvent (DWORD dwCtrlEvent,
510 DWORD dwProcessGroupId);
511
512UINT WIN32API GetConsoleCP (VOID);
513
514BOOL WIN32API GetConsoleCursorInfo (HANDLE hConsoleOutput,
515 PCONSOLE_CURSOR_INFO lpConsoleCursorInfo);
516
517BOOL WIN32API GetConsoleMode (HANDLE hConsole,
518 LPDWORD lpMode);
519
520UINT WIN32API GetConsoleOutputCP (VOID);
521
522BOOL WIN32API GetConsoleScreenBufferInfo (HANDLE hConsoleOutput,
523 PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo);
524
525DWORD WIN32API GetConsoleTitleA (LPTSTR lpConsoleTitle,
526 DWORD nSize);
527
528DWORD WIN32API GetConsoleTitleW (LPWSTR lpConsoleTitle,
529 DWORD nSize);
530
531COORD WIN32API GetLargestConsoleWindowSize (HANDLE hConsoleOutput);
532
533BOOL WIN32API GetNumberOfConsoleInputEvents (HANDLE hConsoleInput,
534 LPDWORD lpNumberOfEvents);
535
536BOOL WIN32API GetNumberOfConsoleMouseButtons(LPDWORD lpcNumberOfMouseButtons);
537
538BOOL WIN32API PeekConsoleInputA (HANDLE hConsoleInput,
539 PINPUT_RECORD pirBuffer,
540 DWORD cInRecords,
541 LPDWORD lpcRead);
542
543BOOL WIN32API PeekConsoleInputW (HANDLE hConsoleInput,
544 PINPUT_RECORD pirBuffer,
545 DWORD cInRecords,
546 LPDWORD lpcRead);
547
548BOOL WIN32API ReadConsoleA (HANDLE hConsoleInput,
549 LPVOID lpvBuffer,
550 DWORD cchToRead,
551 LPDWORD lpcchRead,
552 LPVOID lpvReserved);
553
554BOOL WIN32API ReadConsoleInputA (HANDLE hConsoleInput,
555 PINPUT_RECORD pirBuffer,
556 DWORD cInRecords,
557 LPDWORD lpcRead);
558
559BOOL WIN32API ReadConsoleInputW (HANDLE hConsoleInput,
560 PINPUT_RECORD pirBuffer,
561 DWORD cInRecords,
562 LPDWORD lpcRead);
563
564BOOL WIN32API ReadConsoleOutputA (HANDLE hConsoleOutput,
565 PCHAR_INFO pchiDestBuffer,
566 COORD coordDestBufferSize,
567 COORD coordDestBufferCoord,
568 PSMALL_RECT psrctSourceRect);
569
570BOOL WIN32API ReadConsoleOutputW (HANDLE hConsoleOutput,
571 PCHAR_INFO pchiDestBuffer,
572 COORD coordDestBufferSize,
573 COORD coordDestBufferCoord,
574 PSMALL_RECT psrctSourceRect);
575
576BOOL WIN32API ReadConsoleOutputAttribute (HANDLE hConsoleOutput,
577 LPWORD lpwAttribute,
578 DWORD cReadCells,
579 COORD coordReadCoord,
580 LPDWORD lpcNumberRead);
581
582BOOL WIN32API ReadConsoleOutputCharacter (HANDLE hConsoleOutput,
583 LPTSTR lpReadBuffer,
584 DWORD cchRead,
585 COORD coordReadCoord,
586 LPDWORD lpcNumberRead);
587
588BOOL WIN32API ScrollConsoleScreenBufferA (HANDLE hConsoleOutput,
589 PSMALL_RECT psrctSourceRect,
590 PSMALL_RECT psrctClipRect,
591 COORD coordDestOrigin,
592 PCHAR_INFO pchiFill);
593
594BOOL WIN32API ScrollConsoleScreenBufferW (HANDLE hConsoleOutput,
595 PSMALL_RECT psrctSourceRect,
596 PSMALL_RECT psrctClipRect,
597 COORD coordDestOrigin,
598 PCHAR_INFO pchiFill);
599
600BOOL WIN32API SetConsoleActiveScreenBuffer (HANDLE hConsoleOutput);
601
602BOOL WIN32API SetConsoleCP (UINT IDCodePage);
603
604BOOL WIN32API SetConsoleCtrlHandler (PHANDLER_ROUTINE pHandlerRoutine,
605 BOOL fAdd);
606
607BOOL WIN32API SetConsoleCursorInfo (HANDLE hConsoleOutput,
608 PCONSOLE_CURSOR_INFO lpConsoleCursorInfo);
609
610BOOL WIN32API SetConsoleCursorPosition (HANDLE hConsoleOutput,
611 COORD coordCursor);
612
613BOOL WIN32API SetConsoleMode (HANDLE hConsole,
614 DWORD fdwMode);
615
616BOOL WIN32API SetConsoleOutputCP (UINT IDCodePage);
617
618BOOL WIN32API SetConsoleScreenBufferSize (HANDLE hConsoleOutput,
619 COORD coordSize);
620
621BOOL WIN32API SetConsoleTextAttribute (HANDLE hConsoleOutput,
622 WORD wAttr);
623
624BOOL WIN32API SetConsoleTitleA (LPTSTR lpszTitle);
625
626BOOL WIN32API SetConsoleTitleW (LPWSTR lpszTitle);
627
628BOOL WIN32API SetConsoleWindowInfo (HANDLE hConsoleOutput,
629 BOOL fAbsolute,
630 PSMALL_RECT psrctWindowRect);
631
632BOOL WIN32API WriteConsoleA (HANDLE hConsoleOutput,
633 CONST VOID* lpvBuffer,
634 DWORD cchToWrite,
635 LPDWORD lpcchWritten,
636 LPVOID lpvReserved);
637
638BOOL WIN32API WriteConsoleInputA (HANDLE hConsoleInput,
639 PINPUT_RECORD pirBuffer,
640 DWORD cInRecords,
641 LPDWORD lpcWritten);
642
643BOOL WIN32API WriteConsoleInputW (HANDLE hConsoleInput,
644 PINPUT_RECORD pirBuffer,
645 DWORD cInRecords,
646 LPDWORD lpcWritten);
647
648BOOL WIN32API WriteConsoleOutputA (HANDLE hConsoleOutput,
649 PCHAR_INFO pchiSrcBuffer,
650 COORD coordSrcBufferSize,
651 COORD coordSrcBufferCoord,
652 PSMALL_RECT psrctDestRect);
653
654BOOL WIN32API WriteConsoleOutputW (HANDLE hConsoleOutput,
655 PCHAR_INFO pchiSrcBuffer,
656 COORD coordSrcBufferSize,
657 COORD coordSrcBufferCoord,
658 PSMALL_RECT psrctDestRect);
659
660BOOL WIN32API WriteConsoleOutputAttribute (HANDLE hConsoleOutput,
661 LPWORD lpwAttribute,
662 DWORD cWriteCells,
663 COORD coordWriteCoord,
664 LPDWORD lpcNumberWritten);
665
666BOOL WIN32API WriteConsoleOutputCharacterA (HANDLE hConsoleOutput,
667 LPTSTR lpWriteBuffer,
668 DWORD cchWrite,
669 COORD coordWriteCoord,
670 LPDWORD lpcWritten);
671
672BOOL WIN32API WriteConsoleOutputCharacterW (HANDLE hConsoleOutput,
673 LPTSTR lpWriteBuffer,
674 DWORD cchWrite,
675 COORD coordWriteCoord,
676 LPDWORD lpcWritten);
677
678
679#endif // _OS2WIN_H
680
681#ifdef __cplusplus
682 }
683#endif
684
685#endif /* _CONSOLESUBSYSTEM_H_ */
Note: See TracBrowser for help on using the repository browser.