2 * DDK version of imm.h - imm.h for IMM and IME.
4 * Copyright 2000 Hidenori Takeshima
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 #ifndef __WINE_IMMDDK_H
22 #define __WINE_IMMDDK_H
26 #define NULLIMC ((HIMC)0)
28 /* offsets for WndExtra */
30 #define IMMGWL_PRIVATE (sizeof(LONG))
32 /* INPUTCONTEXT.fdwInit */
33 #define INIT_STATUSWNDPOS 0x00000001
34 #define INIT_CONVERSION 0x00000002
35 #define INIT_SENTENCE 0x00000004
36 #define INIT_LOGFONT 0x00000008
37 #define INIT_COMPFORM 0x00000010
38 #define INIT_SOFTKBDPOS 0x00000020
40 /* IMEINFO.fdwProperty (low-order word) */
41 #define IME_PROP_END_UNLOAD 0x00000001
42 #define IME_PROP_KBD_CHAR_FIRST 0x00000002
43 #define IME_PROP_IGNORE_UPKEYS 0x00000004
44 #define IME_PROP_NEED_ALTKEY 0x00000008
45 #define IME_PROP_NO_KEYS_ON_CLOSE 0x00000010
46 /* IMEINFO.fdwProperty (high-order word) */
47 #define IME_PROP_AT_CARET 0x00010000
48 #define IME_PROP_SPECIAL_UI 0x00020000
49 #define IME_PROP_CANDLIST_START_FROM_1 0x00040000
50 #define IME_PROP_UNICODE 0x00080000
51 #define IME_PROP_COMPLETE_ON_UNSELECT 0x00100000
54 /*** IMM and IME Structures ***/
56 typedef struct tagINPUTCONTEXT
{
67 COMPOSITIONFORM cfCompForm
;
68 CANDIDATEFORM cfCandForm
[4];
77 } INPUTCONTEXT
, * LPINPUTCONTEXT
;
79 typedef struct tagCOMPOSITIONSTRING
82 DWORD dwCompReadAttrLen
;
83 DWORD dwCompReadAttrOffset
;
84 DWORD dwCompReadClauseLen
;
85 DWORD dwCompReadClauseOffset
;
86 DWORD dwCompReadStrLen
;
87 DWORD dwCompReadStrOffset
;
89 DWORD dwCompAttrOffset
;
90 DWORD dwCompClauseLen
;
91 DWORD dwCompClauseOffset
;
93 DWORD dwCompStrOffset
;
96 DWORD dwResultReadClauseLen
;
97 DWORD dwResultReadClauseOffset
;
98 DWORD dwResultReadStrLen
;
99 DWORD dwResultReadStrOffset
;
100 DWORD dwResultClauseLen
;
101 DWORD dwResultClauseOffset
;
102 DWORD dwResultStrLen
;
103 DWORD dwResultStrOffset
;
105 DWORD dwPrivateOffset
;
106 } COMPOSITIONSTRING
, * LPCOMPOSITIONSTRING
;
108 typedef struct tagCANDIDATEINFO
114 DWORD dwPrivateOffset
;
115 } CANDIDATEINFO
, * LPCANDIDATEINFO
;
117 typedef struct tagGUIDELINE
125 DWORD dwPrivateOffset
;
126 } GUIDELINE
, * LPGUIDELINE
;
130 /*** IME Management Structures ***/
132 typedef struct tagIMEINFO
134 DWORD dwPrivateDataSize
;
136 DWORD fdwConversionCaps
;
137 DWORD fdwSentenceCaps
;
141 } IMEINFO
, * LPIMEINFO
;
144 /*** IME Communication Structures ***/
146 typedef struct tagSOFTKBDDATA
150 } SOFTKBDDATA
, * LPSOFTKBDDATA
;
153 /*** IMM DDK APIs ***/
155 HWND WINAPI
ImmCreateSoftKeyboard(UINT uType
, HWND hwndOwner
, int x
, int y
);
156 BOOL WINAPI
ImmDestroySoftKeyboard(HWND hwndSoftKeyboard
);
157 BOOL WINAPI
ImmShowSoftKeyboard(HWND hwndSoftKeyboard
, int nCmdShow
);
159 LPINPUTCONTEXT WINAPI
ImmLockIMC(HIMC hIMC
);
160 BOOL WINAPI
ImmUnlockIMC(HIMC hIMC
);
161 DWORD WINAPI
ImmGetIMCLockCount(HIMC hIMC
);
163 HIMCC WINAPI
ImmCreateIMCC(DWORD dwSize
);
164 HIMCC WINAPI
ImmDestroyIMCC(HIMCC hIMCC
);
165 LPVOID WINAPI
ImmLockIMCC(HIMCC hIMCC
);
166 BOOL WINAPI
ImmUnlockIMCC(HIMCC hIMCC
);
167 DWORD WINAPI
ImmGetIMCCLockCount(HIMCC hIMCC
);
168 HIMCC WINAPI
ImmReSizeIMCC(HIMCC hIMCC
, DWORD dwSize
);
169 DWORD WINAPI
ImmGetIMCCSize(HIMCC hIMCC
);
172 #endif /* __WINE_IMMDDK_H */