You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
283 lines
4.9 KiB
283 lines
4.9 KiB
/*++
|
|
|
|
Copyright (c) 1985 - 1999, Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
conv.h
|
|
|
|
Abstract:
|
|
|
|
This module contains the internal structures and definitions used
|
|
by the conversion area.
|
|
|
|
Author:
|
|
|
|
KazuM Mar.8,1993
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#ifndef _CONV_H_
|
|
#define _CONV_H_
|
|
|
|
#if defined(FE_IME)
|
|
//
|
|
// Externs
|
|
//
|
|
|
|
|
|
//
|
|
// Attributes flags:
|
|
//
|
|
#define COMMON_LVB_GRID_SINGLEFLAG 0x2000 // DBCS: Grid attribute: use for ime cursor.
|
|
|
|
/*
|
|
* Exported function
|
|
*/
|
|
|
|
/*
|
|
* Internal function
|
|
*/
|
|
|
|
DWORD
|
|
NtUserCheckImeHotKey(
|
|
UINT uVKey,
|
|
LPARAM lParam
|
|
);
|
|
|
|
BOOL
|
|
NtUserGetImeHotKey(
|
|
IN DWORD dwID,
|
|
OUT PUINT puModifiers,
|
|
OUT PUINT puVKey,
|
|
OUT HKL *phkl);
|
|
|
|
|
|
/*
|
|
* Prototype definition
|
|
*/
|
|
|
|
VOID
|
|
LinkConversionArea(
|
|
IN PCONSOLE_INFORMATION Console,
|
|
IN PCONVERSIONAREA_INFORMATION ConvAreaInfo
|
|
);
|
|
|
|
NTSTATUS
|
|
FreeConvAreaScreenBuffer(
|
|
IN PSCREEN_INFORMATION ScreenInfo
|
|
);
|
|
|
|
NTSTATUS
|
|
AllocateConversionArea(
|
|
IN PCONSOLE_INFORMATION Console,
|
|
IN COORD dwScreenBufferSize,
|
|
OUT PCONVERSIONAREA_INFORMATION *ConvAreaInfo
|
|
);
|
|
|
|
NTSTATUS
|
|
SetUpConversionArea(
|
|
IN PCONSOLE_INFORMATION Console,
|
|
IN COORD coordCaBuffer,
|
|
IN SMALL_RECT rcViewCaWindow,
|
|
IN COORD coordConView,
|
|
IN DWORD dwOption,
|
|
OUT PCONVERSIONAREA_INFORMATION *ConvAreaInfo
|
|
);
|
|
|
|
|
|
VOID
|
|
WriteConvRegionToScreen(
|
|
IN PSCREEN_INFORMATION ScreenInfo,
|
|
IN PCONVERSIONAREA_INFORMATION ConvAreaInfo,
|
|
IN PSMALL_RECT ClippedRegion
|
|
);
|
|
|
|
BOOL
|
|
ConsoleImeBottomLineUse(
|
|
IN PSCREEN_INFORMATION ScreenInfo,
|
|
IN SHORT ScrollOffset
|
|
);
|
|
|
|
VOID
|
|
ConsoleImeBottomLineInUse(
|
|
IN PSCREEN_INFORMATION ScreenInfo
|
|
);
|
|
|
|
|
|
NTSTATUS
|
|
CreateConvAreaUndetermine(
|
|
PCONSOLE_INFORMATION Console
|
|
);
|
|
|
|
NTSTATUS
|
|
CreateConvAreaModeSystem(
|
|
PCONSOLE_INFORMATION Console
|
|
);
|
|
|
|
NTSTATUS
|
|
WriteUndetermineChars(
|
|
PCONSOLE_INFORMATION Console,
|
|
LPWSTR lpString,
|
|
PBYTE lpAtr,
|
|
PWORD lpAtrIdx,
|
|
DWORD NumChars
|
|
);
|
|
|
|
NTSTATUS
|
|
FillUndetermineChars(
|
|
PCONSOLE_INFORMATION Console,
|
|
PCONVERSIONAREA_INFORMATION ConvAreaInfo
|
|
);
|
|
|
|
NTSTATUS
|
|
ConsoleImeCompStr(
|
|
IN PCONSOLE_INFORMATION Console,
|
|
IN LPCONIME_UICOMPMESSAGE CompStr
|
|
);
|
|
|
|
NTSTATUS
|
|
ConsoleImeResizeModeSystemView(
|
|
PCONSOLE_INFORMATION Console,
|
|
SMALL_RECT WindowRect
|
|
);
|
|
|
|
NTSTATUS
|
|
ConsoleImeResizeCompStrView(
|
|
PCONSOLE_INFORMATION Console,
|
|
SMALL_RECT WindowRect
|
|
);
|
|
|
|
NTSTATUS
|
|
ConsoleImeResizeModeSystemScreenBuffer(
|
|
PCONSOLE_INFORMATION Console,
|
|
COORD NewScreenSize
|
|
);
|
|
|
|
NTSTATUS
|
|
ConsoleImeResizeCompStrScreenBuffer(
|
|
PCONSOLE_INFORMATION Console,
|
|
COORD NewScreenSize
|
|
);
|
|
|
|
SHORT
|
|
CalcWideCharToColumn(
|
|
IN PCONSOLE_INFORMATION Console,
|
|
IN PCHAR_INFO Buffer,
|
|
IN DWORD NumberOfChars
|
|
);
|
|
|
|
|
|
|
|
|
|
LONG
|
|
ConsoleImePaint(
|
|
IN PCONSOLE_INFORMATION Console,
|
|
IN PCONVERSIONAREA_INFORMATION ConvAreaInfo
|
|
);
|
|
|
|
|
|
|
|
|
|
VOID
|
|
ConsoleImeViewInfo(
|
|
IN PCONSOLE_INFORMATION Console,
|
|
IN PCONVERSIONAREA_INFORMATION ConvAreaInfo,
|
|
IN COORD coordConView
|
|
);
|
|
|
|
VOID
|
|
ConsoleImeWindowInfo(
|
|
IN PCONSOLE_INFORMATION Console,
|
|
IN PCONVERSIONAREA_INFORMATION ConvAreaInfo,
|
|
IN SMALL_RECT rcViewCaWindow
|
|
);
|
|
|
|
NTSTATUS
|
|
ConsoleImeResizeScreenBuffer(
|
|
IN PSCREEN_INFORMATION ScreenInfo,
|
|
IN COORD NewScreenSize,
|
|
PCONVERSIONAREA_INFORMATION ConvAreaInfo
|
|
);
|
|
|
|
NTSTATUS
|
|
ConsoleImeWriteOutput(
|
|
IN PCONSOLE_INFORMATION Console,
|
|
IN PCONVERSIONAREA_INFORMATION ConvAreaInfo,
|
|
IN PCHAR_INFO Buffer,
|
|
IN SMALL_RECT CharRegion,
|
|
IN BOOL fUnicode
|
|
);
|
|
|
|
|
|
NTSTATUS
|
|
ImeControl(
|
|
IN PCONSOLE_INFORMATION Console,
|
|
IN HWND hWndConsoleIME,
|
|
IN PCOPYDATASTRUCT lParam
|
|
) ;
|
|
|
|
BOOL
|
|
InsertConverTedString(
|
|
IN PCONSOLE_INFORMATION Console,
|
|
LPWSTR lpStr
|
|
) ;
|
|
|
|
|
|
VOID
|
|
SetUndetermineAttribute(
|
|
IN PCONSOLE_INFORMATION Console
|
|
) ;
|
|
|
|
VOID
|
|
StreamWriteToScreenBufferIME(
|
|
IN PWCHAR String,
|
|
IN SHORT StringLength,
|
|
IN PSCREEN_INFORMATION ScreenInfo,
|
|
IN PCHAR StringA
|
|
) ;
|
|
|
|
|
|
//
|
|
// windows\imm\server\hotkey.c
|
|
//
|
|
DWORD
|
|
CheckImeHotKey(
|
|
UINT uVKey, // virtual key
|
|
LPARAM lParam // lparam of WM_KEYxxx message
|
|
) ;
|
|
|
|
//
|
|
// output.c (for use convarea.c\StreamWriteToScreenBufferIME() )
|
|
//
|
|
|
|
NTSTATUS
|
|
MergeAttrStrings(
|
|
IN PATTR_PAIR Source,
|
|
IN WORD SourceLength,
|
|
IN PATTR_PAIR Merge,
|
|
IN WORD MergeLength,
|
|
OUT PATTR_PAIR *Target,
|
|
OUT LPWORD TargetLength,
|
|
IN SHORT StartIndex,
|
|
IN SHORT EndIndex,
|
|
IN PROW Row,
|
|
IN PSCREEN_INFORMATION ScreenInfo
|
|
) ;
|
|
|
|
|
|
VOID
|
|
ResetTextFlags(
|
|
IN PSCREEN_INFORMATION ScreenInfo,
|
|
IN SHORT StartX,
|
|
IN SHORT StartY,
|
|
IN SHORT EndX,
|
|
IN SHORT EndY
|
|
) ;
|
|
|
|
#endif // FE_IME
|
|
|
|
#endif // _CONV_H_
|
|
|