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