Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

dispatch.h

Go to the documentation of this file.
00001 /*++ 00002 00003 Copyright (c) 1985 - 1999, Microsoft Corporation 00004 00005 Module Name: 00006 00007 dispatch.h 00008 00009 Abstract: 00010 00011 Author: 00012 00013 KazuM Apr.19.1996 00014 00015 Revision History: 00016 00017 --*/ 00018 00019 00020 #undef WWSB 00021 #if defined(WWSB_NOFE) 00022 #define WWSB(fn) SB_##fn 00023 #elif defined(WWSB_FE) 00024 #define WWSB(fn) FE_##fn 00025 #else 00026 #define WWSB(fn) fn 00027 #endif 00028 00029 NTSTATUS 00030 WWSB(DoSrvWriteConsole)( 00031 IN OUT PCSR_API_MSG m, 00032 IN OUT PCSR_REPLY_STATUS ReplyStatus, 00033 IN PCONSOLE_INFORMATION Console, 00034 IN PHANDLE_DATA HandleData 00035 ); 00036 00037 00038 NTSTATUS 00039 WWSB(WriteOutputString)( 00040 IN PSCREEN_INFORMATION ScreenInfo, 00041 IN PVOID Buffer, 00042 IN COORD WriteCoord, 00043 IN ULONG StringType, 00044 IN OUT PULONG NumRecords, // this value is valid even for error cases 00045 OUT PULONG NumColumns OPTIONAL 00046 ); 00047 00048 00049 VOID 00050 WWSB(WriteRectToScreenBuffer)( 00051 PBYTE Source, 00052 COORD SourceSize, 00053 PSMALL_RECT SourceRect, 00054 PSCREEN_INFORMATION ScreenInfo, 00055 COORD TargetPoint, 00056 IN UINT Codepage 00057 ); 00058 00059 00060 VOID 00061 WWSB(WriteToScreen)( 00062 IN PSCREEN_INFORMATION ScreenInfo, 00063 PSMALL_RECT Region // region is inclusive 00064 ); 00065 00066 00067 VOID 00068 WWSB(WriteRegionToScreen)( 00069 IN PSCREEN_INFORMATION ScreenInfo, 00070 IN PSMALL_RECT Region 00071 ); 00072 00073 00074 NTSTATUS 00075 WWSB(FillOutput)( 00076 IN PSCREEN_INFORMATION ScreenInfo, 00077 IN WORD Element, 00078 IN COORD WriteCoord, 00079 IN ULONG ElementType, 00080 IN OUT PULONG Length // this value is valid even for error cases 00081 ); 00082 00083 00084 VOID 00085 WWSB(FillRectangle)( 00086 IN CHAR_INFO Fill, 00087 IN OUT PSCREEN_INFORMATION ScreenInfo, 00088 IN PSMALL_RECT TargetRect 00089 ); 00090 00091 00092 ULONG 00093 WWSB(DoWriteConsole)( 00094 IN OUT PCSR_API_MSG m, 00095 IN PCONSOLE_INFORMATION Console, 00096 IN PCSR_THREAD Thread 00097 ); 00098 00099 00100 NTSTATUS 00101 WWSB(WriteChars)( 00102 IN PSCREEN_INFORMATION ScreenInfo, 00103 IN PWCHAR lpBufferBackupLimit, 00104 IN PWCHAR lpBuffer, 00105 IN PWCHAR lpRealUnicodeString, 00106 IN OUT PDWORD NumBytes, 00107 OUT PLONG NumSpaces OPTIONAL, 00108 IN SHORT OriginalXPosition, 00109 IN DWORD dwFlags, 00110 OUT PSHORT ScrollY OPTIONAL 00111 ); 00112 00113 00114 NTSTATUS 00115 WWSB(AdjustCursorPosition)( 00116 IN PSCREEN_INFORMATION ScreenInfo, 00117 IN COORD CursorPosition, 00118 IN BOOL KeepCursorVisible, 00119 OUT PSHORT ScrollY OPTIONAL 00120 ); 00121 00122 00123 NTSTATUS 00124 TranslateOutputToAnsiUnicode( 00125 IN PCONSOLE_INFORMATION Console, 00126 IN OUT PCHAR_INFO OutputBuffer, 00127 IN COORD Size, 00128 IN OUT PCHAR_INFO OutputBufferR 00129 ); 00130 NTSTATUS 00131 FE_TranslateOutputToAnsiUnicode( 00132 IN PCONSOLE_INFORMATION Console, 00133 IN OUT PCHAR_INFO OutputBuffer, 00134 IN COORD Size, 00135 IN OUT PCHAR_INFO OutputBufferR 00136 ); 00137 NTSTATUS 00138 SB_TranslateOutputToAnsiUnicode( 00139 IN PCONSOLE_INFORMATION Console, 00140 IN OUT PCHAR_INFO OutputBuffer, 00141 IN COORD Size 00142 ); 00143 00144 00145 NTSTATUS 00146 WWSB(TranslateOutputToUnicode)( 00147 IN PCONSOLE_INFORMATION Console, 00148 IN OUT PCHAR_INFO OutputBuffer, 00149 IN COORD Size); 00150 00151 00152 NTSTATUS 00153 TranslateOutputToOemUnicode( 00154 IN PCONSOLE_INFORMATION Console, 00155 IN OUT PCHAR_INFO OutputBuffer, 00156 IN COORD Size, 00157 IN BOOL fRemoveDbcsMark 00158 ); 00159 NTSTATUS 00160 FE_TranslateOutputToOemUnicode( 00161 IN PCONSOLE_INFORMATION Console, 00162 IN OUT PCHAR_INFO OutputBuffer, 00163 IN COORD Size, 00164 IN BOOL fRemoveDbcsMark 00165 ); 00166 NTSTATUS 00167 SB_TranslateOutputToOemUnicode( 00168 IN PCONSOLE_INFORMATION Console, 00169 IN OUT PCHAR_INFO OutputBuffer, 00170 IN COORD Size 00171 ); 00172 00173 00174 NTSTATUS 00175 WWSB(TranslateOutputToOem)( 00176 IN PCONSOLE_INFORMATION Console, 00177 IN OUT PCHAR_INFO OutputBuffer, 00178 IN COORD Size 00179 ); 00180 00181 00182 ULONG 00183 TranslateInputToUnicode( 00184 IN PCONSOLE_INFORMATION Console, 00185 IN OUT PINPUT_RECORD InputRecords, 00186 IN ULONG NumRecords, 00187 IN OUT PINPUT_RECORD DBCSLeadByte 00188 ); 00189 ULONG 00190 FE_TranslateInputToUnicode( 00191 IN PCONSOLE_INFORMATION Console, 00192 IN OUT PINPUT_RECORD InputRecords, 00193 IN ULONG NumRecords, 00194 IN OUT PINPUT_RECORD DBCSLeadByte 00195 ); 00196 ULONG 00197 SB_TranslateInputToUnicode( 00198 IN PCONSOLE_INFORMATION Console, 00199 IN OUT PINPUT_RECORD InputRecords, 00200 IN ULONG NumRecords 00201 ); 00202 00203 00204 ULONG 00205 TranslateInputToOem( 00206 IN PCONSOLE_INFORMATION Console, 00207 IN OUT PINPUT_RECORD InputRecords, 00208 IN ULONG NumRecords, // in : ASCII byte count 00209 IN ULONG UnicodeLength, // in : Number of events (char count) 00210 OUT PINPUT_RECORD DbcsLeadInpRec 00211 ); 00212 ULONG 00213 FE_TranslateInputToOem( 00214 IN PCONSOLE_INFORMATION Console, 00215 IN OUT PINPUT_RECORD InputRecords, 00216 IN ULONG NumRecords, // in : ASCII byte count 00217 IN ULONG UnicodeLength, // in : Number of events (char count) 00218 OUT PINPUT_RECORD DbcsLeadInpRec 00219 ); 00220 ULONG 00221 SB_TranslateInputToOem( 00222 IN PCONSOLE_INFORMATION Console, 00223 IN OUT PINPUT_RECORD InputRecords, 00224 IN ULONG NumRecords 00225 ); 00226 00227 00228 #ifdef i386 00229 VOID 00230 WWSB(WriteRegionToScreenHW)( 00231 IN PSCREEN_INFORMATION ScreenInfo, 00232 IN PSMALL_RECT Region 00233 ); 00234 #endif 00235 00236 00237 VOID 00238 StreamWriteToScreenBuffer( 00239 IN PWCHAR String, 00240 IN SHORT StringLength, 00241 IN PSCREEN_INFORMATION ScreenInfo 00242 ); 00243 VOID 00244 FE_StreamWriteToScreenBuffer( 00245 IN PWCHAR String, 00246 IN SHORT StringLength, 00247 IN PSCREEN_INFORMATION ScreenInfo, 00248 IN PCHAR StringA 00249 ); 00250 VOID 00251 SB_StreamWriteToScreenBuffer( 00252 IN PWCHAR String, 00253 IN SHORT StringLength, 00254 IN PSCREEN_INFORMATION ScreenInfo 00255 ); 00256 00257 /* 00258 * SB/FE neutral defines for use from _stream.h and _output.h 00259 * 00260 * Each of these functions appears in dispatch.c, but we don't want SB_ or FE_ 00261 * routines to call the dispatching subroutines, we want to call the SB_ or FE_ 00262 * subroutines directly. eg: There should be no calls to WriteChars from 00263 * anywhere in _stream.h : instead, we should call WWSB_WriteChars (etc.) 00264 */ 00265 #if defined(WWSB_NOFE) 00266 #define WWSB_WriteChars SB_WriteChars 00267 #define WWSB_AdjustCursorPosition SB_AdjustCursorPosition 00268 #define WWSB_DoWriteConsole SB_DoWriteConsole 00269 #define WWSB_DoSrvWriteConsole SB_DoSrvWriteConsole 00270 #define WWSB_WriteToScreen SB_WriteToScreen 00271 #define WWSB_WriteOutputString SB_WriteOutputString 00272 #define WWSB_FillOutput SB_FillOutput 00273 #define WWSB_FillRectangle SB_FillRectangle 00274 #define WWSB_PolyTextOutCandidate SB_PolyTextOutCandidate 00275 #define WWSB_ConsolePolyTextOut SB_ConsolePolyTextOut 00276 #define WWSB_WriteRegionToScreen SB_WriteRegionToScreen 00277 #define WWSB_WriteRegionToScreenHW SB_WriteRegionToScreenHW 00278 #define WWSB_WriteRectToScreenBuffer SB_WriteRectToScreenBuffer 00279 #endif 00280 00281 #if defined(WWSB_FE) 00282 #undef WWSB_WriteChars 00283 #define WWSB_WriteChars FE_WriteChars 00284 #undef WWSB_AdjustCursorPosition 00285 #define WWSB_AdjustCursorPosition FE_AdjustCursorPosition 00286 #undef WWSB_DoWriteConsole 00287 #define WWSB_DoWriteConsole FE_DoWriteConsole 00288 #undef WWSB_DoSrvWriteConsole 00289 #define WWSB_DoSrvWriteConsole FE_DoSrvWriteConsole 00290 #undef WWSB_WriteToScreen 00291 #define WWSB_WriteToScreen FE_WriteToScreen 00292 #undef WWSB_WriteOutputString 00293 #define WWSB_WriteOutputString FE_WriteOutputString 00294 #undef WWSB_FillOutput 00295 #define WWSB_FillOutput FE_FillOutput 00296 #undef WWSB_FillRectangle 00297 #define WWSB_FillRectangle FE_FillRectangle 00298 #undef WWSB_PolyTextOutCandidate 00299 #define WWSB_PolyTextOutCandidate FE_PolyTextOutCandidate 00300 #undef WWSB_ConsolePolyTextOut 00301 #define WWSB_ConsolePolyTextOut FE_ConsolePolyTextOut 00302 #undef WWSB_WriteRegionToScreen 00303 #define WWSB_WriteRegionToScreen FE_WriteRegionToScreen 00304 #undef WWSB_WriteRegionToScreenHW 00305 #define WWSB_WriteRegionToScreenHW FE_WriteRegionToScreenHW 00306 #undef WWSB_WriteRectToScreenBuffer 00307 #define WWSB_WriteRectToScreenBuffer FE_WriteRectToScreenBuffer 00308 #endif 00309 00310 /* 00311 * define WWSB_NEUTRAL_FILE in _stream.h _output.h and _priv.h 00312 * This will guard against calling the dispatching versions when we can just 00313 * call the underlying FE_ or SB_ routine directly. 00314 */ 00315 #ifdef WWSB_NEUTRAL_FILE 00316 #define WriteChars Should_not_call_WriteChars 00317 #define AdjustCursorPosition Should_not_call_AdjustCursorPosition 00318 #define DoWriteConsole Should_not_call_DoWriteConsole 00319 #define DoSrvWriteConsole Should_not_call_DoSrvWriteConsole 00320 #define WriteToScreen Should_not_call_WriteToScreen 00321 #define WriteOutputString Should_not_call_WriteOutputString 00322 #define FillOutput Should_not_call_FillOutput 00323 #define FillRectangle Should_not_call_FillRectangle 00324 #define PolyTextOutCandidate Should_not_call_PolyTextOutCandidate 00325 #define ConsolePolyTextOut Should_not_call_ConsolePolyTextOut 00326 #define WriteRegionToScreen Should_not_call_WriteRegionToScreen 00327 #define WriteRegionToScreenHW Should_not_call_WriteRegionToScreenHW 00328 #define WriteRectToScreenBuffer Should_not_call_WriteRectToScreenBuffer 00329 #endif 00330

Generated on Sat May 15 19:39:45 2004 for test by doxygen 1.3.7