source: trunk/src/kernel32/conbuffer.h@ 4502

Last change on this file since 4502 was 4502, checked in by sandervl, 25 years ago

basic support for VIO console command line apps added + FormatMessage addition

File size: 10.9 KB
Line 
1/* $Id: conbuffer.h,v 1.3 2000-10-20 11:46:44 sandervl 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
9#ifndef _CONSOLE_BUFFER_H_
10#define _CONSOLE_BUFFER_H_
11
12
13/*****************************************************************************
14 * Remark *
15 *****************************************************************************
16
17 */
18
19
20/*****************************************************************************
21 * Resources *
22 *****************************************************************************/
23
24
25/*****************************************************************************
26 * Includes *
27 *****************************************************************************/
28
29//#include <win32type.h>
30#include "handlemanager.h"
31#include "HMDevice.h"
32#include "console2.h"
33
34
35/*****************************************************************************
36 * ConsoleBuffer - does all the writing to an internal line buffer array *
37 * if this buffer is the active one, also does a screen updt *
38 *****************************************************************************/
39
40class HMDeviceConsoleBufferClass : public HMDeviceHandler
41{
42 protected:
43 PICONSOLEINPUT pConsoleInput; /* pointer to console input area */
44 PICONSOLEGLOBALS pConsoleGlobals; /* pointer to console global area */
45
46 public:
47 HMDeviceConsoleBufferClass(LPCSTR lpDeviceName,
48 PICONSOLEINPUT piConsoleInput,
49 PICONSOLEGLOBALS piConsoleGlobals)
50 : HMDeviceHandler(lpDeviceName)
51 {
52 pConsoleInput = piConsoleInput; // save pointers to this data
53 pConsoleGlobals = piConsoleGlobals;
54 }
55
56 /* this is a handler method for calls to CreateFile() */
57 virtual DWORD CreateFile (LPCSTR lpFileName,
58 PHMHANDLEDATA pHMHandleData,
59 PVOID lpSecurityAttributes,
60 PHMHANDLEDATA pHMHandleDataTemplate);
61
62 /* this is a handler method for calls to ReadFile() */
63 virtual BOOL ReadFile (PHMHANDLEDATA pHMHandleData,
64 LPCVOID lpBuffer,
65 DWORD nNumberOfBytesToRead,
66 LPDWORD lpNumberOfBytesRead,
67 LPOVERLAPPED lpOverlapped);
68
69 /* this is a handler method for calls to WriteFile() */
70 virtual BOOL WriteFile (PHMHANDLEDATA pHMHandleData,
71 LPCVOID lpBuffer,
72 DWORD nNumberOfBytesToWrite,
73 LPDWORD lpNumberOfBytesWritten,
74 LPOVERLAPPED lpOverlapped);
75
76 virtual DWORD CloseHandle(PHMHANDLEDATA pHMHandleData);
77
78 virtual DWORD _DeviceRequest (PHMHANDLEDATA pHMHandleData,
79 ULONG ulRequestCode,
80 ULONG arg1,
81 ULONG arg2,
82 ULONG arg3,
83 ULONG arg4);
84
85
86 /************************************
87 * non-standard console I/O methods *
88 ************************************/
89
90 virtual DWORD FillConsoleOutputAttribute(PHMHANDLEDATA pHMHandleData,
91 WORD wAttribute,
92 DWORD nLength,
93 COORD dwWriteCoord,
94 LPDWORD lpNumberOfAttrsWritten);
95
96 virtual DWORD FillConsoleOutputCharacterA(PHMHANDLEDATA pHMHandleData,
97 UCHAR ucCharacter,
98 DWORD nLength,
99 COORD dwWriteCoord,
100 LPDWORD lpNumberOfCharsWritten);
101
102 virtual DWORD FillConsoleOutputCharacterW(PHMHANDLEDATA pHMHandleData,
103 WCHAR wcCharacter,
104 DWORD nLength,
105 COORD dwWriteCoord,
106 LPDWORD lpNumberOfCharsWritten);
107
108 virtual DWORD GetConsoleCursorInfo(PHMHANDLEDATA pHMHandleData,
109 PCONSOLE_CURSOR_INFO pCCI);
110
111 virtual DWORD GetConsoleMode(PHMHANDLEDATA pHMHandleData,
112 LPDWORD lpMode);
113
114 virtual DWORD GetLargestConsoleWindowSize(PHMHANDLEDATA pHMHandleData);
115
116 virtual DWORD GetConsoleScreenBufferInfo(PHMHANDLEDATA pHMHandleData,
117 PCONSOLE_SCREEN_BUFFER_INFO pCSBI);
118
119 virtual DWORD ReadConsoleOutputA(PHMHANDLEDATA pHMHandleData,
120 PCHAR_INFO pchiDestBuffer,
121 COORD coordDestBufferSize,
122 COORD coordDestBufferCoord,
123 PSMALL_RECT psrctSourceRect);
124
125 virtual DWORD ReadConsoleOutputW(PHMHANDLEDATA pHMHandleData,
126 PCHAR_INFO pchiDestBuffer,
127 COORD coordDestBufferSize,
128 COORD coordDestBufferCoord,
129 PSMALL_RECT psrctSourceRect);
130
131 virtual DWORD ReadConsoleOutputAttribute(PHMHANDLEDATA pHMHandleData,
132 LPWORD lpwAttribute,
133 DWORD cReadCells,
134 COORD dwReadCoord,
135 LPDWORD lpcNumberRead);
136
137 virtual DWORD ReadConsoleOutputCharacterA(PHMHANDLEDATA pHMHandleData,
138 LPTSTR lpwReadBuffer,
139 DWORD cchRead,
140 COORD coordReadCoord,
141 LPDWORD lpcNumberRead);
142
143 virtual DWORD ReadConsoleOutputCharacterW(PHMHANDLEDATA pHMHandleData,
144 LPWSTR lpwReadBuffer,
145 DWORD cchRead,
146 COORD coordReadCoord,
147 LPDWORD lpcNumberRead);
148
149 virtual DWORD ScrollConsoleScreenBufferA(PHMHANDLEDATA pHMHandleData,
150 PSMALL_RECT psrctSourceRect,
151 PSMALL_RECT psrctClipRect,
152 COORD coordDestOrigin,
153 PCHAR_INFO pchiFill);
154
155 virtual DWORD ScrollConsoleScreenBufferW(PHMHANDLEDATA pHMHandleData,
156 PSMALL_RECT psrctSourceRect,
157 PSMALL_RECT psrctClipRect,
158 COORD coordDestOrigin,
159 PCHAR_INFO pchiFill);
160
161 virtual DWORD SetConsoleScreenBufferSize (PHMHANDLEDATA pHMHandleData,
162 COORD coordSize);
163
164 virtual DWORD SetConsoleCursorInfo(PHMHANDLEDATA pHMHandleData,
165 PCONSOLE_CURSOR_INFO pCCI);
166
167 virtual DWORD SetConsoleCursorPosition(PHMHANDLEDATA pHMHandleData,
168 COORD coordCursorPosition);
169
170 virtual DWORD SetConsoleMode(PHMHANDLEDATA pHMHandleData,
171 DWORD dwMode);
172
173 virtual DWORD SetConsoleTextAttribute (PHMHANDLEDATA pHMHandleData,
174 WORD wAttr);
175
176 virtual DWORD SetConsoleActiveScreenBuffer(PHMHANDLEDATA pHMHandleData);
177
178 virtual BOOL SetConsoleWindowInfo(PHMHANDLEDATA pHMHandleData,
179 BOOL fAbsolute,
180 PSMALL_RECT psrctWindowRect);
181
182 virtual DWORD WriteConsoleA(PHMHANDLEDATA pHMHandleData,
183 CONST VOID* lpvBuffer,
184 DWORD cchToWrite,
185 LPDWORD lpcchWritten,
186 LPVOID lpvReserved);
187
188 virtual DWORD WriteConsoleW(PHMHANDLEDATA pHMHandleData,
189 CONST VOID* lpvBuffer,
190 DWORD cchToWrite,
191 LPDWORD lpcchWritten,
192 LPVOID lpvReserved);
193
194 virtual DWORD WriteConsoleOutputA(PHMHANDLEDATA pHMHandleData,
195 PCHAR_INFO pchiSrcBuffer,
196 COORD coordSrcBufferSize,
197 COORD coordSrcBufferCoord,
198 PSMALL_RECT psrctDestRect);
199
200 virtual DWORD WriteConsoleOutputW(PHMHANDLEDATA pHMHandleData,
201 PCHAR_INFO pchiSrcBuffer,
202 COORD coordSrcBufferSize,
203 COORD coordSrcBufferCoord,
204 PSMALL_RECT psrctDestRect);
205
206 virtual DWORD WriteConsoleOutputAttribute(PHMHANDLEDATA pHMHandleData,
207 LPWORD lpwAttribute,
208 DWORD cWriteCells,
209 COORD dwWriteCoord,
210 LPDWORD lpcWritten);
211
212 virtual DWORD WriteConsoleOutputCharacterA(PHMHANDLEDATA pHMHandleData,
213 LPTSTR lpWriteBuffer,
214 DWORD cchWrite,
215 COORD dwWriteCoord,
216 LPDWORD lpcWritten);
217
218 virtual DWORD WriteConsoleOutputCharacterW(PHMHANDLEDATA pHMHandleData,
219 LPWSTR lpWriteBuffer,
220 DWORD cchWrite,
221 COORD dwWriteCoord,
222 LPDWORD lpcWritten);
223};
224
225#endif /* _CONSOLE_BUFFER_H_ */
226
Note: See TracBrowser for help on using the repository browser.