1 /* DDK version of imm.h - imm.h for IMM and IME. */
3 #ifndef __WINE_IMMDDK_H
4 #define __WINE_IMMDDK_H
8 #define NULLIMC ((HIMC)0)
10 /* offsets for WndExtra */
12 #define IMMGWL_PRIVATE (sizeof(LONG))
14 /* INPUTCONTEXT.fdwInit */
15 #define INIT_STATUSWNDPOS 0x00000001
16 #define INIT_CONVERSION 0x00000002
17 #define INIT_SENTENCE 0x00000004
18 #define INIT_LOGFONT 0x00000008
19 #define INIT_COMPFORM 0x00000010
20 #define INIT_SOFTKBDPOS 0x00000020
22 /* IMEINFO.fdwProperty (low-order word) */
23 #define IME_PROP_END_UNLOAD 0x00000001
24 #define IME_PROP_KBD_CHAR_FIRST 0x00000002
25 #define IME_PROP_IGNORE_UPKEYS 0x00000004
26 #define IME_PROP_NEED_ALTKEY 0x00000008
27 #define IME_PROP_NO_KEYS_ON_CLOSE 0x00000010
28 /* IMEINFO.fdwProperty (high-order word) */
29 #define IME_PROP_AT_CARET 0x00010000
30 #define IME_PROP_SPECIAL_UI 0x00020000
31 #define IME_PROP_CANDLIST_START_FROM_1 0x00040000
32 #define IME_PROP_UNICODE 0x00080000
33 #define IME_PROP_COMPLETE_ON_UNSELECT 0x00100000
36 /*** IMM and IME Structures ***/
38 typedef struct tagINPUTCONTEXT {
49 COMPOSITIONFORM cfCompForm;
50 CANDIDATEFORM cfCandForm[4];
59 } INPUTCONTEXT, * LPINPUTCONTEXT;
61 typedef struct tagCOMPOSITIONSTRING
64 DWORD dwCompReadAttrLen;
65 DWORD dwCompReadAttrOffset;
66 DWORD dwCompReadClauseLen;
67 DWORD dwCompReadClauseOffset;
68 DWORD dwCompReadStrLen;
69 DWORD dwCompReadStrOffset;
71 DWORD dwCompAttrOffset;
72 DWORD dwCompClauseLen;
73 DWORD dwCompClauseOffset;
75 DWORD dwCompStrOffset;
78 DWORD dwResultReadClauseLen;
79 DWORD dwResultReadClauseOffset;
80 DWORD dwResultReadStrLen;
81 DWORD dwResultReadStrOffset;
82 DWORD dwResultClauseLen;
83 DWORD dwResultClauseOffset;
85 DWORD dwResultStrOffset;
87 DWORD dwPrivateOffset;
88 } COMPOSITIONSTRING, * LPCOMPOSITIONSTRING;
90 typedef struct tagCANDIDATEINFO
96 DWORD dwPrivateOffset;
97 } CANDIDATEINFO, * LPCANDIDATEINFO;
99 typedef struct tagGUIDELINE
107 DWORD dwPrivateOffset;
108 } GUIDELINE, * LPGUIDELINE;
112 /*** IME Management Structures ***/
114 typedef struct tagIMEINFO
116 DWORD dwPrivateDataSize;
118 DWORD fdwConversionCaps;
119 DWORD fdwSentenceCaps;
123 } IMEINFO, * LPIMEINFO;
126 /*** IME Communication Structures ***/
128 typedef struct tagSOFTKBDDATA
132 } SOFTKBDDATA, * LPSOFTKBDDATA;
135 /*** IMM DDK APIs ***/
137 HWND WINAPI ImmCreateSoftKeyboard(UINT uType, HWND hwndOwner, int x, int y);
138 BOOL WINAPI ImmDestroySoftKeyboard(HWND hwndSoftKeyboard);
139 BOOL WINAPI ImmShowSoftKeyboard(HWND hwndSoftKeyboard, int nCmdShow);
141 LPINPUTCONTEXT WINAPI ImmLockIMC(HIMC hIMC);
142 BOOL WINAPI ImmUnlockIMC(HIMC hIMC);
143 DWORD WINAPI ImmGetIMCLockCount(HIMC hIMC);
145 HIMCC WINAPI ImmCreateIMCC(DWORD dwSize);
146 HIMCC WINAPI ImmDestroyIMCC(HIMCC hIMCC);
147 LPVOID WINAPI ImmLockIMCC(HIMCC hIMCC);
148 BOOL WINAPI ImmUnlockIMCC(HIMCC hIMCC);
149 DWORD WINAPI ImmGetIMCCLockCount(HIMCC hIMCC);
150 HIMCC WINAPI ImmReSizeIMCC(HIMCC hIMCC, DWORD dwSize);
151 DWORD WINAPI ImmGetIMCCSize(HIMCC hIMCC);
154 #endif /* __WINE_IMMDDK_H */