00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
#ifndef _CONV_H_
00023
#define _CONV_H_
00024
00025
#if defined(FE_IME)
00026
00027
00028
00029
00030
00031
00032
00033
00034
#define COMMON_LVB_GRID_SINGLEFLAG 0x2000 // DBCS: Grid attribute: use for ime cursor.
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
DWORD
00045
NtUserCheckImeHotKey(
00046 UINT uVKey,
00047 LPARAM lParam
00048 );
00049
00050
BOOL
00051
NtUserGetImeHotKey(
00052 IN DWORD dwID,
00053 OUT PUINT puModifiers,
00054 OUT PUINT puVKey,
00055 OUT HKL *phkl);
00056
00057
00058
00059
00060
00061
00062
VOID
00063 LinkConversionArea(
00064 IN
PCONSOLE_INFORMATION Console,
00065 IN PCONVERSIONAREA_INFORMATION ConvAreaInfo
00066 );
00067
00068
NTSTATUS
00069 FreeConvAreaScreenBuffer(
00070 IN
PSCREEN_INFORMATION ScreenInfo
00071 );
00072
00073
NTSTATUS
00074 AllocateConversionArea(
00075 IN
PCONSOLE_INFORMATION Console,
00076 IN COORD dwScreenBufferSize,
00077 OUT PCONVERSIONAREA_INFORMATION *ConvAreaInfo
00078 );
00079
00080
NTSTATUS
00081 SetUpConversionArea(
00082 IN
PCONSOLE_INFORMATION Console,
00083 IN COORD coordCaBuffer,
00084 IN SMALL_RECT rcViewCaWindow,
00085 IN COORD coordConView,
00086 IN DWORD dwOption,
00087 OUT PCONVERSIONAREA_INFORMATION *ConvAreaInfo
00088 );
00089
00090
00091
VOID
00092 WriteConvRegionToScreen(
00093 IN
PSCREEN_INFORMATION ScreenInfo,
00094 IN PCONVERSIONAREA_INFORMATION ConvAreaInfo,
00095 IN PSMALL_RECT ClippedRegion
00096 );
00097
00098
BOOL
00099 ConsoleImeBottomLineUse(
00100 IN
PSCREEN_INFORMATION ScreenInfo,
00101 IN SHORT ScrollOffset
00102 );
00103
00104
VOID
00105 ConsoleImeBottomLineInUse(
00106 IN
PSCREEN_INFORMATION ScreenInfo
00107 );
00108
00109
00110
NTSTATUS
00111 CreateConvAreaUndetermine(
00112
PCONSOLE_INFORMATION Console
00113 );
00114
00115
NTSTATUS
00116 CreateConvAreaModeSystem(
00117
PCONSOLE_INFORMATION Console
00118 );
00119
00120
NTSTATUS
00121 WriteUndetermineChars(
00122
PCONSOLE_INFORMATION Console,
00123 LPWSTR lpString,
00124 PBYTE lpAtr,
00125 PWORD lpAtrIdx,
00126 DWORD NumChars
00127 );
00128
00129
NTSTATUS
00130 FillUndetermineChars(
00131
PCONSOLE_INFORMATION Console,
00132 PCONVERSIONAREA_INFORMATION ConvAreaInfo
00133 );
00134
00135
NTSTATUS
00136 ConsoleImeCompStr(
00137 IN
PCONSOLE_INFORMATION Console,
00138 IN
LPCONIME_UICOMPMESSAGE CompStr
00139 );
00140
00141
NTSTATUS
00142 ConsoleImeResizeModeSystemView(
00143
PCONSOLE_INFORMATION Console,
00144 SMALL_RECT WindowRect
00145 );
00146
00147
NTSTATUS
00148 ConsoleImeResizeCompStrView(
00149
PCONSOLE_INFORMATION Console,
00150 SMALL_RECT WindowRect
00151 );
00152
00153
NTSTATUS
00154 ConsoleImeResizeModeSystemScreenBuffer(
00155
PCONSOLE_INFORMATION Console,
00156 COORD NewScreenSize
00157 );
00158
00159
NTSTATUS
00160 ConsoleImeResizeCompStrScreenBuffer(
00161
PCONSOLE_INFORMATION Console,
00162 COORD NewScreenSize
00163 );
00164
00165
SHORT
00166 CalcWideCharToColumn(
00167 IN
PCONSOLE_INFORMATION Console,
00168 IN PCHAR_INFO Buffer,
00169 IN DWORD NumberOfChars
00170 );
00171
00172
00173
00174
00175 LONG
00176 ConsoleImePaint(
00177 IN
PCONSOLE_INFORMATION Console,
00178 IN PCONVERSIONAREA_INFORMATION ConvAreaInfo
00179 );
00180
00181
00182
00183
00184
VOID
00185 ConsoleImeViewInfo(
00186 IN
PCONSOLE_INFORMATION Console,
00187 IN PCONVERSIONAREA_INFORMATION ConvAreaInfo,
00188 IN COORD coordConView
00189 );
00190
00191
VOID
00192 ConsoleImeWindowInfo(
00193 IN
PCONSOLE_INFORMATION Console,
00194 IN PCONVERSIONAREA_INFORMATION ConvAreaInfo,
00195 IN SMALL_RECT rcViewCaWindow
00196 );
00197
00198
NTSTATUS
00199 ConsoleImeResizeScreenBuffer(
00200 IN
PSCREEN_INFORMATION ScreenInfo,
00201 IN COORD NewScreenSize,
00202 PCONVERSIONAREA_INFORMATION ConvAreaInfo
00203 );
00204
00205
NTSTATUS
00206 ConsoleImeWriteOutput(
00207 IN
PCONSOLE_INFORMATION Console,
00208 IN PCONVERSIONAREA_INFORMATION ConvAreaInfo,
00209 IN PCHAR_INFO Buffer,
00210 IN SMALL_RECT CharRegion,
00211 IN BOOL fUnicode
00212 );
00213
00214
00215
NTSTATUS
00216 ImeControl(
00217 IN
PCONSOLE_INFORMATION Console,
00218 IN HWND hWndConsoleIME,
00219 IN PCOPYDATASTRUCT lParam
00220 ) ;
00221
00222
BOOL
00223 InsertConverTedString(
00224 IN
PCONSOLE_INFORMATION Console,
00225 LPWSTR lpStr
00226 ) ;
00227
00228
00229
VOID
00230 SetUndetermineAttribute(
00231 IN
PCONSOLE_INFORMATION Console
00232 ) ;
00233
00234
VOID
00235 StreamWriteToScreenBufferIME(
00236 IN PWCHAR String,
00237 IN SHORT StringLength,
00238 IN
PSCREEN_INFORMATION ScreenInfo,
00239 IN PCHAR StringA
00240 ) ;
00241
00242
00243
00244
00245
00246
DWORD
00247
CheckImeHotKey(
00248 UINT uVKey,
00249 LPARAM lParam
00250 ) ;
00251
00252
00253
00254
00255
00256
NTSTATUS
00257
MergeAttrStrings(
00258 IN
PATTR_PAIR Source,
00259 IN WORD SourceLength,
00260 IN
PATTR_PAIR Merge,
00261 IN WORD MergeLength,
00262 OUT
PATTR_PAIR *Target,
00263 OUT LPWORD TargetLength,
00264 IN SHORT StartIndex,
00265 IN SHORT EndIndex,
00266 IN
PROW Row,
00267 IN
PSCREEN_INFORMATION ScreenInfo
00268 ) ;
00269
00270
00271
VOID
00272
ResetTextFlags(
00273 IN
PSCREEN_INFORMATION ScreenInfo,
00274 IN SHORT StartY,
00275 IN SHORT EndY
00276 ) ;
00277
00278
#endif // FE_IME
00279
00280
#endif // _CONV_H_
00281