summaryrefslogtreecommitdiffstats
path: root/public/sdk/inc/ime.h
diff options
context:
space:
mode:
Diffstat (limited to 'public/sdk/inc/ime.h')
-rw-r--r--public/sdk/inc/ime.h288
1 files changed, 288 insertions, 0 deletions
diff --git a/public/sdk/inc/ime.h b/public/sdk/inc/ime.h
new file mode 100644
index 000000000..801983f1e
--- /dev/null
+++ b/public/sdk/inc/ime.h
@@ -0,0 +1,288 @@
+/*++ BUILD Version: 0003 // Increment this if a change has global effects
+
+Copyright (c) 1985-1996, Microsoft Corporation
+
+Module Name:
+
+ ime.h
+
+Abstract:
+
+ Procedure declarations, constant definitions and macros for the IME
+ component.
+
+--*/
+
+#ifndef _IME_
+#define _IME_
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+#ifndef _WINDEF_
+typedef unsigned int UINT;
+#endif // _WINDEF_
+
+#define IME_MAXPROCESS 32
+
+LRESULT WINAPI SendIMEMessageExA(HWND, LPARAM);
+LRESULT WINAPI SendIMEMessageExW(HWND, LPARAM);
+#ifdef UNICODE
+#define SendIMEMessageEx SendIMEMessageExW
+#else
+#define SendIMEMessageEx SendIMEMessageExA
+#endif // !UNICODE
+
+//
+// IMESTRUCT structure for SendIMEMessageEx
+//
+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;
+
+
+
+#ifdef KOREA // BeomOh - 10/05/92
+#define CP_HWND 0
+#define CP_OPEN 1
+#define CP_DIRECT 2
+#define CP_LEVEL 3
+
+#define lpSource(lpks) (LPSTR)((LPSTR)lpks+lpks->dchSource)
+#define lpDest(lpks) (LPSTR)((LPSTR)lpks+lpks->dchDest)
+#endif // KOREA
+
+//
+// Virtual Keys
+//
+#ifdef KOREA // BeomOh - 9/29/92
+#define VK_FINAL 0x18 /* dummy VK to make final on mouse down */
+#define VK_CONVERT 0x1C
+#define VK_NONCONVERT 0x1D
+#define VK_ACCEPT 0x1E
+#define VK_MODECHANGE 0x1F
+#else // KOREA
+#define VK_KANA 0x15
+#define VK_KANJI 0x19
+
+#define VK_CONVERT 0x1C
+#define VK_NONCONVERT 0x1D
+#define VK_ACCEPT 0x1E
+#define VK_MODECHANGE 0x1F
+
+#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 // KOREA
+
+
+//
+// switch for wParam of IME_SETCONVERSIONWINDOW
+//
+#define MCW_DEFAULT 0x00
+#define MCW_RECT 0x01
+#define MCW_WINDOW 0x02
+#define MCW_SCREEN 0x04
+#define MCW_VERTICAL 0x08
+#define MCW_HIDDEN 0x10
+
+//
+// switch for wParam of IME_SETCONVERSIONMODE
+// and IME_GETCONVERSIONMODE
+//
+#define IME_MODE_ALPHANUMERIC 0x0001
+#ifdef KOREA // BeomOh - 9/29/92
+#define IME_MODE_SBCSCHAR 0x0002
+#define IME_MODE_HANJACONVERT 0x0004
+#else // !KOREA
+#define IME_MODE_KATAKANA 0x0002
+#define IME_MODE_HIRAGANA 0x0004
+#define IME_MODE_SBCSCHAR 0x0008
+#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
+//
+//
+#endif // !KOREA
+
+//
+// IME APIs
+//
+#define IME_GETIMECAPS 0x03
+#define IME_SETOPEN 0x04
+#define IME_GETOPEN 0x05
+#define IME_GETVERSION 0x07
+#define IME_SETCONVERSIONWINDOW 0x08
+#ifdef KOREA
+#define IME_MOVEIMEWINDOW IME_SETCONVERSIONWINDOW
+#else
+#endif
+#define IME_SETCONVERSIONMODE 0x10
+#ifdef KOREA // BeomOh - 10/23/92
+#define IME_SET_MODE 0x12
+#else
+#endif
+#define IME_GETCONVERSIONMODE 0x11
+#define IME_SENDVKEY 0x13
+#define IME_ENTERWORDREGISTERMODE 0x18
+#define IME_SETCONVERSIONFONTEX 0x19
+#ifdef KOREA // 01/12/93 KDLee MSCH
+#endif
+
+
+#ifdef KOREA // BeomOh - 9/29/92
+//
+// IME_CODECONVERT subfunctions
+//
+#define IME_BANJAtoJUNJA 0x13
+#define IME_JUNJAtoBANJA 0x14
+#define IME_JOHABtoKS 0x15
+#define IME_KStoJOHAB 0x16
+
+//
+// IME_AUTOMATA subfunctions
+//
+#define IMEA_INIT 0x01
+#define IMEA_NEXT 0x02
+#define IMEA_PREV 0x03
+
+//
+// IME_HANJAMODE subfunctions
+//
+#define IME_REQUEST_CONVERT 0x01
+#define IME_ENABLE_CONVERT 0x02
+
+//
+// IME_MOVEIMEWINDOW subfunctions
+//
+#define INTERIM_WINDOW 0x00
+#define MODE_WINDOW 0x01
+#define HANJA_WINDOW 0x02
+#endif // KOREA
+
+//
+//
+
+
+
+
+
+
+
+// CTRL_MODIFY is "or" all modify bits, but now only one
+
+//
+// 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_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_OPENCONVERT 0x120
+#define IR_CHANGECONVERT 0x121
+#define IR_CLOSECONVERT 0x122
+#define IR_FULLCONVERT 0x123
+#define IR_IMESELECT 0x130
+#define IR_STRING 0x140
+#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
+
+
+
+
+//
+// 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;
+
+
+#if 0
+#define IMEMODE_CCHMAXTEXT 256
+typedef struct tagIMEMODEINFO {
+ DWORD cchSystemTextLength;
+ CHAR_INFO aciSystemText[IMEMODE_CCHMAXTEXT];
+ DWORD cchModeTextLength;
+ CHAR_INFO aciModeText[IMEMODE_CCHMAXTEXT];
+} IMEMODEINFO,*PIMEMODEINFO,*LPIMEMODEINFO;
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif // _IME_