1 /***********************************************************************\
2 *                                 imm.d                                 *
3 *                                                                       *
4 *                       Windows API header module                       *
5 *                                                                       *
6 *                 Translated from MinGW Windows headers                 *
7 *                                                                       *
8 *                       Placed into public domain                       *
9 \***********************************************************************/
10 module windows.imm;
11 pragma(lib, "imm32");
12 nothrow:
13 import windows.windef, windows.wingdi;
14 import windows.winuser; // for the MFS_xxx enums.
15 private import windows.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 (_WIN32_WINNT >= 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;
279 alias HKL* LPHKL;
280 
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[1] dwOffset;
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;
316 }
317 alias REGISTERWORDW* PREGISTERWORDW, LPREGISTERWORDW;
318 
319 struct STYLEBUFA{
320 	DWORD dwStyle;
321 	CHAR[STYLE_DESCRIPTION_SIZE] szDescription;
322 }
323 alias STYLEBUFA* PSTYLEBUFA, LPSTYLEBUFA;
324 
325 struct STYLEBUFW{
326 	DWORD dwStyle;
327 	WCHAR[STYLE_DESCRIPTION_SIZE] szDescription;
328 }
329 alias STYLEBUFW* PSTYLEBUFW, LPSTYLEBUFW;
330 
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[IMEMENUITEM_STRING_SIZE] szString;
340 	HBITMAP hbmpItem;
341 }
342 alias IMEMENUITEMINFOA* PIMEMENUITEMINFOA, LPIMEMENUITEMINFOA;
343 
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[IMEMENUITEM_STRING_SIZE] szString;
353 	HBITMAP hbmpItem;
354 }
355 alias IMEMENUITEMINFOW* PIMEMENUITEMINFOW, LPIMEMENUITEMINFOW;
356 
357 alias int function (LPCSTR, DWORD, LPCSTR, LPVOID)  REGISTERWORDENUMPROCA;
358 alias int function (LPCWSTR, DWORD, LPCWSTR, LPVOID) REGISTERWORDENUMPROCW;
359 
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;
370 }
371 
372 alias STYLEBUF* PSTYLEBUF, LPSTYLEBUF;
373 alias REGISTERWORD* PREGISTERWORD, LPREGISTERWORD;
374 alias IMEMENUITEMINFO* PIMEMENUITEMINFO, LPIMEMENUITEMINFO;
375 
376 
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);
407 
408 BOOL ImmGetCompositionFontA(HIMC, LPLOGFONTA);
409 BOOL ImmGetCompositionFontW(HIMC, LPLOGFONTW);
410 BOOL ImmSetCompositionFontA(HIMC, LPLOGFONTA);
411 BOOL ImmSetCompositionFontW(HIMC, LPLOGFONTW);
412 
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);
441 
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 }