Differences From Artifact [6732090e27c6d34a]:
- File
src/win32/imm.d
- 2011-02-23 12:53:16 - part of checkin [c2b7a98c21] on branch trunk - Initial import (user: kinaba) [annotate]
To Artifact [298859cd23308dab]:
- File
src/win32/imm.d
- 2015-04-21 10:46:55 - part of checkin [4e2933c620] on branch trunk - Rebased to the latest verson dmd 2.067. Not yet verified the outcome. (user: kinaba) [annotate]
1 +/***********************************************************************\
2 +* imm.d *
3 +* *
4 +* Windows API header module *
5 +* *
6 +* Translated from MinGW Windows headers *
7 +* *
8 +* Placed into public domain *
9 +\***********************************************************************/
1 10 module win32.imm;
2 -
3 -// Translated from Microsoft Platform SDK August 2001 Edition
4 -// by Y.Tomino
5 -
6 -import win32.windef;
7 -import win32.winuser;
8 -
9 -// #ifndef _IMM_
10 -// #define _IMM_
11 -
12 -// #ifdef __cplusplus
13 -// extern "C" {
14 -// #endif
15 -
16 -// #ifndef _IMM_SDK_DEFINED_
17 -// #define _IMM_SDK_DEFINED_
18 -
19 -// #if (WINVER >= 0x040A)
20 -alias void* HIMC;
21 -alias void* HIMCC;
22 -// #else
23 -// ...
24 -// #endif /* WINVER >= 0x040A */
25 -
11 +pragma(lib, "imm32.lib");
12 +
13 +import win32.windef, win32.wingdi;
14 +import win32.winuser; // for the MFS_xxx enums.
15 +private import win32.w32api;
16 +
17 +const WM_CONVERTREQUESTEX = 0x108;
18 +const WM_IME_STARTCOMPOSITION = 0x10D;
19 +const WM_IME_ENDCOMPOSITION = 0x10E;
20 +const WM_IME_COMPOSITION = 0x10F;
21 +const WM_IME_KEYLAST = 0x10F;
22 +const WM_IME_SETCONTEXT = 0x281;
23 +const WM_IME_NOTIFY = 0x282;
24 +const WM_IME_CONTROL = 0x283;
25 +const WM_IME_COMPOSITIONFULL = 0x284;
26 +const WM_IME_SELECT = 0x285;
27 +const WM_IME_CHAR = 0x286;
28 +static if (WINVER >= 0x500) {
29 + const WM_IME_REQUEST = 0x288;
30 +}
31 +const WM_IME_KEYDOWN = 0x290;
32 +const WM_IME_KEYUP = 0x291;
33 +
34 +
35 +const IMC_GETCANDIDATEPOS=7;
36 +const IMC_SETCANDIDATEPOS=8;
37 +const IMC_GETCOMPOSITIONFONT=9;
38 +const IMC_SETCOMPOSITIONFONT=10;
39 +const IMC_GETCOMPOSITIONWINDOW=11;
40 +const IMC_SETCOMPOSITIONWINDOW=12;
41 +const IMC_GETSTATUSWINDOWPOS=15;
42 +const IMC_SETSTATUSWINDOWPOS=16;
43 +const IMC_CLOSESTATUSWINDOW=0x21;
44 +const IMC_OPENSTATUSWINDOW=0x22;
45 +const IMN_CLOSESTATUSWINDOW=1;
46 +const IMN_OPENSTATUSWINDOW=2;
47 +const IMN_CHANGECANDIDATE=3;
48 +const IMN_CLOSECANDIDATE=4;
49 +const IMN_OPENCANDIDATE=5;
50 +const IMN_SETCONVERSIONMODE=6;
51 +const IMN_SETSENTENCEMODE=7;
52 +const IMN_SETOPENSTATUS=8;
53 +const IMN_SETCANDIDATEPOS=9;
54 +const IMN_SETCOMPOSITIONFONT=10;
55 +const IMN_SETCOMPOSITIONWINDOW=11;
56 +const IMN_SETSTATUSWINDOWPOS=12;
57 +const IMN_GUIDELINE=13;
58 +const IMN_PRIVATE=14;
59 +
60 +const NI_OPENCANDIDATE=16;
61 +const NI_CLOSECANDIDATE=17;
62 +const NI_SELECTCANDIDATESTR=18;
63 +const NI_CHANGECANDIDATELIST=19;
64 +const NI_FINALIZECONVERSIONRESULT=20;
65 +const NI_COMPOSITIONSTR=21;
66 +const NI_SETCANDIDATE_PAGESTART=22;
67 +const NI_SETCANDIDATE_PAGESIZE=23;
68 +const NI_IMEMENUSELECTED=24;
69 +
70 +const ISC_SHOWUICANDIDATEWINDOW=1;
71 +const ISC_SHOWUICOMPOSITIONWINDOW=0x80000000;
72 +const ISC_SHOWUIGUIDELINE=0x40000000;
73 +const ISC_SHOWUIALLCANDIDATEWINDOW=15;
74 +const ISC_SHOWUIALL=0xC000000F;
75 +
76 +const CPS_COMPLETE=1;
77 +const CPS_CONVERT=2;
78 +const CPS_REVERT=3;
79 +const CPS_CANCEL=4;
80 +
81 +const IME_CHOTKEY_IME_NONIME_TOGGLE=16;
82 +const IME_CHOTKEY_SHAPE_TOGGLE=17;
83 +const IME_CHOTKEY_SYMBOL_TOGGLE=18;
84 +const IME_JHOTKEY_CLOSE_OPEN=0x30;
85 +const IME_KHOTKEY_SHAPE_TOGGLE=0x50;
86 +const IME_KHOTKEY_HANJACONVERT=0x51;
87 +const IME_KHOTKEY_ENGLISH=0x52;
88 +const IME_THOTKEY_IME_NONIME_TOGGLE=0x70;
89 +const IME_THOTKEY_SHAPE_TOGGLE=0x71;
90 +const IME_THOTKEY_SYMBOL_TOGGLE=0x72;
91 +const IME_HOTKEY_DSWITCH_FIRST=256;
92 +const IME_HOTKEY_DSWITCH_LAST=0x11F;
93 +const IME_ITHOTKEY_RESEND_RESULTSTR=512;
94 +const IME_ITHOTKEY_PREVIOUS_COMPOSITION=513;
95 +const IME_ITHOTKEY_UISTYLE_TOGGLE=514;
96 +
97 +const GCS_COMPREADSTR=1;
98 +const GCS_COMPREADATTR=2;
99 +const GCS_COMPREADCLAUSE=4;
100 +const GCS_COMPSTR=8;
101 +const GCS_COMPATTR=16;
102 +const GCS_COMPCLAUSE=32;
103 +const GCS_CURSORPOS=128;
104 +const GCS_DELTASTART=256;
105 +const GCS_RESULTREADSTR=512;
106 +const GCS_RESULTREADCLAUSE=1024;
107 +const GCS_RESULTSTR=2048;
108 +const GCS_RESULTCLAUSE=4096;
109 +
110 +const CS_INSERTCHAR=0x2000;
111 +const CS_NOMOVECARET=0x4000;
112 +
113 +const IMEVER_0310=0x3000A;
114 +const IMEVER_0400=0x40000;
115 +
116 +const IME_PROP_AT_CARET=0x10000;
117 +const IME_PROP_SPECIAL_UI=0x20000;
118 +const IME_PROP_CANDLIST_START_FROM_1=0x40000;
119 +const IME_PROP_UNICODE=0x80000;
120 +
121 +const UI_CAP_2700=1;
122 +const UI_CAP_ROT90=2;
123 +const UI_CAP_ROTANY=4;
124 +
125 +const SCS_CAP_COMPSTR=1;
126 +const SCS_CAP_MAKEREAD=2;
127 +const SELECT_CAP_CONVERSION=1;
128 +const SELECT_CAP_SENTENCE=2;
129 +const GGL_LEVEL=1;
130 +const GGL_INDEX=2;
131 +const GGL_STRING=3;
132 +const GGL_PRIVATE=4;
133 +const GL_LEVEL_NOGUIDELINE=0;
134 +const GL_LEVEL_FATAL=1;
135 +const GL_LEVEL_ERROR=2;
136 +const GL_LEVEL_WARNING=3;
137 +const GL_LEVEL_INFORMATION=4;
138 +const GL_ID_UNKNOWN=0;
139 +const GL_ID_NOMODULE=1;
140 +const GL_ID_NODICTIONARY=16;
141 +const GL_ID_CANNOTSAVE=17;
142 +const GL_ID_NOCONVERT=32;
143 +const GL_ID_TYPINGERROR=33;
144 +const GL_ID_TOOMANYSTROKE=34;
145 +const GL_ID_READINGCONFLICT=35;
146 +const GL_ID_INPUTREADING=36;
147 +const GL_ID_INPUTRADICAL=37;
148 +const GL_ID_INPUTCODE=38;
149 +const GL_ID_INPUTSYMBOL=39;
150 +const GL_ID_CHOOSECANDIDATE=40;
151 +const GL_ID_REVERSECONVERSION=41;
152 +const GL_ID_PRIVATE_FIRST=0x8000;
153 +const GL_ID_PRIVATE_LAST=0xFFFF;
154 +
155 +const DWORD IGP_GETIMEVERSION = -4;
156 +const IGP_PROPERTY=4;
157 +const IGP_CONVERSION=8;
158 +const IGP_SENTENCE=12;
159 +const IGP_UI=16;
160 +const IGP_SETCOMPSTR=0x14;
161 +const IGP_SELECT=0x18;
162 +
163 +const SCS_SETSTR = GCS_COMPREADSTR|GCS_COMPSTR;
164 +const SCS_CHANGEATTR = GCS_COMPREADATTR|GCS_COMPATTR;
165 +const SCS_CHANGECLAUSE = GCS_COMPREADCLAUSE|GCS_COMPCLAUSE;
166 +
167 +const ATTR_INPUT=0;
168 +const ATTR_TARGET_CONVERTED=1;
169 +const ATTR_CONVERTED=2;
170 +const ATTR_TARGET_NOTCONVERTED=3;
171 +const ATTR_INPUT_ERROR=4;
172 +const ATTR_FIXEDCONVERTED=5;
173 +const CFS_DEFAULT=0;
174 +const CFS_RECT=1;
175 +const CFS_POINT=2;
176 +const CFS_SCREEN=4;
177 +const CFS_FORCE_POSITION=32;
178 +const CFS_CANDIDATEPOS=64;
179 +const CFS_EXCLUDE=128;
180 +const GCL_CONVERSION=1;
181 +const GCL_REVERSECONVERSION=2;
182 +const GCL_REVERSE_LENGTH=3;
183 +
184 +const IME_CMODE_ALPHANUMERIC=0;
185 +const IME_CMODE_NATIVE=1;
186 +const IME_CMODE_CHINESE=IME_CMODE_NATIVE;
187 +const IME_CMODE_HANGEUL=IME_CMODE_NATIVE;
188 +const IME_CMODE_HANGUL=IME_CMODE_NATIVE;
189 +const IME_CMODE_JAPANESE=IME_CMODE_NATIVE;
190 +const IME_CMODE_KATAKANA=2;
191 +const IME_CMODE_LANGUAGE=3;
192 +const IME_CMODE_FULLSHAPE=8;
193 +const IME_CMODE_ROMAN=16;
194 +const IME_CMODE_CHARCODE=32;
195 +const IME_CMODE_HANJACONVERT=64;
196 +const IME_CMODE_SOFTKBD=128;
197 +const IME_CMODE_NOCONVERSION=256;
198 +const IME_CMODE_EUDC=512;
199 +const IME_CMODE_SYMBOL=1024;
200 +const IME_CMODE_FIXED=2048;
201 +const IME_SMODE_NONE=0;
202 +const IME_SMODE_PLAURALCLAUSE=1;
203 +const IME_SMODE_SINGLECONVERT=2;
204 +const IME_SMODE_AUTOMATIC=4;
205 +const IME_SMODE_PHRASEPREDICT=8;
206 +const IME_CAND_UNKNOWN=0;
207 +const IME_CAND_READ=1;
208 +const IME_CAND_CODE=2;
209 +const IME_CAND_MEANING=3;
210 +const IME_CAND_RADICAL=4;
211 +const IME_CAND_STROKE=5;
212 +const IMM_ERROR_NODATA=(-1);
213 +const IMM_ERROR_GENERAL=(-2);
214 +const IME_CONFIG_GENERAL=1;
215 +const IME_CONFIG_REGISTERWORD=2;
216 +const IME_CONFIG_SELECTDICTIONARY=3;
217 +const IME_ESC_QUERY_SUPPORT=3;
218 +const IME_ESC_RESERVED_FIRST=4;
219 +const IME_ESC_RESERVED_LAST=0x7FF;
220 +const IME_ESC_PRIVATE_FIRST=0x800;
221 +const IME_ESC_PRIVATE_LAST=0xFFF;
222 +const IME_ESC_SEQUENCE_TO_INTERNAL=0x1001;
223 +const IME_ESC_GET_EUDC_DICTIONARY=0x1003;
224 +const IME_ESC_SET_EUDC_DICTIONARY=0x1004;
225 +const IME_ESC_MAX_KEY=0x1005;
226 +const IME_ESC_IME_NAME=0x1006;
227 +const IME_ESC_SYNC_HOTKEY=0x1007;
228 +const IME_ESC_HANJA_MODE=0x1008;
229 +const IME_ESC_AUTOMATA=0x1009;
230 +const IME_REGWORD_STYLE_EUDC=1;
231 +const IME_REGWORD_STYLE_USER_FIRST=0x80000000;
232 +const IME_REGWORD_STYLE_USER_LAST=0xFFFFFFFF;
233 +
234 +const SOFTKEYBOARD_TYPE_T1=1;
235 +const SOFTKEYBOARD_TYPE_C1=2;
236 +
237 +const IMEMENUITEM_STRING_SIZE=80;
238 +
239 +const MOD_ALT=1;
240 +const MOD_CONTROL=2;
241 +const MOD_SHIFT=4;
242 +const MOD_WIN=8;
243 +const MOD_IGNORE_ALL_MODIFIER=1024;
244 +const MOD_ON_KEYUP=2048;
245 +const MOD_RIGHT=16384;
246 +const MOD_LEFT=32768;
247 +
248 +const IACE_CHILDREN=1;
249 +const IACE_DEFAULT=16;
250 +const IACE_IGNORENOCONTEXT=32;
251 +
252 +const IGIMIF_RIGHTMENU=1;
253 +
254 +const IGIMII_CMODE=1;
255 +const IGIMII_SMODE=2;
256 +const IGIMII_CONFIGURE=4;
257 +const IGIMII_TOOLS=8;
258 +const IGIMII_HELP=16;
259 +const IGIMII_OTHER=32;
260 +const IGIMII_INPUTTOOLS=64;
261 +
262 +const IMFT_RADIOCHECK=1;
263 +const IMFT_SEPARATOR=2;
264 +const IMFT_SUBMENU=4;
265 +
266 +const IMFS_GRAYED=MFS_GRAYED;
267 +const IMFS_DISABLED=MFS_DISABLED;
268 +const IMFS_CHECKED=MFS_CHECKED;
269 +const IMFS_HILITE=MFS_HILITE;
270 +const IMFS_ENABLED=MFS_ENABLED;
271 +const IMFS_UNCHECKED=MFS_UNCHECKED;
272 +const IMFS_UNHILITE=MFS_UNHILITE;
273 +const IMFS_DEFAULT=MFS_DEFAULT;
274 +
275 +const STYLE_DESCRIPTION_SIZE=32;
276 +
277 +alias DWORD HIMC;
278 +alias DWORD HIMCC;
26 279 alias HKL* LPHKL;
27 -alias UINT* LPUINT;
28 280
29 -struct tagCOMPOSITIONFORM {
30 - DWORD dwStyle;
31 - POINT ptCurrentPos;
32 - RECT rcArea;
281 +struct COMPOSITIONFORM{
282 + DWORD dwStyle;
283 + POINT ptCurrentPos;
284 + RECT rcArea;
285 +}
286 +alias COMPOSITIONFORM* PCOMPOSITIONFORM, LPCOMPOSITIONFORM;
287 +
288 +struct CANDIDATEFORM{
289 + DWORD dwIndex;
290 + DWORD dwStyle;
291 + POINT ptCurrentPos;
292 + RECT rcArea;
293 +}
294 +alias CANDIDATEFORM* PCANDIDATEFORM, LPCANDIDATEFORM;
295 +
296 +struct CANDIDATELIST{
297 + DWORD dwSize;
298 + DWORD dwStyle;
299 + DWORD dwCount;
300 + DWORD dwSelection;
301 + DWORD dwPageStart;
302 + DWORD dwPageSize;
303 + DWORD dwOffset[1];
304 +}
305 +alias CANDIDATELIST* PCANDIDATELIST, LPCANDIDATELIST;
306 +
307 +struct REGISTERWORDA{
308 + LPSTR lpReading;
309 + LPSTR lpWord;
310 +}
311 +alias REGISTERWORDA* PREGISTERWORDA, LPREGISTERWORDA;
312 +
313 +struct REGISTERWORDW{
314 + LPWSTR lpReading;
315 + LPWSTR lpWord;
33 316 }
34 -alias tagCOMPOSITIONFORM COMPOSITIONFORM;
35 -alias tagCOMPOSITIONFORM* PCOMPOSITIONFORM;
36 -alias tagCOMPOSITIONFORM* NPCOMPOSITIONFORM;
37 -alias tagCOMPOSITIONFORM* LPCOMPOSITIONFORM;
317 +alias REGISTERWORDW* PREGISTERWORDW, LPREGISTERWORDW;
38 318
39 -struct tagCANDIDATEFORM {
40 - DWORD dwIndex;
41 - DWORD dwStyle;
42 - POINT ptCurrentPos;
43 - RECT rcArea;
319 +struct STYLEBUFA{
320 + DWORD dwStyle;
321 + CHAR szDescription[STYLE_DESCRIPTION_SIZE];
44 322 }
45 -alias tagCANDIDATEFORM CANDIDATEFORM;
46 -alias tagCANDIDATEFORM* PCANDIDATEFORM;
47 -alias tagCANDIDATEFORM* NPCANDIDATEFORM;
48 -alias tagCANDIDATEFORM* LPCANDIDATEFORM;
323 +alias STYLEBUFA* PSTYLEBUFA, LPSTYLEBUFA;
49 324
50 -struct tagCANDIDATELIST {
51 - DWORD dwSize;
52 - DWORD dwStyle;
53 - DWORD dwCount;
54 - DWORD dwSelection;
55 - DWORD dwPageStart;
56 - DWORD dwPageSize;
57 - DWORD dwOffset[1];
325 +struct STYLEBUFW{
326 + DWORD dwStyle;
327 + WCHAR szDescription[STYLE_DESCRIPTION_SIZE];
58 328 }
59 -alias tagCANDIDATELIST CANDIDATELIST;
60 -alias tagCANDIDATELIST* PCANDIDATELIST;
61 -alias tagCANDIDATELIST* NPCANDIDATELIST;
62 -alias tagCANDIDATELIST* LPCANDIDATELIST;
329 +alias STYLEBUFW* PSTYLEBUFW, LPSTYLEBUFW;
63 330
64 -struct tagREGISTERWORDA {
65 - LPSTR lpReading;
66 - LPSTR lpWord;
331 +struct IMEMENUITEMINFOA{
332 + UINT cbSize = this.sizeof;
333 + UINT fType;
334 + UINT fState;
335 + UINT wID;
336 + HBITMAP hbmpChecked;
337 + HBITMAP hbmpUnchecked;
338 + DWORD dwItemData;
339 + CHAR szString[IMEMENUITEM_STRING_SIZE];
340 + HBITMAP hbmpItem;
67 341 }
68 -alias tagREGISTERWORDA REGISTERWORDA;
69 -alias tagREGISTERWORDA* PREGISTERWORDA;
70 -alias tagREGISTERWORDA* NPREGISTERWORDA;
71 -alias tagREGISTERWORDA* LPREGISTERWORDA;
72 -
73 -struct tagREGISTERWORDW {
74 - LPWSTR lpReading;
75 - LPWSTR lpWord;
76 -}
77 -alias tagREGISTERWORDW REGISTERWORDW;
78 -alias tagREGISTERWORDW* PREGISTERWORDW;
79 -alias tagREGISTERWORDW* NPREGISTERWORDW;
80 -alias tagREGISTERWORDW* LPREGISTERWORDW;
81 -
82 -// #ifdef UNICODE
83 -alias REGISTERWORDW REGISTERWORD;
84 -alias PREGISTERWORDW PREGISTERWORD;
85 -alias NPREGISTERWORDW NPREGISTERWORD;
86 -alias LPREGISTERWORDW LPREGISTERWORD;
87 -// #else
88 -// ...
89 -// #endif // UNICODE
342 +alias IMEMENUITEMINFOA* PIMEMENUITEMINFOA, LPIMEMENUITEMINFOA;
90 343
91 -// #if (WINVER >= 0x040A)
92 -
93 -struct tagRECONVERTSTRING {
94 - DWORD dwSize;
95 - DWORD dwVersion;
96 - DWORD dwStrLen;
97 - DWORD dwStrOffset;
98 - DWORD dwCompStrLen;
99 - DWORD dwCompStrOffset;
100 - DWORD dwTargetStrLen;
101 - DWORD dwTargetStrOffset;
102 -}
103 -alias tagRECONVERTSTRING RECONVERTSTRING;
104 -alias tagRECONVERTSTRING* PRECONVERTSTRING;
105 -alias tagRECONVERTSTRING* NPRECONVERTSTRING;
106 -alias tagRECONVERTSTRING* LPRECONVERTSTRING;
107 -
108 -// #endif /* WINVER >= 0x040A */
109 -
110 -enum : uint { STYLE_DESCRIPTION_SIZE = 32 }
111 -
112 -struct tagSTYLEBUFA {
113 - DWORD dwStyle;
114 - CHAR szDescription[STYLE_DESCRIPTION_SIZE];
344 +struct IMEMENUITEMINFOW{
345 + UINT cbSize = this.sizeof;
346 + UINT fType;
347 + UINT fState;
348 + UINT wID;
349 + HBITMAP hbmpChecked;
350 + HBITMAP hbmpUnchecked;
351 + DWORD dwItemData;
352 + WCHAR szString[IMEMENUITEM_STRING_SIZE];
353 + HBITMAP hbmpItem;
115 354 }
116 -alias tagSTYLEBUFA STYLEBUFA;
117 -alias tagSTYLEBUFA* PSTYLEBUFA;
118 -alias tagSTYLEBUFA* NPSTYLEBUFA;
119 -alias tagSTYLEBUFA* LPSTYLEBUFA;
355 +alias IMEMENUITEMINFOW* PIMEMENUITEMINFOW, LPIMEMENUITEMINFOW;
120 356
121 -struct tagSTYLEBUFW {
122 - DWORD dwStyle;
123 - WCHAR szDescription[STYLE_DESCRIPTION_SIZE];
124 -}
125 -alias tagSTYLEBUFW STYLEBUFW;
126 -alias tagSTYLEBUFW* PSTYLEBUFW;
127 -alias tagSTYLEBUFW* NPSTYLEBUFW;
128 -alias tagSTYLEBUFW* LPSTYLEBUFW;
129 -
130 -// #ifdef UNICODE
131 -alias STYLEBUFW STYLEBUF;
132 -alias PSTYLEBUFW PSTYLEBUF;
133 -alias NPSTYLEBUFW NPSTYLEBUF;
134 -alias LPSTYLEBUFW LPSTYLEBUF;
135 -// #else
136 -// ...
137 -// #endif // UNICODE
357 +alias int function (LPCSTR, DWORD, LPCSTR, LPVOID) REGISTERWORDENUMPROCA;
358 +alias int function (LPCWSTR, DWORD, LPCWSTR, LPVOID) REGISTERWORDENUMPROCW;
138 359
139 -// #if (WINVER >= 0x040A)
140 -
141 -enum : uint { IMEMENUITEM_STRING_SIZE = 80 }
142 -
143 -struct tagIMEMENUITEMINFOA {
144 - UINT cbSize;
145 - UINT fType;
146 - UINT fState;
147 - UINT wID;
148 - HBITMAP hbmpChecked;
149 - HBITMAP hbmpUnchecked;
150 - DWORD dwItemData;
151 - CHAR szString[IMEMENUITEM_STRING_SIZE];
152 - HBITMAP hbmpItem;
153 -}
154 -alias tagIMEMENUITEMINFOA IMEMENUITEMINFOA;
155 -alias tagIMEMENUITEMINFOA* PIMEMENUITEMINFOA;
156 -alias tagIMEMENUITEMINFOA* NPIMEMENUITEMINFOA;
157 -alias tagIMEMENUITEMINFOA* LPIMEMENUITEMINFOA;
158 -
159 -struct tagIMEMENUITEMINFOW {
160 - UINT cbSize;
161 - UINT fType;
162 - UINT fState;
163 - UINT wID;
164 - HBITMAP hbmpChecked;
165 - HBITMAP hbmpUnchecked;
166 - DWORD dwItemData;
167 - WCHAR szString[IMEMENUITEM_STRING_SIZE];
168 - HBITMAP hbmpItem;
169 -}
170 -alias tagIMEMENUITEMINFOW IMEMENUITEMINFOW;
171 -alias tagIMEMENUITEMINFOW* PIMEMENUITEMINFOW;
172 -alias tagIMEMENUITEMINFOW* NPIMEMENUITEMINFOW;
173 -alias tagIMEMENUITEMINFOW* LPIMEMENUITEMINFOW;
174 -
175 -// #ifdef UNICODE
176 -alias IMEMENUITEMINFOW IMEMENUITEMINFO;
177 -alias PIMEMENUITEMINFOW PIMEMENUITEMINFO;
178 -alias NPIMEMENUITEMINFOW NPIMEMENUITEMINFO;
179 -alias LPIMEMENUITEMINFOW LPIMEMENUITEMINFO;
180 -// #else
181 -// ...
182 -// #endif // UNICODE
183 -
184 -struct tagIMECHARPOSITION {
185 - DWORD dwSize;
186 - DWORD dwCharPos;
187 - POINT pt;
188 - UINT cLineHeight;
189 - RECT rcDocument;
360 +version(Unicode) {
361 + alias REGISTERWORDENUMPROCW REGISTERWORDENUMPROC;
362 + alias REGISTERWORDW REGISTERWORD;
363 + alias IMEMENUITEMINFOW IMEMENUITEMINFO;
364 + alias STYLEBUFW STYLEBUF;
365 +} else {
366 + alias REGISTERWORDENUMPROCA REGISTERWORDENUMPROC;
367 + alias REGISTERWORDA REGISTERWORD;
368 + alias IMEMENUITEMINFOA IMEMENUITEMINFO;
369 + alias STYLEBUFA STYLEBUF;
190 370 }
191 -alias tagIMECHARPOSITION IMECHARPOSITION;
192 -alias tagIMECHARPOSITION* PIMECHARPOSITION;
193 -alias tagIMECHARPOSITION* NPIMECHARPOSITION;
194 -alias tagIMECHARPOSITION* LPIMECHARPOSITION;
195 371
196 -extern(Windows) alias BOOL function(HIMC, LPARAM) IMCENUMPROC;
372 +alias STYLEBUF* PSTYLEBUF, LPSTYLEBUF;
373 +alias REGISTERWORD* PREGISTERWORD, LPREGISTERWORD;
374 +alias IMEMENUITEMINFO* PIMEMENUITEMINFO, LPIMEMENUITEMINFO;
197 375
198 -// #endif /* WINVER >= 0x040A */
199 376
200 -extern(Windows) export HKL ImmInstallIMEA( LPCSTR lpszIMEFileName, LPCSTR lpszLayoutText);
201 -extern(Windows) export HKL ImmInstallIMEW( LPCWSTR lpszIMEFileName, LPCWSTR lpszLayoutText);
202 -// #ifdef UNICODE
203 -alias ImmInstallIMEW ImmInstallIME;
204 -// #else
205 -// #...
206 -// #endif // !UNICODE
207 -
208 -extern(Windows) export HWND ImmGetDefaultIMEWnd( HWND);
209 -
210 -extern(Windows) export UINT ImmGetDescriptionA( HKL, LPSTR, UINT uBufLen);
211 -extern(Windows) export UINT ImmGetDescriptionW( HKL, LPWSTR, UINT uBufLen);
212 -// #ifdef UNICODE
213 -alias ImmGetDescriptionW ImmGetDescription;
214 -// #else
215 -// #...
216 -// #endif // !UNICODE
377 +extern (Windows):
378 +HKL ImmInstallIMEA(LPCSTR, LPCSTR);
379 +HKL ImmInstallIMEW(LPCWSTR, LPCWSTR);
380 +HWND ImmGetDefaultIMEWnd(HWND);
381 +UINT ImmGetDescriptionA(HKL, LPSTR, UINT);
382 +UINT ImmGetDescriptionW(HKL, LPWSTR, UINT);
383 +UINT ImmGetIMEFileNameA(HKL, LPSTR, UINT);
384 +UINT ImmGetIMEFileNameW(HKL, LPWSTR, UINT);
385 +DWORD ImmGetProperty(HKL, DWORD);
386 +BOOL ImmIsIME(HKL);
387 +BOOL ImmSimulateHotKey(HWND, DWORD);
388 +HIMC ImmCreateContext();
389 +BOOL ImmDestroyContext(HIMC);
390 +HIMC ImmGetContext(HWND);
391 +BOOL ImmReleaseContext(HWND, HIMC);
392 +HIMC ImmAssociateContext(HWND, HIMC);
393 +LONG ImmGetCompositionStringA(HIMC, DWORD, PVOID, DWORD);
394 +LONG ImmGetCompositionStringW(HIMC, DWORD, PVOID, DWORD);
395 +BOOL ImmSetCompositionStringA(HIMC, DWORD, PCVOID, DWORD, PCVOID, DWORD);
396 +BOOL ImmSetCompositionStringW(HIMC, DWORD, PCVOID, DWORD, PCVOID, DWORD);
397 +DWORD ImmGetCandidateListCountA(HIMC, PDWORD);
398 +DWORD ImmGetCandidateListCountW(HIMC, PDWORD);
399 +DWORD ImmGetCandidateListA(HIMC, DWORD, PCANDIDATELIST, DWORD);
400 +DWORD ImmGetCandidateListW(HIMC, DWORD, PCANDIDATELIST, DWORD);
401 +DWORD ImmGetGuideLineA(HIMC, DWORD, LPSTR, DWORD);
402 +DWORD ImmGetGuideLineW(HIMC, DWORD, LPWSTR, DWORD);
403 +BOOL ImmGetConversionStatus(HIMC, LPDWORD, PDWORD);
404 +BOOL ImmSetConversionStatus(HIMC, DWORD, DWORD);
405 +BOOL ImmGetOpenStatus(HIMC);
406 +BOOL ImmSetOpenStatus(HIMC, BOOL);
217 407
218 -extern(Windows) export UINT ImmGetIMEFileNameA( HKL, LPSTR, UINT uBufLen);
219 -extern(Windows) export UINT ImmGetIMEFileNameW( HKL, LPWSTR, UINT uBufLen);
220 -// #ifdef UNICODE
221 -alias ImmGetIMEFileNameW ImmGetIMEFileName;
222 -// #else
223 -// #...
224 -// #endif // !UNICODE
225 -
226 -extern(Windows) export DWORD ImmGetProperty( HKL, DWORD);
227 -
228 -extern(Windows) export BOOL ImmIsIME( HKL);
229 -
230 -extern(Windows) export BOOL ImmSimulateHotKey( HWND, DWORD);
231 -
232 -extern(Windows) export HIMC ImmCreateContext();
233 -extern(Windows) export BOOL ImmDestroyContext( HIMC);
234 -extern(Windows) export HIMC ImmGetContext( HWND);
235 -extern(Windows) export BOOL ImmReleaseContext( HWND, HIMC);
236 -extern(Windows) export HIMC ImmAssociateContext( HWND, HIMC);
237 -// #if (WINVER >= 0x040A)
238 -extern(Windows) export BOOL ImmAssociateContextEx( HWND, HIMC, DWORD);
239 -// #endif /* WINVER >= 0x040A */
408 +BOOL ImmGetCompositionFontA(HIMC, LPLOGFONTA);
409 +BOOL ImmGetCompositionFontW(HIMC, LPLOGFONTW);
410 +BOOL ImmSetCompositionFontA(HIMC, LPLOGFONTA);
411 +BOOL ImmSetCompositionFontW(HIMC, LPLOGFONTW);
240 412
241 -extern(Windows) export LONG ImmGetCompositionStringA( HIMC, DWORD, LPVOID, DWORD);
242 -extern(Windows) export LONG ImmGetCompositionStringW( HIMC, DWORD, LPVOID, DWORD);
243 -// #ifdef UNICODE
244 -alias ImmGetCompositionStringW ImmGetCompositionString;
245 -// #else
246 -// #...
247 -// #endif // !UNICODE
248 -
249 -extern(Windows) export BOOL ImmSetCompositionStringA( HIMC, DWORD dwIndex, LPVOID lpComp, DWORD, LPVOID lpRead, DWORD);
250 -extern(Windows) export BOOL ImmSetCompositionStringW( HIMC, DWORD dwIndex, LPVOID lpComp, DWORD, LPVOID lpRead, DWORD);
251 -// #ifdef UNICODE
252 -alias ImmSetCompositionStringW ImmSetCompositionString;
253 -// #else
254 -// #...
255 -// #endif // !UNICODE
256 -
257 -extern(Windows) export DWORD ImmGetCandidateListCountA( HIMC, LPDWORD lpdwListCount);
258 -extern(Windows) export DWORD ImmGetCandidateListCountW( HIMC, LPDWORD lpdwListCount);
259 -// #ifdef UNICODE
260 -alias ImmGetCandidateListCountW ImmGetCandidateListCount;
261 -// #else
262 -// #...
263 -// #endif // !UNICODE
264 -
265 -extern(Windows) export DWORD ImmGetCandidateListA( HIMC, DWORD deIndex, LPCANDIDATELIST, DWORD dwBufLen);
266 -extern(Windows) export DWORD ImmGetCandidateListW( HIMC, DWORD deIndex, LPCANDIDATELIST, DWORD dwBufLen);
267 -// #ifdef UNICODE
268 -alias ImmGetCandidateListW ImmGetCandidateList;
269 -// #else
270 -// #...
271 -// #endif // !UNICODE
272 -
273 -extern(Windows) export DWORD ImmGetGuideLineA( HIMC, DWORD dwIndex, LPSTR, DWORD dwBufLen);
274 -extern(Windows) export DWORD ImmGetGuideLineW( HIMC, DWORD dwIndex, LPWSTR, DWORD dwBufLen);
275 -// #ifdef UNICODE
276 -alias ImmGetGuideLineW ImmGetGuideLine;
277 -// #else
278 -// #...
279 -// #endif // !UNICODE
280 -
281 -extern(Windows) export BOOL ImmGetConversionStatus( HIMC, LPDWORD, LPDWORD);
282 -extern(Windows) export BOOL ImmSetConversionStatus( HIMC, DWORD, DWORD);
283 -extern(Windows) export BOOL ImmGetOpenStatus( HIMC);
284 -extern(Windows) export BOOL ImmSetOpenStatus( HIMC, BOOL);
285 -
286 -// #if defined(_WINGDI_) && !defined(NOGDI)
287 -// ...
288 -// #ifdef UNICODE
289 -// #...
290 -// #else
291 -// #...
292 -// #endif // !UNICODE
293 -
294 -// ...
295 -// #ifdef UNICODE
296 -// #...
297 -// #else
298 -// #...
299 -// #endif // !UNICODE
300 -// #endif // defined(_WINGDI_) && !defined(NOGDI)
301 -
302 -extern(Windows) export BOOL ImmConfigureIMEA( HKL, HWND, DWORD, LPVOID);
303 -extern(Windows) export BOOL ImmConfigureIMEW( HKL, HWND, DWORD, LPVOID);
304 -// #ifdef UNICODE
305 -alias ImmConfigureIMEW ImmConfigureIME;
306 -// #else
307 -// #...
308 -// #endif // !UNICODE
309 -
310 -extern(Windows) export LRESULT ImmEscapeA( HKL, HIMC, UINT, LPVOID);
311 -extern(Windows) export LRESULT ImmEscapeW( HKL, HIMC, UINT, LPVOID);
312 -// #ifdef UNICODE
313 -alias ImmEscapeW ImmEscape;
314 -// #else
315 -// #...
316 -// #endif // !UNICODE
317 -
318 -extern(Windows) export DWORD ImmGetConversionListA( HKL, HIMC, LPCSTR, LPCANDIDATELIST, DWORD dwBufLen, UINT uFlag);
319 -extern(Windows) export DWORD ImmGetConversionListW( HKL, HIMC, LPCWSTR, LPCANDIDATELIST, DWORD dwBufLen, UINT uFlag);
320 -// #ifdef UNICODE
321 -alias ImmGetConversionListW ImmGetConversionList;
322 -// #else
323 -// #...
324 -// #endif // !UNICODE
325 -
326 -extern(Windows) export BOOL ImmNotifyIME( HIMC, DWORD dwAction, DWORD dwIndex, DWORD dwValue);
327 -
328 -extern(Windows) export BOOL ImmGetStatusWindowPos( HIMC, LPPOINT);
329 -extern(Windows) export BOOL ImmSetStatusWindowPos( HIMC, LPPOINT);
330 -extern(Windows) export BOOL ImmGetCompositionWindow( HIMC, LPCOMPOSITIONFORM);
331 -extern(Windows) export BOOL ImmSetCompositionWindow( HIMC, LPCOMPOSITIONFORM);
332 -extern(Windows) export BOOL ImmGetCandidateWindow( HIMC, DWORD, LPCANDIDATEFORM);
333 -extern(Windows) export BOOL ImmSetCandidateWindow( HIMC, LPCANDIDATEFORM);
334 -
335 -extern(Windows) export BOOL ImmIsUIMessageA( HWND, UINT, WPARAM, LPARAM);
336 -extern(Windows) export BOOL ImmIsUIMessageW( HWND, UINT, WPARAM, LPARAM);
337 -// #ifdef UNICODE
338 -alias ImmIsUIMessageW ImmIsUIMessage;
339 -// #else
340 -// #...
341 -// #endif // !UNICODE
342 -
343 -extern(Windows) export UINT ImmGetVirtualKey( HWND);
344 -
345 -extern(Windows) alias int function(LPCSTR, DWORD, LPCSTR, LPVOID) REGISTERWORDENUMPROCA;
346 -extern(Windows) alias int function(LPCWSTR, DWORD, LPCWSTR, LPVOID) REGISTERWORDENUMPROCW;
347 -// #ifdef UNICODE
348 -alias REGISTERWORDENUMPROCW REGISTERWORDENUMPROC;
349 -// #else
350 -// #...
351 -// #endif // !UNICODE
352 -
353 -extern(Windows) export BOOL ImmRegisterWordA( HKL, LPCSTR lpszReading, DWORD, LPCSTR lpszRegister);
354 -extern(Windows) export BOOL ImmRegisterWordW( HKL, LPCWSTR lpszReading, DWORD, LPCWSTR lpszRegister);
355 -// #ifdef UNICODE
356 -alias ImmRegisterWordW ImmRegisterWord;
357 -// #else
358 -// #...
359 -// #endif // !UNICODE
413 +BOOL ImmConfigureIMEA(HKL, HWND, DWORD, PVOID);
414 +BOOL ImmConfigureIMEW(HKL, HWND, DWORD, PVOID);
415 +LRESULT ImmEscapeA(HKL, HIMC, UINT, PVOID);
416 +LRESULT ImmEscapeW(HKL, HIMC, UINT, PVOID);
417 +DWORD ImmGetConversionListA(HKL, HIMC, LPCSTR, PCANDIDATELIST, DWORD, UINT);
418 +DWORD ImmGetConversionListW(HKL, HIMC, LPCWSTR, PCANDIDATELIST, DWORD, UINT);
419 +BOOL ImmNotifyIME(HIMC, DWORD, DWORD, DWORD);
420 +BOOL ImmGetStatusWindowPos(HIMC, LPPOINT);
421 +BOOL ImmSetStatusWindowPos(HIMC, LPPOINT);
422 +BOOL ImmGetCompositionWindow(HIMC, PCOMPOSITIONFORM);
423 +BOOL ImmSetCompositionWindow(HIMC, PCOMPOSITIONFORM);
424 +BOOL ImmGetCandidateWindow(HIMC, DWORD, PCANDIDATEFORM);
425 +BOOL ImmSetCandidateWindow(HIMC, PCANDIDATEFORM);
426 +BOOL ImmIsUIMessageA(HWND, UINT, WPARAM, LPARAM);
427 +BOOL ImmIsUIMessageW(HWND, UINT, WPARAM, LPARAM);
428 +UINT ImmGetVirtualKey(HWND);
429 +BOOL ImmRegisterWordA(HKL, LPCSTR, DWORD, LPCSTR);
430 +BOOL ImmRegisterWordW(HKL, LPCWSTR, DWORD, LPCWSTR);
431 +BOOL ImmUnregisterWordA(HKL, LPCSTR, DWORD, LPCSTR);
432 +BOOL ImmUnregisterWordW(HKL, LPCWSTR, DWORD, LPCWSTR);
433 +UINT ImmGetRegisterWordStyleA(HKL, UINT, PSTYLEBUFA);
434 +UINT ImmGetRegisterWordStyleW(HKL, UINT, PSTYLEBUFW);
435 +UINT ImmEnumRegisterWordA(HKL, REGISTERWORDENUMPROCA, LPCSTR, DWORD, LPCSTR, PVOID);
436 +UINT ImmEnumRegisterWordW(HKL, REGISTERWORDENUMPROCW, LPCWSTR, DWORD, LPCWSTR, PVOID);
437 +BOOL EnableEUDC(BOOL);
438 +BOOL ImmDisableIME(DWORD);
439 +DWORD ImmGetImeMenuItemsA(HIMC, DWORD, DWORD, LPIMEMENUITEMINFOA, LPIMEMENUITEMINFOA, DWORD);
440 +DWORD ImmGetImeMenuItemsW(HIMC, DWORD, DWORD, LPIMEMENUITEMINFOW, LPIMEMENUITEMINFOW, DWORD);
360 441
361 -extern(Windows) export BOOL ImmUnregisterWordA( HKL, LPCSTR lpszReading, DWORD, LPCSTR lpszUnregister);
362 -extern(Windows) export BOOL ImmUnregisterWordW( HKL, LPCWSTR lpszReading, DWORD, LPCWSTR lpszUnregister);
363 -// #ifdef UNICODE
364 -alias ImmUnregisterWordW ImmUnregisterWord;
365 -// #else
366 -// #...
367 -// #endif // !UNICODE
368 -
369 -extern(Windows) export UINT ImmGetRegisterWordStyleA( HKL, UINT nItem, LPSTYLEBUFA);
370 -extern(Windows) export UINT ImmGetRegisterWordStyleW( HKL, UINT nItem, LPSTYLEBUFW);
371 -// #ifdef UNICODE
372 -alias ImmGetRegisterWordStyleW ImmGetRegisterWordStyle;
373 -// #else
374 -// #...
375 -// #endif // !UNICODE
376 -
377 -extern(Windows) export UINT ImmEnumRegisterWordA( HKL, REGISTERWORDENUMPROCA, LPCSTR lpszReading, DWORD, LPCSTR lpszRegister, LPVOID);
378 -extern(Windows) export UINT ImmEnumRegisterWordW( HKL, REGISTERWORDENUMPROCW, LPCWSTR lpszReading, DWORD, LPCWSTR lpszRegister, LPVOID);
379 -// #ifdef UNICODE
380 -alias ImmEnumRegisterWordW ImmEnumRegisterWord;
381 -// #else
382 -// #...
383 -// #endif // !UNICODE
384 -
385 -// #if (WINVER >= 0x040A)
386 -extern(Windows) export BOOL ImmDisableIME( DWORD);
387 -extern(Windows) export BOOL ImmEnumInputContext(DWORD idThread, IMCENUMPROC lpfn, LPARAM lParam);
388 -extern(Windows) export DWORD ImmGetImeMenuItemsA( HIMC, DWORD, DWORD, LPIMEMENUITEMINFOA, LPIMEMENUITEMINFOA, DWORD);
389 -extern(Windows) export DWORD ImmGetImeMenuItemsW( HIMC, DWORD, DWORD, LPIMEMENUITEMINFOW, LPIMEMENUITEMINFOW, DWORD);
390 -// #ifdef UNICODE
391 -alias ImmGetImeMenuItemsW ImmGetImeMenuItems;
392 -// #else
393 -// #...
394 -// #endif // !UNICODE
395 -// #endif /* WINVER >= 0x040A */
396 -
397 -enum : uint { IMC_GETCANDIDATEPOS = 0x0007 }
398 -enum : uint { IMC_SETCANDIDATEPOS = 0x0008 }
399 -enum : uint { IMC_GETCOMPOSITIONFONT = 0x0009 }
400 -enum : uint { IMC_SETCOMPOSITIONFONT = 0x000A }
401 -enum : uint { IMC_GETCOMPOSITIONWINDOW = 0x000B }
402 -enum : uint { IMC_SETCOMPOSITIONWINDOW = 0x000C }
403 -enum : uint { IMC_GETSTATUSWINDOWPOS = 0x000F }
404 -enum : uint { IMC_SETSTATUSWINDOWPOS = 0x0010 }
405 -enum : uint { IMC_CLOSESTATUSWINDOW = 0x0021 }
406 -enum : uint { IMC_OPENSTATUSWINDOW = 0x0022 }
407 -
408 -enum : uint { NI_OPENCANDIDATE = 0x0010 }
409 -enum : uint { NI_CLOSECANDIDATE = 0x0011 }
410 -enum : uint { NI_SELECTCANDIDATESTR = 0x0012 }
411 -enum : uint { NI_CHANGECANDIDATELIST = 0x0013 }
412 -enum : uint { NI_FINALIZECONVERSIONRESULT = 0x0014 }
413 -enum : uint { NI_COMPOSITIONSTR = 0x0015 }
414 -enum : uint { NI_SETCANDIDATE_PAGESTART = 0x0016 }
415 -enum : uint { NI_SETCANDIDATE_PAGESIZE = 0x0017 }
416 -enum : uint { NI_IMEMENUSELECTED = 0x0018 }
417 -
418 -enum : uint { ISC_SHOWUICANDIDATEWINDOW = 0x00000001 }
419 -enum : uint { ISC_SHOWUICOMPOSITIONWINDOW = 0x80000000 }
420 -enum : uint { ISC_SHOWUIGUIDELINE = 0x40000000 }
421 -enum : uint { ISC_SHOWUIALLCANDIDATEWINDOW = 0x0000000F }
422 -enum : uint { ISC_SHOWUIALL = 0xC000000F }
423 -
424 -enum : uint { CPS_COMPLETE = 0x0001 }
425 -enum : uint { CPS_CONVERT = 0x0002 }
426 -enum : uint { CPS_REVERT = 0x0003 }
427 -enum : uint { CPS_CANCEL = 0x0004 }
428 -
429 -enum : uint { MOD_ALT = 0x0001 }
430 -enum : uint { MOD_CONTROL = 0x0002 }
431 -enum : uint { MOD_SHIFT = 0x0004 }
432 -
433 -enum : uint { MOD_LEFT = 0x8000 }
434 -enum : uint { MOD_RIGHT = 0x4000 }
435 -
436 -enum : uint { MOD_ON_KEYUP = 0x0800 }
437 -enum : uint { MOD_IGNORE_ALL_MODIFIER = 0x0400 }
438 -
439 -enum : uint { IME_CHOTKEY_IME_NONIME_TOGGLE = 0x10 }
440 -enum : uint { IME_CHOTKEY_SHAPE_TOGGLE = 0x11 }
441 -enum : uint { IME_CHOTKEY_SYMBOL_TOGGLE = 0x12 }
442 -
443 -enum : uint { IME_JHOTKEY_CLOSE_OPEN = 0x30 }
444 -
445 -enum : uint { IME_KHOTKEY_SHAPE_TOGGLE = 0x50 }
446 -enum : uint { IME_KHOTKEY_HANJACONVERT = 0x51 }
447 -enum : uint { IME_KHOTKEY_ENGLISH = 0x52 }
448 -
449 -enum : uint { IME_THOTKEY_IME_NONIME_TOGGLE = 0x70 }
450 -enum : uint { IME_THOTKEY_SHAPE_TOGGLE = 0x71 }
451 -enum : uint { IME_THOTKEY_SYMBOL_TOGGLE = 0x72 }
452 -
453 -enum : uint { IME_HOTKEY_DSWITCH_FIRST = 0x100 }
454 -enum : uint { IME_HOTKEY_DSWITCH_LAST = 0x11F }
455 -
456 -enum : uint { IME_HOTKEY_PRIVATE_FIRST = 0x200 }
457 -enum : uint { IME_ITHOTKEY_RESEND_RESULTSTR = 0x200 }
458 -enum : uint { IME_ITHOTKEY_PREVIOUS_COMPOSITION = 0x201 }
459 -enum : uint { IME_ITHOTKEY_UISTYLE_TOGGLE = 0x202 }
460 -enum : uint { IME_ITHOTKEY_RECONVERTSTRING = 0x203 }
461 -enum : uint { IME_HOTKEY_PRIVATE_LAST = 0x21F }
462 -
463 -enum : uint { GCS_COMPREADSTR = 0x0001 }
464 -enum : uint { GCS_COMPREADATTR = 0x0002 }
465 -enum : uint { GCS_COMPREADCLAUSE = 0x0004 }
466 -enum : uint { GCS_COMPSTR = 0x0008 }
467 -enum : uint { GCS_COMPATTR = 0x0010 }
468 -enum : uint { GCS_COMPCLAUSE = 0x0020 }
469 -enum : uint { GCS_CURSORPOS = 0x0080 }
470 -enum : uint { GCS_DELTASTART = 0x0100 }
471 -enum : uint { GCS_RESULTREADSTR = 0x0200 }
472 -enum : uint { GCS_RESULTREADCLAUSE = 0x0400 }
473 -enum : uint { GCS_RESULTSTR = 0x0800 }
474 -enum : uint { GCS_RESULTCLAUSE = 0x1000 }
475 -
476 -enum : uint { CS_INSERTCHAR = 0x2000 }
477 -enum : uint { CS_NOMOVECARET = 0x4000 }
478 -
479 -enum : uint { IMEVER_0310 = 0x0003000A }
480 -enum : uint { IMEVER_0400 = 0x00040000 }
481 -
482 -enum : uint { IME_PROP_AT_CARET = 0x00010000 }
483 -enum : uint { IME_PROP_SPECIAL_UI = 0x00020000 }
484 -enum : uint { IME_PROP_CANDLIST_START_FROM_1 = 0x00040000 }
485 -enum : uint { IME_PROP_UNICODE = 0x00080000 }
486 -enum : uint { IME_PROP_COMPLETE_ON_UNSELECT = 0x00100000 }
487 -
488 -enum : uint { UI_CAP_2700 = 0x00000001 }
489 -enum : uint { UI_CAP_ROT90 = 0x00000002 }
490 -enum : uint { UI_CAP_ROTANY = 0x00000004 }
491 -
492 -enum : uint { SCS_CAP_COMPSTR = 0x00000001 }
493 -enum : uint { SCS_CAP_MAKEREAD = 0x00000002 }
494 -enum : uint { SCS_CAP_SETRECONVERTSTRING = 0x00000004 }
495 -
496 -enum : uint { SELECT_CAP_CONVERSION = 0x00000001 }
497 -enum : uint { SELECT_CAP_SENTENCE = 0x00000002 }
498 -
499 -enum : uint { GGL_LEVEL = 0x00000001 }
500 -enum : uint { GGL_INDEX = 0x00000002 }
501 -enum : uint { GGL_STRING = 0x00000003 }
502 -enum : uint { GGL_PRIVATE = 0x00000004 }
503 -
504 -enum : uint { GL_LEVEL_NOGUIDELINE = 0x00000000 }
505 -enum : uint { GL_LEVEL_FATAL = 0x00000001 }
506 -enum : uint { GL_LEVEL_ERROR = 0x00000002 }
507 -enum : uint { GL_LEVEL_WARNING = 0x00000003 }
508 -enum : uint { GL_LEVEL_INFORMATION = 0x00000004 }
509 -
510 -enum : uint { GL_ID_UNKNOWN = 0x00000000 }
511 -enum : uint { GL_ID_NOMODULE = 0x00000001 }
512 -enum : uint { GL_ID_NODICTIONARY = 0x00000010 }
513 -enum : uint { GL_ID_CANNOTSAVE = 0x00000011 }
514 -enum : uint { GL_ID_NOCONVERT = 0x00000020 }
515 -enum : uint { GL_ID_TYPINGERROR = 0x00000021 }
516 -enum : uint { GL_ID_TOOMANYSTROKE = 0x00000022 }
517 -enum : uint { GL_ID_READINGCONFLICT = 0x00000023 }
518 -enum : uint { GL_ID_INPUTREADING = 0x00000024 }
519 -enum : uint { GL_ID_INPUTRADICAL = 0x00000025 }
520 -enum : uint { GL_ID_INPUTCODE = 0x00000026 }
521 -enum : uint { GL_ID_INPUTSYMBOL = 0x00000027 }
522 -enum : uint { GL_ID_CHOOSECANDIDATE = 0x00000028 }
523 -enum : uint { GL_ID_REVERSECONVERSION = 0x00000029 }
524 -enum : uint { GL_ID_PRIVATE_FIRST = 0x00008000 }
525 -enum : uint { GL_ID_PRIVATE_LAST = 0x0000FFFF }
526 -
527 -const DWORD IGP_GETIMEVERSION = cast(DWORD)-4;
528 -enum : uint { IGP_PROPERTY = 0x00000004 }
529 -enum : uint { IGP_CONVERSION = 0x00000008 }
530 -enum : uint { IGP_SENTENCE = 0x0000000c }
531 -enum : uint { IGP_UI = 0x00000010 }
532 -enum : uint { IGP_SETCOMPSTR = 0x00000014 }
533 -enum : uint { IGP_SELECT = 0x00000018 }
534 -
535 -const uint SCS_SETSTR = GCS_COMPREADSTR|GCS_COMPSTR;
536 -const uint SCS_CHANGEATTR = GCS_COMPREADATTR|GCS_COMPATTR;
537 -const uint SCS_CHANGECLAUSE = GCS_COMPREADCLAUSE|GCS_COMPCLAUSE;
538 -enum : uint { SCS_SETRECONVERTSTRING = 0x00010000 }
539 -enum : uint { SCS_QUERYRECONVERTSTRING = 0x00020000 }
540 -
541 -enum : uint { ATTR_INPUT = 0x00 }
542 -enum : uint { ATTR_TARGET_CONVERTED = 0x01 }
543 -enum : uint { ATTR_CONVERTED = 0x02 }
544 -enum : uint { ATTR_TARGET_NOTCONVERTED = 0x03 }
545 -enum : uint { ATTR_INPUT_ERROR = 0x04 }
546 -enum : uint { ATTR_FIXEDCONVERTED = 0x05 }
547 -
548 -enum : uint { CFS_DEFAULT = 0x0000 }
549 -enum : uint { CFS_RECT = 0x0001 }
550 -enum : uint { CFS_POINT = 0x0002 }
551 -enum : uint { CFS_FORCE_POSITION = 0x0020 }
552 -enum : uint { CFS_CANDIDATEPOS = 0x0040 }
553 -enum : uint { CFS_EXCLUDE = 0x0080 }
554 -
555 -enum : uint { GCL_CONVERSION = 0x0001 }
556 -enum : uint { GCL_REVERSECONVERSION = 0x0002 }
557 -enum : uint { GCL_REVERSE_LENGTH = 0x0003 }
558 -
559 -enum : uint { IME_CMODE_ALPHANUMERIC = 0x0000 }
560 -enum : uint { IME_CMODE_NATIVE = 0x0001 }
561 -alias IME_CMODE_NATIVE IME_CMODE_CHINESE;
562 -
563 -alias IME_CMODE_NATIVE IME_CMODE_HANGEUL;
564 -alias IME_CMODE_NATIVE IME_CMODE_HANGUL;
565 -alias IME_CMODE_NATIVE IME_CMODE_JAPANESE;
566 -enum : uint { IME_CMODE_KATAKANA = 0x0002 }
567 -enum : uint { IME_CMODE_LANGUAGE = 0x0003 }
568 -enum : uint { IME_CMODE_FULLSHAPE = 0x0008 }
569 -enum : uint { IME_CMODE_ROMAN = 0x0010 }
570 -enum : uint { IME_CMODE_CHARCODE = 0x0020 }
571 -enum : uint { IME_CMODE_HANJACONVERT = 0x0040 }
572 -enum : uint { IME_CMODE_SOFTKBD = 0x0080 }
573 -enum : uint { IME_CMODE_NOCONVERSION = 0x0100 }
574 -enum : uint { IME_CMODE_EUDC = 0x0200 }
575 -enum : uint { IME_CMODE_SYMBOL = 0x0400 }
576 -enum : uint { IME_CMODE_FIXED = 0x0800 }
577 -
578 -enum : uint { IME_SMODE_NONE = 0x0000 }
579 -enum : uint { IME_SMODE_PLAURALCLAUSE = 0x0001 }
580 -enum : uint { IME_SMODE_SINGLECONVERT = 0x0002 }
581 -enum : uint { IME_SMODE_AUTOMATIC = 0x0004 }
582 -enum : uint { IME_SMODE_PHRASEPREDICT = 0x0008 }
583 -enum : uint { IME_SMODE_CONVERSATION = 0x0010 }
584 -
585 -enum : uint { IME_CAND_UNKNOWN = 0x0000 }
586 -enum : uint { IME_CAND_READ = 0x0001 }
587 -enum : uint { IME_CAND_CODE = 0x0002 }
588 -enum : uint { IME_CAND_MEANING = 0x0003 }
589 -enum : uint { IME_CAND_RADICAL = 0x0004 }
590 -enum : uint { IME_CAND_STROKE = 0x0005 }
591 -
592 -enum : uint { IMN_CLOSESTATUSWINDOW = 0x0001 }
593 -enum : uint { IMN_OPENSTATUSWINDOW = 0x0002 }
594 -enum : uint { IMN_CHANGECANDIDATE = 0x0003 }
595 -enum : uint { IMN_CLOSECANDIDATE = 0x0004 }
596 -enum : uint { IMN_OPENCANDIDATE = 0x0005 }
597 -enum : uint { IMN_SETCONVERSIONMODE = 0x0006 }
598 -enum : uint { IMN_SETSENTENCEMODE = 0x0007 }
599 -enum : uint { IMN_SETOPENSTATUS = 0x0008 }
600 -enum : uint { IMN_SETCANDIDATEPOS = 0x0009 }
601 -enum : uint { IMN_SETCOMPOSITIONFONT = 0x000A }
602 -enum : uint { IMN_SETCOMPOSITIONWINDOW = 0x000B }
603 -enum : uint { IMN_SETSTATUSWINDOWPOS = 0x000C }
604 -enum : uint { IMN_GUIDELINE = 0x000D }
605 -enum : uint { IMN_PRIVATE = 0x000E }
606 -
607 -// #if (WINVER >= 0x040A)
608 -
609 -enum : uint { IMR_COMPOSITIONWINDOW = 0x0001 }
610 -enum : uint { IMR_CANDIDATEWINDOW = 0x0002 }
611 -enum : uint { IMR_COMPOSITIONFONT = 0x0003 }
612 -enum : uint { IMR_RECONVERTSTRING = 0x0004 }
613 -enum : uint { IMR_CONFIRMRECONVERTSTRING = 0x0005 }
614 -enum : uint { IMR_QUERYCHARPOSITION = 0x0006 }
615 -enum : uint { IMR_DOCUMENTFEED = 0x0007 }
616 -// #endif /* WINVER >= 0x040A */
617 -
618 -enum { IMM_ERROR_NODATA = -1 }
619 -enum { IMM_ERROR_GENERAL = -2 }
620 -
621 -enum : uint { IME_CONFIG_GENERAL = 1 }
622 -enum : uint { IME_CONFIG_REGISTERWORD = 2 }
623 -enum : uint { IME_CONFIG_SELECTDICTIONARY = 3 }
624 -
625 -enum : uint { IME_ESC_QUERY_SUPPORT = 0x0003 }
626 -enum : uint { IME_ESC_RESERVED_FIRST = 0x0004 }
627 -enum : uint { IME_ESC_RESERVED_LAST = 0x07FF }
628 -enum : uint { IME_ESC_PRIVATE_FIRST = 0x0800 }
629 -enum : uint { IME_ESC_PRIVATE_LAST = 0x0FFF }
630 -
631 -enum : uint { IME_ESC_SEQUENCE_TO_INTERNAL = 0x1001 }
632 -enum : uint { IME_ESC_GET_EUDC_DICTIONARY = 0x1003 }
633 -enum : uint { IME_ESC_SET_EUDC_DICTIONARY = 0x1004 }
634 -enum : uint { IME_ESC_MAX_KEY = 0x1005 }
635 -enum : uint { IME_ESC_IME_NAME = 0x1006 }
636 -enum : uint { IME_ESC_SYNC_HOTKEY = 0x1007 }
637 -enum : uint { IME_ESC_HANJA_MODE = 0x1008 }
638 -enum : uint { IME_ESC_AUTOMATA = 0x1009 }
639 -enum : uint { IME_ESC_PRIVATE_HOTKEY = 0x100a }
640 -enum : uint { IME_ESC_GETHELPFILENAME = 0x100b }
641 -
642 -enum : uint { IME_REGWORD_STYLE_EUDC = 0x00000001 }
643 -enum : uint { IME_REGWORD_STYLE_USER_FIRST = 0x80000000 }
644 -enum : uint { IME_REGWORD_STYLE_USER_LAST = 0xFFFFFFFF }
645 -
646 -// #if (WINVER >= 0x040A)
647 -
648 -enum : uint { IACE_CHILDREN = 0x0001 }
649 -enum : uint { IACE_DEFAULT = 0x0010 }
650 -enum : uint { IACE_IGNORENOCONTEXT = 0x0020 }
651 -
652 -enum : uint { IGIMIF_RIGHTMENU = 0x0001 }
653 -
654 -enum : uint { IGIMII_CMODE = 0x0001 }
655 -enum : uint { IGIMII_SMODE = 0x0002 }
656 -enum : uint { IGIMII_CONFIGURE = 0x0004 }
657 -enum : uint { IGIMII_TOOLS = 0x0008 }
658 -enum : uint { IGIMII_HELP = 0x0010 }
659 -enum : uint { IGIMII_OTHER = 0x0020 }
660 -enum : uint { IGIMII_INPUTTOOLS = 0x0040 }
661 -
662 -enum : uint { IMFT_RADIOCHECK = 0x00001 }
663 -enum : uint { IMFT_SEPARATOR = 0x00002 }
664 -enum : uint { IMFT_SUBMENU = 0x00004 }
665 -
666 -alias MFS_GRAYED IMFS_GRAYED;
667 -alias MFS_DISABLED IMFS_DISABLED;
668 -alias MFS_CHECKED IMFS_CHECKED;
669 -alias MFS_HILITE IMFS_HILITE;
670 -alias MFS_ENABLED IMFS_ENABLED;
671 -alias MFS_UNCHECKED IMFS_UNCHECKED;
672 -alias MFS_UNHILITE IMFS_UNHILITE;
673 -alias MFS_DEFAULT IMFS_DEFAULT;
674 -
675 -// #endif /* WINVER >= 0x040A */
676 -
677 -enum : uint { SOFTKEYBOARD_TYPE_T1 = 0x0001 }
678 -
679 -enum : uint { SOFTKEYBOARD_TYPE_C1 = 0x0002 }
680 -
681 -// #endif // _IMM_SDK_DEFINED_
682 -
683 -// #ifdef __cplusplus
684 -// }
685 -// #endif
686 -
687 -// #endif // _IMM_
442 +version(Unicode) {
443 + alias ImmEnumRegisterWordW ImmEnumRegisterWord;
444 + alias ImmGetRegisterWordStyleW ImmGetRegisterWordStyle;
445 + alias ImmUnregisterWordW ImmUnregisterWord;
446 + alias ImmRegisterWordW ImmRegisterWord;
447 + alias ImmInstallIMEW ImmInstallIME;
448 + alias ImmIsUIMessageW ImmIsUIMessage;
449 + alias ImmGetConversionListW ImmGetConversionList;
450 + alias ImmEscapeW ImmEscape;
451 + alias ImmConfigureIMEW ImmConfigureIME;
452 + alias ImmSetCompositionFontW ImmSetCompositionFont;
453 + alias ImmGetCompositionFontW ImmGetCompositionFont;
454 + alias ImmGetGuideLineW ImmGetGuideLine;
455 + alias ImmGetCandidateListW ImmGetCandidateList;
456 + alias ImmGetCandidateListCountW ImmGetCandidateListCount;
457 + alias ImmSetCompositionStringW ImmSetCompositionString;
458 + alias ImmGetCompositionStringW ImmGetCompositionString;
459 + alias ImmGetDescriptionW ImmGetDescription;
460 + alias ImmGetIMEFileNameW ImmGetIMEFileName;
461 + alias ImmGetImeMenuItemsW ImmGetImeMenuItems;
462 +} else {
463 + alias ImmEnumRegisterWordA ImmEnumRegisterWord;
464 + alias ImmGetRegisterWordStyleA ImmGetRegisterWordStyle;
465 + alias ImmUnregisterWordA ImmUnregisterWord;
466 + alias ImmRegisterWordA ImmRegisterWord;
467 + alias ImmInstallIMEA ImmInstallIME;
468 + alias ImmIsUIMessageA ImmIsUIMessage;
469 + alias ImmGetConversionListA ImmGetConversionList;
470 + alias ImmEscapeA ImmEscape;
471 + alias ImmConfigureIMEA ImmConfigureIME;
472 + alias ImmSetCompositionFontA ImmSetCompositionFont;
473 + alias ImmGetCompositionFontA ImmGetCompositionFont;
474 + alias ImmGetGuideLineA ImmGetGuideLine;
475 + alias ImmGetCandidateListA ImmGetCandidateList;
476 + alias ImmGetCandidateListCountA ImmGetCandidateListCount;
477 + alias ImmSetCompositionStringA ImmSetCompositionString;
478 + alias ImmGetCompositionStringA ImmGetCompositionString;
479 + alias ImmGetDescriptionA ImmGetDescription;
480 + alias ImmGetIMEFileNameA ImmGetIMEFileName;
481 + alias ImmGetImeMenuItemsW ImmGetImeMenuItems;
482 +}