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

dbcs.h

Go to the documentation of this file.
00001 /*++ 00002 00003 Copyright (c) 1985 - 1999, Microsoft Corporation 00004 00005 Module Name: 00006 00007 dbcs.h 00008 00009 Abstract: 00010 00011 Author: 00012 00013 Revision History: 00014 00015 --*/ 00016 00017 00018 #define UNICODE_DBCS_PADDING 0xffff 00019 00020 #define DEFAULT_FONTSIZE 256 00021 #define DEFAULT_EUDCSIZE 1 00022 00023 #define VDM_EUDC_FONT_SIZE_X 16 00024 #define VDM_EUDC_FONT_SIZE_Y 16 00025 00026 #define USACP 1252 00027 #define KOREAN_CP 949 00028 #define JAPAN_CP 932 00029 00030 #if defined(FE_SB) 00031 #define MIN_SCRBUF_WIDTH 12 // for suport display IME status 00032 #define MIN_SCRBUF_HEIGHT 2 // for suport display IME status 00033 #define MIN_WINDOW_HEIGHT 1 00034 #endif 00035 00036 00037 00038 #if defined(i386) 00039 extern ULONG gdwMachineId; 00040 #endif 00041 00042 00043 extern ULONG DefaultFontIndex; 00044 extern COORD DefaultFontSize; 00045 extern BYTE DefaultFontFamily; 00046 00047 00048 typedef struct _MODE_FONT_PAIR { 00049 DWORD Mode; 00050 #define FS_MODE_TEXT 0x0001 00051 #define FS_MODE_GRAPHICS 0x0002 00052 #define FS_MODE_FIND 0x8000 00053 #define FS_TEXT (FS_MODE_FIND+FS_MODE_TEXT) 00054 #define FS_GRAPHICS (FS_MODE_FIND+FS_MODE_GRAPHICS) 00055 COORD ScreenSize; 00056 COORD Resolution; 00057 COORD FontSize; 00058 } MODE_FONT_PAIR, *PMODE_FONT_PAIR; 00059 00060 typedef struct _FS_CODEPAGE { 00061 SINGLE_LIST_ENTRY List; 00062 UINT CodePage; 00063 } FS_CODEPAGE, *PFS_CODEPAGE; 00064 00065 extern PUSHORT RegInitialPalette; 00066 extern PUCHAR RegColorBuffer; 00067 extern PUCHAR RegColorBufferNoTranslate; 00068 extern DWORD NUMBER_OF_MODE_FONT_PAIRS; 00069 extern PMODE_FONT_PAIR RegModeFontPairs; 00070 extern SINGLE_LIST_ENTRY gRegFullScreenCodePage; // This list contain FS_CODEPAGE data. 00071 00072 00073 00074 typedef struct tagSTRINGBITMAP 00075 { 00076 UINT uiWidth; 00077 UINT uiHeight; 00078 BYTE ajBits[1]; 00079 } STRINGBITMAP, *LPSTRINGBITMAP; 00080 00081 UINT 00082 GetStringBitmapW( 00083 HDC hdc, 00084 LPWSTR pwc, 00085 UINT cwc, 00086 UINT cbData, 00087 BYTE *pSB 00088 ); 00089 00090 00091 00092 // 00093 // dbcs.c 00094 // 00095 00096 #if defined(FE_IME) 00097 00098 #if defined(i386) 00099 NTSTATUS 00100 ImeWmFullScreen( 00101 IN BOOL Foreground, 00102 IN PCONSOLE_INFORMATION Console, 00103 IN PSCREEN_INFORMATION ScreenInfo 00104 ); 00105 #endif // i386 00106 00107 00108 NTSTATUS 00109 GetImeKeyState( 00110 IN PCONSOLE_INFORMATION Console, 00111 IN PDWORD pdwConversion 00112 ); 00113 00114 00115 NTSTATUS 00116 SetImeKeyState( 00117 IN PCONSOLE_INFORMATION Console, 00118 IN DWORD fdwConversion 00119 ); 00120 00121 NTSTATUS 00122 SetImeCodePage( 00123 IN PCONSOLE_INFORMATION Console 00124 ); 00125 00126 NTSTATUS 00127 SetImeOutputCodePage( 00128 IN PCONSOLE_INFORMATION Console, 00129 IN PSCREEN_INFORMATION ScreenInfo, 00130 IN DWORD CodePage 00131 ); 00132 #endif // FE_IME 00133 00134 VOID 00135 SetLineChar( 00136 IN PSCREEN_INFORMATION ScreenInfo 00137 ); 00138 00139 BOOL 00140 CheckBisectStringA( 00141 IN DWORD CodePage, 00142 IN PCHAR Buffer, 00143 IN DWORD NumBytes, 00144 IN LPCPINFO lpCPInfo 00145 ); 00146 00147 VOID 00148 BisectWrite( 00149 IN SHORT StringLength, 00150 IN COORD TargetPoint, 00151 IN PSCREEN_INFORMATION ScreenInfo 00152 ); 00153 00154 VOID 00155 BisectClipbrd( 00156 IN SHORT StringLength, 00157 IN COORD TargetPoint, 00158 IN PSCREEN_INFORMATION ScreenInfo, 00159 OUT PSMALL_RECT SmallRect 00160 ); 00161 00162 VOID 00163 BisectWriteAttr( 00164 IN SHORT StringLength, 00165 IN COORD TargetPoint, 00166 IN PSCREEN_INFORMATION ScreenInfo 00167 ); 00168 00169 DWORD 00170 RemoveDbcsMark( 00171 IN PWCHAR Dst, 00172 IN PWCHAR Src, 00173 IN DWORD NumBytes, 00174 IN PCHAR SrcA, 00175 IN BOOL OS2OemFormat 00176 ); 00177 00178 DWORD 00179 RemoveDbcsMarkCell( 00180 IN PCHAR_INFO Dst, 00181 IN PCHAR_INFO Src, 00182 IN DWORD NumBytes 00183 ); 00184 00185 DWORD 00186 RemoveDbcsMarkAll( 00187 IN PSCREEN_INFORMATION ScreenInfo, 00188 IN PROW Row, 00189 IN PSHORT LeftChar, 00190 IN PRECT TextRect, 00191 IN int *TextLeft, 00192 IN PWCHAR Buffer, 00193 IN SHORT NumberOfChars 00194 ); 00195 00196 BOOL 00197 IsDBCSLeadByteConsole( 00198 IN BYTE AsciiChar, 00199 IN LPCPINFO lpCPInfo 00200 ); 00201 00202 NTSTATUS 00203 AdjustFont( 00204 IN PCONSOLE_INFORMATION Console, 00205 IN UINT CodePage 00206 ); 00207 00208 NTSTATUS 00209 ConvertToCodePage( 00210 IN PCONSOLE_INFORMATION Console, 00211 IN UINT PrevCodePage 00212 ); 00213 00214 NTSTATUS 00215 ConvertOutputOemToNonOemUnicode( 00216 IN OUT LPWSTR Source, 00217 IN OUT PBYTE KAttrRows, 00218 IN int SourceLength, // in chars 00219 IN UINT Codepage 00220 ); 00221 00222 00223 VOID 00224 TextOutEverything( 00225 IN PCONSOLE_INFORMATION Console, 00226 IN PSCREEN_INFORMATION ScreenInfo, 00227 IN SHORT LeftWindowPos, 00228 IN OUT PSHORT RightWindowPos, 00229 IN OUT PSHORT CountOfAttr, 00230 IN SHORT CountOfAttrOriginal, 00231 IN OUT PBOOL DoubleColorDBCS, 00232 IN BOOL LocalEUDCFlag, 00233 IN PROW Row, 00234 IN PATTR_PAIR Attr, 00235 IN SHORT LeftTextPos, 00236 IN SHORT RightTextPos, 00237 IN int WindowRectLeft, 00238 IN RECT WindowRect, 00239 IN SHORT NumberOfChars 00240 ); 00241 00242 VOID 00243 TextOutCommonLVB( 00244 IN PCONSOLE_INFORMATION Console, 00245 IN WORD Attributes, 00246 IN RECT CommonLVBRect 00247 ); 00248 00249 NTSTATUS 00250 MakeAltRasterFont( 00251 UINT CodePage, 00252 COORD DefaultFontSize, 00253 COORD *AltFontSize, 00254 BYTE *AltFontFamily, 00255 ULONG *AltFontIndex, 00256 LPWSTR AltFaceName 00257 ); 00258 00259 NTSTATUS 00260 InitializeDbcsMisc( 00261 VOID 00262 ); 00263 00264 #if defined(i386) 00265 NTSTATUS 00266 RealUnicodeToNEC_OS2_Unicode( 00267 IN OUT LPWSTR Source, 00268 IN int SourceLength // in chars 00269 ); 00270 00271 BOOL 00272 InitializeNEC_OS2_CP( 00273 VOID 00274 ); 00275 #endif 00276 00277 BYTE 00278 CodePageToCharSet( 00279 UINT CodePage 00280 ); 00281 00282 BOOL 00283 IsAvailableFarEastCodePage( 00284 UINT CodePage 00285 ); 00286 00287 LPTTFONTLIST 00288 SearchTTFont( 00289 LPWSTR pwszFace, 00290 BOOL fCodePage, 00291 UINT CodePage 00292 ); 00293 00294 BOOL 00295 IsAvailableTTFont( 00296 LPWSTR pwszFace 00297 ); 00298 00299 BOOL 00300 IsAvailableTTFontCP( 00301 LPWSTR pwszFace, 00302 UINT CodePage 00303 ); 00304 00305 LPWSTR 00306 GetAltFaceName( 00307 LPWSTR pwszFace 00308 ); 00309 00310 BOOL 00311 IsAvailableFsCodePage( 00312 UINT CodePage 00313 ); 00314 00315 #if defined(FE_IME) 00316 00317 VOID 00318 ProcessCreateConsoleIME( 00319 IN LPMSG lpMsg, 00320 DWORD dwConsoleThreadId 00321 ); 00322 00323 NTSTATUS 00324 InitConsoleIMEStuff( 00325 HDESK hDesktop, 00326 DWORD dwConsoleThreadId, 00327 PCONSOLE_INFORMATION Console 00328 ); 00329 00330 NTSTATUS 00331 WaitConsoleIMEStuff( 00332 HDESK hDesktop, 00333 HANDLE hThread 00334 ); 00335 00336 NTSTATUS 00337 ConSrvRegisterConsoleIME( 00338 PCSR_PROCESS Process, 00339 HDESK hDesktop, 00340 HWINSTA hWinSta, 00341 HWND hWndConsoleIME, 00342 DWORD dwConsoleIMEThreadId, 00343 DWORD dwAction, 00344 DWORD *dwConsoleThreadId 00345 ); 00346 00347 VOID 00348 RemoveConsoleIME( 00349 PCSR_PROCESS Process, 00350 DWORD dwConsoleIMEThreadId 00351 ); 00352 00353 NTSTATUS 00354 ConsoleImeMessagePumpWorker( 00355 PCONSOLE_INFORMATION Console, 00356 UINT Message, 00357 WPARAM wParam, 00358 LPARAM lParam, 00359 LRESULT* lplResult); 00360 00361 00362 NTSTATUS 00363 ConsoleImeMessagePump( 00364 PCONSOLE_INFORMATION Console, 00365 UINT Message, 00366 WPARAM wParam, 00367 LPARAM lParam 00368 ); 00369 #endif // FE_IME 00370 00371 00372 BOOL 00373 RegisterKeisenOfTTFont( 00374 IN PSCREEN_INFORMATION ScreenInfo 00375 ); 00376 00377 ULONG 00378 TranslateUnicodeToOem( 00379 IN PCONSOLE_INFORMATION Console, 00380 IN PWCHAR UnicodeBuffer, 00381 IN ULONG UnicodeCharCount, 00382 OUT PCHAR AnsiBuffer, 00383 IN ULONG AnsiByteCount, 00384 OUT PINPUT_RECORD DbcsLeadInpRec 00385 ); 00386 00387 DWORD 00388 ImmConversionToConsole( 00389 DWORD fdwConversion 00390 ); 00391 00392 DWORD 00393 ImmConversionFromConsole( 00394 DWORD dwNlsMode 00395 ); 00396 00397 //#define DBG_KAZUM 00398 //#define DBG_KATTR 00399 00400 #if defined(DBG) && defined(DBG_KATTR) 00401 VOID 00402 BeginKAttrCheck( 00403 IN PSCREEN_INFORMATION ScreenInfo 00404 ); 00405 #endif 00406 00407 00408 // 00409 // output2.c 00410 // 00411 BOOL 00412 CreateDbcsScreenBuffer( 00413 IN PCONSOLE_INFORMATION Console, 00414 IN COORD dwScreenBufferSize, 00415 OUT PDBCS_SCREEN_BUFFER DbcsScreenBuffer 00416 ); 00417 00418 BOOL 00419 DeleteDbcsScreenBuffer( 00420 IN PDBCS_SCREEN_BUFFER DbcsScreenBuffer 00421 ); 00422 00423 BOOL 00424 ReCreateDbcsScreenBuffer( 00425 IN PCONSOLE_INFORMATION Console, 00426 IN UINT OldCodePage 00427 ); 00428 00429 BOOL 00430 FE_PolyTextOutCandidate( 00431 IN PSCREEN_INFORMATION ScreenInfo, 00432 IN PSMALL_RECT Region 00433 ); 00434 00435 VOID 00436 FE_ConsolePolyTextOut( 00437 IN PSCREEN_INFORMATION ScreenInfo, 00438 IN PSMALL_RECT Region 00439 ); 00440 00441 00442 // 00443 // private2.c 00444 // 00445 NTSTATUS 00446 SetRAMFontCodePage( 00447 IN PSCREEN_INFORMATION ScreenInfo 00448 ); 00449 00450 NTSTATUS 00451 SetRAMFont( 00452 IN PSCREEN_INFORMATION ScreenInfo, 00453 IN PCHAR_INFO ScreenBufPtr, 00454 IN DWORD Length 00455 );

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