/*++ BUILD Version: 0004 // Increment this if a change has global effects ;both ;both Copyright (c) Microsoft Corporation. All rights reserved. ;both ;both Module Name: ;both ;both ime.h imep.h ;internal ;both Abstract: ;both ;both Private ;internal Procedure declarations, constant definitions and macros for the IME ;both component. ;both ;both --*/ ;both #ifndef _IME_ #define _IME_ #ifndef _IMEP_ ;internal #define _IMEP_ ;internal ;internal #ifdef __cplusplus ;both extern "C" { ;both #endif /* __cplusplus */ ;both ;both #ifndef _WINDEF_ typedef unsigned int UINT; #endif // _WINDEF_ #define IME_MAXPROCESS 32 LRESULT WINAPI SendIMEMessageEx%( IN HWND, IN LPARAM); // // IMESTRUCT structure for SendIMEMessageEx // IMESTRUCT structure for SendIMEMessage(Ex) ;internal // typedef struct tagIMESTRUCT { UINT fnc; // function code WPARAM wParam; // word parameter UINT wCount; // word counter UINT dchSource; // offset to Source from top of memory object UINT dchDest; // offset to Desrination from top of memory object LPARAM lParam1; LPARAM lParam2; LPARAM lParam3; } IMESTRUCT,*PIMESTRUCT,NEAR *NPIMESTRUCT,FAR *LPIMESTRUCT; #define CP_HWND 0 #define CP_OPEN 1 #define CP_DIRECT 2 #define CP_LEVEL 3 // // Virtual Keys // #if !defined(VK_DBE_ALPHANUMERIC) #define VK_DBE_ALPHANUMERIC 0x0f0 #define VK_DBE_KATAKANA 0x0f1 #define VK_DBE_HIRAGANA 0x0f2 #define VK_DBE_SBCSCHAR 0x0f3 #define VK_DBE_DBCSCHAR 0x0f4 #define VK_DBE_ROMAN 0x0f5 #define VK_DBE_NOROMAN 0x0f6 #define VK_DBE_ENTERWORDREGISTERMODE 0x0f7 #define VK_DBE_ENTERIMECONFIGMODE 0x0f8 #define VK_DBE_FLUSHSTRING 0x0f9 #define VK_DBE_CODEINPUT 0x0fa #define VK_DBE_NOCODEINPUT 0x0fb #define VK_DBE_DETERMINESTRING 0x0fc #define VK_DBE_ENTERDLGCONVERSIONMODE 0x0fd #endif ;begin_internal #if !defined(VK_DBE_IME_WORDREGISTER) #define VK_DBE_IME_WORDREGISTER VK_DBE_ENTERWORDREGISTERMODE ;internal #define VK_DBE_IME_DIALOG VK_DBE_ENTERIMECONFIGMODE ;internal #define VK_DBE_FLUSH VK_DBE_FLUSHSTRING ;internal #endif ;end_internal #define VK_OEM_SEMICLN 0x0ba // ; ** : ;internal #define VK_OEM_EQUAL 0x0bb // = ** + ;internal #define VK_OEM_SLASH 0x0bf // / ** ? ;internal #define VK_OEM_LBRACKET 0x0db // [ ** { ;internal #define VK_OEM_BSLASH 0x0dc // \ ** | ;internal #define VK_OEM_RBRACKET 0x0dd // ] ** | ;internal #define VK_OEM_QUOTE 0x0de // ' ** " ;internal // // switch for wParam of IME_SETCONVERSIONWINDOW // switch for wParam of IME_MOVECONVERTWINDOW ;internal // #define MCW_DEFAULT 0x00 #define MCW_RECT 0x01 #define MCW_WINDOW 0x02 #define MCW_SCREEN 0x04 #define MCW_VERTICAL 0x08 #define MCW_HIDDEN 0x10 #define MCW_CMD 0x16 // command mask ;internal #define MCW_CONSOLE_IME 0x8000 ;internal // // switch for wParam of IME_SETCONVERSIONMODE // and IME_GETCONVERSIONMODE // switch for wParam of IME_SET_MODE(IME_SETCONVERSIONMODE) ;internal // and IME_GET_MODE(IME_GETCONVERSIONMODE) ;internal // #define IME_MODE_ALPHANUMERIC 0x0001 #ifdef KOREA // BeomOh - 9/29/92 #define IME_MODE_SBCSCHAR 0x0002 #else #define IME_MODE_SBCSCHAR 0x0008 #endif #define KOREA_IME_MODE_SBCSCHAR 0x0002 ;internal #define JAPAN_IME_MODE_SBCSCHAR 0x0008 ;internal #define IME_MODE_KATAKANA 0x0002 #define IME_MODE_HIRAGANA 0x0004 #define IME_MODE_HANJACONVERT 0x0004 #define IME_MODE_DBCSCHAR 0x0010 #define IME_MODE_ROMAN 0x0020 #define IME_MODE_NOROMAN 0x0040 #define IME_MODE_CODEINPUT 0x0080 #define IME_MODE_NOCODEINPUT 0x0100 // // ;internal is added by JAPAN, CWIN user should ignore it ;Internal // 0x1, 0x2, 0x4, 0x20, 0x40, 0x80, 0x100 is not for CWIN ;Internal // 0x8, 0x10, and below IME_MODE_??? will be use by CWIN ;Internal // #define IME_MODE_LHS 0x00200 ;internal #define IME_MODE_NOLHS 0x00400 ;internal #define IME_MODE_SK 0x00800 ;internal #define IME_MODE_NOSK 0x01000 ;internal #define IME_MODE_XSPACE 0x02000 ;internal #define IME_MODE_NOXSPACE 0x04000 ;internal // // IME APIs // Subfunctions for WM_CONVERTREQUEST or WM_CONVERTREQUESTEX ;internal // #define IME_GETIMECAPS 0x03 #define IME_QUERY IME_GETIMECAPS ;internal #define IME_SETOPEN 0x04 #define IME_GETOPEN 0x05 #define IME_ENABLEDOSIME 0x06 ;internal #define IME_ENABLE IME_ENABLEDOSIME ;internal #define IME_GETVERSION 0x07 #define IME_SETCONVERSIONWINDOW 0x08 #define IME_MOVEIMEWINDOW IME_SETCONVERSIONWINDOW // KOREA only #define IME_MOVECONVERTWINDOW IME_SETCONVERSIONWINDOW ;internal #define IME_SETCONVERSIONMODE 0x10 #define IME_GETCONVERSIONMODE 0x11 #define IME_GET_MODE IME_GETCONVERSIONMODE ;internal #define IME_SET_MODE 0x12 // KOREA only #define IME_SETCONVERSIONFONT 0x12 ;internal #define IME_SETFONT IME_SETCONVERSIONFONT ;internal #define IME_SENDVKEY 0x13 #define IME_SENDKEY IME_SENDVKEY ;internal #define IME_DESTROYIME 0x14 ;internal #define IME_DESTROY IME_DESTROYIME ;internal #define IME_PRIVATE 0x15 ;internal #define IME_WINDOWUPDATE 0x16 ;internal #define IME_SELECT 0x17 ;internal #define IME_ENTERWORDREGISTERMODE 0x18 #define IME_WORDREGISTER IME_ENTERWORDREGISTERMODE ;internal #define IME_SETCONVERSIONFONTEX 0x19 #define IME_DBCSNAME 0x1A ;internal #define IME_MAXKEY 0x1B ;internal #define IME_WINNLS_SK 0x1C ;internal #define IME_CODECONVERT 0x20 ;internal #define IME_SETUSRFONT 0x20 ;internal #define IME_CONVERTLIST 0x21 ;internal #define IME_QUERYUSRFONT 0x21 ;internal #define IME_INPUTKEYTOSEQUENCE 0x22 ;internal #define IME_SEQUENCETOINTERNAL 0x23 ;internal #define IME_QUERYIMEINFO 0x24 ;internal #define IME_DIALOG 0x25 ;internal #define IME_AUTOMATA 0x30 ;internal #define IME_HANJAMODE 0x31 ;internal #define IME_GETLEVEL 0x40 ;internal #define IME_SETLEVEL 0x41 ;internal #define IME_GETMNTABLE 0x42 // reserved for HWIN ;Internal //#ifdef PEN ;Internal #define IME_SETUNDETERMINESTRING 0x50 ;internal #define IME_SETCAPTURE 0x51 ;internal //#endif ;Internal #define IME_CONSOLE_GET_PROCESSID 0x80 // Win32 ;internal #define IME_CONSOLE_CREATE 0x81 // Win32 ;internal #define IME_CONSOLE_DESTROY 0x82 // Win32 ;internal #define IME_CONSOLE_SETFOCUS 0x83 // Win32 ;internal #define IME_CONSOLE_KILLFOCUS 0x84 // Win32 ;internal #define IME_CONSOLE_BUFFER_SIZE 0x85 // Win32 ;internal #define IME_CONSOLE_WINDOW_SIZE 0x86 // Win32 ;internal #define IME_CONSOLE_SET_IME_ON_WINDOW 0x87 // Win32 ;internal #define IME_CONSOLE_MODEINFO 0x88 ;internal #define IME_PRIVATEFIRST 0x0100 ;internal #define IME_PRIVATELAST 0x04FF ;internal // // IME_CODECONVERT subfunctions // #define IME_BANJAtoJUNJA 0x13 // KOREA only #define IME_JUNJAtoBANJA 0x14 // KOREA only #define IME_JOHABtoKS 0x15 // KOREA only #define IME_KStoJOHAB 0x16 // KOREA only // // IME_AUTOMATA subfunctions // #define IMEA_INIT 0x01 // KOREA only #define IMEA_NEXT 0x02 // KOREA only #define IMEA_PREV 0x03 // KOREA only // // IME_HANJAMODE subfunctions // #define IME_REQUEST_CONVERT 0x01 // KOREA only #define IME_ENABLE_CONVERT 0x02 // KOREA only // // IME_MOVEIMEWINDOW subfunctions // #define INTERIM_WINDOW 0x00 // KOREA only #define MODE_WINDOW 0x01 // KOREA only #define HANJA_WINDOW 0x02 // KOREA only // // error code // #define IME_RS_ERROR 0x01 // genetal error #define IME_RS_NOIME 0x02 // IME is not installed #define IME_RS_TOOLONG 0x05 // given string is too long #define IME_RS_ILLEGAL 0x06 // illegal charactor(s) is string #define IME_RS_NOTFOUND 0x07 // no (more) candidate #define IME_RS_NOROOM 0x0a // no disk/memory space #define IME_RS_DISKERROR 0x0e // disk I/O error #define IME_RS_CAPTURED 0x10 // IME is captured ;internal #define IME_RS_INVALID 0x11 // Win3.1/NT #define IME_RS_NEST 0x12 // called nested #define IME_RS_SYSTEMMODAL 0x13 // called when system mode // // report messge from IME to WinApps // #define WM_IME_REPORT 0x0280 // // report message parameter for WM_IME_REPORT // #define IR_STRINGSTART 0x100 #define IR_STRINGEND 0x101 #define IR_MOREROOM 0x110 ;internal #define IR_OPENCONVERT 0x120 #define IR_CHANGECONVERT 0x121 #define IR_CLOSECONVERT 0x122 #define IR_FULLCONVERT 0x123 #define IR_IMESELECT 0x130 #define IR_STRING 0x140 #define IR_IMERELEASED 0x150 ;internal #define IR_DBCSCHAR 0x160 #define IR_UNDETERMINE 0x170 #define IR_STRINGEX 0x180 // New for 3.1 #define IR_MODEINFO 0x190 //#define WM_CONVERTREQUESTEX 0x0109 #define WM_WNT_CONVERTREQUESTEX 0x0109 /* WM_CONVERTREQUESTEX: 109 for NT, 108 for OT */ #define WM_CONVERTREQUEST 0x010A #define WM_CONVERTRESULT 0x010B #define WM_INTERIM 0x010C #define WM_IMEKEYDOWN 0x290 #define WM_IMEKEYUP 0x291 #define IMEVER_31 0x0a03 ;internal // // UNDETERMINESTRING structure for IR_UNDETERMINE // typedef struct tagUNDETERMINESTRUCT { DWORD dwSize; UINT uDefIMESize; UINT uDefIMEPos; UINT uUndetTextLen; UINT uUndetTextPos; UINT uUndetAttrPos; UINT uCursorPos; UINT uDeltaStart; UINT uDetermineTextLen; UINT uDetermineTextPos; UINT uDetermineDelimPos; UINT uYomiTextLen; UINT uYomiTextPos; UINT uYomiDelimPos; } UNDETERMINESTRUCT,*PUNDETERMINESTRUCT,NEAR *NPUNDETERMINESTRUCT,FAR *LPUNDETERMINESTRUCT; typedef struct tagSTRINGEXSTRUCT { DWORD dwSize; UINT uDeterminePos; UINT uDetermineDelimPos; UINT uYomiPos; UINT uYomiDelimPos; } STRINGEXSTRUCT,NEAR *NPSTRINGEXSTRUCT,FAR *LPSTRINGEXSTRUCT; ;begin_both #ifdef __cplusplus } #endif /* __cplusplus */ ;end_both #endif /* !_IMEP_ */ ;internal #endif // _IME_