|
|
/*++
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_
|