1 /**
2  * Windows API header module
3  *
4  * Translated from MinGW Windows headers
5  *
6  * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
7  * Source: $(DRUNTIMESRC src/core/sys/windows/_imm.d)
8  */
9 module core.sys.windows.imm;
version(Windows)10 version (Windows):
11 @system:
12 
13 version (ANSI) {} else version = Unicode;
14 pragma(lib, "imm32");
15 
16 import core.sys.windows.windef, core.sys.windows.wingdi;
17 import core.sys.windows.winuser; // for the MFS_xxx enums.
18 import core.sys.windows.w32api;
19 
20 enum WM_CONVERTREQUESTEX     = 0x108;
21 enum WM_IME_STARTCOMPOSITION = 0x10D;
22 enum WM_IME_ENDCOMPOSITION   = 0x10E;
23 enum WM_IME_COMPOSITION      = 0x10F;
24 enum WM_IME_KEYLAST          = 0x10F;
25 enum WM_IME_SETCONTEXT       = 0x281;
26 enum WM_IME_NOTIFY           = 0x282;
27 enum WM_IME_CONTROL          = 0x283;
28 enum WM_IME_COMPOSITIONFULL  = 0x284;
29 enum WM_IME_SELECT           = 0x285;
30 enum WM_IME_CHAR             = 0x286;
31 //static if (_WIN32_WINNT >= 0x500) {
32 enum WM_IME_REQUEST      = 0x288;
33 //}
34 enum WM_IME_KEYDOWN          = 0x290;
35 enum WM_IME_KEYUP            = 0x291;
36 
37 
38 enum IMC_GETCANDIDATEPOS=7;
39 enum IMC_SETCANDIDATEPOS=8;
40 enum IMC_GETCOMPOSITIONFONT=9;
41 enum IMC_SETCOMPOSITIONFONT=10;
42 enum IMC_GETCOMPOSITIONWINDOW=11;
43 enum IMC_SETCOMPOSITIONWINDOW=12;
44 enum IMC_GETSTATUSWINDOWPOS=15;
45 enum IMC_SETSTATUSWINDOWPOS=16;
46 enum IMC_CLOSESTATUSWINDOW=0x21;
47 enum IMC_OPENSTATUSWINDOW=0x22;
48 enum IMN_CLOSESTATUSWINDOW=1;
49 enum IMN_OPENSTATUSWINDOW=2;
50 enum IMN_CHANGECANDIDATE=3;
51 enum IMN_CLOSECANDIDATE=4;
52 enum IMN_OPENCANDIDATE=5;
53 enum IMN_SETCONVERSIONMODE=6;
54 enum IMN_SETSENTENCEMODE=7;
55 enum IMN_SETOPENSTATUS=8;
56 enum IMN_SETCANDIDATEPOS=9;
57 enum IMN_SETCOMPOSITIONFONT=10;
58 enum IMN_SETCOMPOSITIONWINDOW=11;
59 enum IMN_SETSTATUSWINDOWPOS=12;
60 enum IMN_GUIDELINE=13;
61 enum IMN_PRIVATE=14;
62 
63 enum NI_OPENCANDIDATE=16;
64 enum NI_CLOSECANDIDATE=17;
65 enum NI_SELECTCANDIDATESTR=18;
66 enum NI_CHANGECANDIDATELIST=19;
67 enum NI_FINALIZECONVERSIONRESULT=20;
68 enum NI_COMPOSITIONSTR=21;
69 enum NI_SETCANDIDATE_PAGESTART=22;
70 enum NI_SETCANDIDATE_PAGESIZE=23;
71 enum NI_IMEMENUSELECTED=24;
72 
73 enum ISC_SHOWUICANDIDATEWINDOW=1;
74 enum ISC_SHOWUICOMPOSITIONWINDOW=0x80000000;
75 enum ISC_SHOWUIGUIDELINE=0x40000000;
76 enum ISC_SHOWUIALLCANDIDATEWINDOW=15;
77 enum ISC_SHOWUIALL=0xC000000F;
78 
79 enum CPS_COMPLETE=1;
80 enum CPS_CONVERT=2;
81 enum CPS_REVERT=3;
82 enum CPS_CANCEL=4;
83 
84 enum IME_CHOTKEY_IME_NONIME_TOGGLE=16;
85 enum IME_CHOTKEY_SHAPE_TOGGLE=17;
86 enum IME_CHOTKEY_SYMBOL_TOGGLE=18;
87 enum IME_JHOTKEY_CLOSE_OPEN=0x30;
88 enum IME_KHOTKEY_SHAPE_TOGGLE=0x50;
89 enum IME_KHOTKEY_HANJACONVERT=0x51;
90 enum IME_KHOTKEY_ENGLISH=0x52;
91 enum IME_THOTKEY_IME_NONIME_TOGGLE=0x70;
92 enum IME_THOTKEY_SHAPE_TOGGLE=0x71;
93 enum IME_THOTKEY_SYMBOL_TOGGLE=0x72;
94 enum IME_HOTKEY_DSWITCH_FIRST=256;
95 enum IME_HOTKEY_DSWITCH_LAST=0x11F;
96 enum IME_ITHOTKEY_RESEND_RESULTSTR=512;
97 enum IME_ITHOTKEY_PREVIOUS_COMPOSITION=513;
98 enum IME_ITHOTKEY_UISTYLE_TOGGLE=514;
99 
100 enum GCS_COMPREADSTR=1;
101 enum GCS_COMPREADATTR=2;
102 enum GCS_COMPREADCLAUSE=4;
103 enum GCS_COMPSTR=8;
104 enum GCS_COMPATTR=16;
105 enum GCS_COMPCLAUSE=32;
106 enum GCS_CURSORPOS=128;
107 enum GCS_DELTASTART=256;
108 enum GCS_RESULTREADSTR=512;
109 enum GCS_RESULTREADCLAUSE=1024;
110 enum GCS_RESULTSTR=2048;
111 enum GCS_RESULTCLAUSE=4096;
112 
113 enum CS_INSERTCHAR=0x2000;
114 enum CS_NOMOVECARET=0x4000;
115 
116 enum IMEVER_0310=0x3000A;
117 enum IMEVER_0400=0x40000;
118 
119 enum IME_PROP_AT_CARET=0x10000;
120 enum IME_PROP_SPECIAL_UI=0x20000;
121 enum IME_PROP_CANDLIST_START_FROM_1=0x40000;
122 enum IME_PROP_UNICODE=0x80000;
123 
124 enum UI_CAP_2700=1;
125 enum UI_CAP_ROT90=2;
126 enum UI_CAP_ROTANY=4;
127 
128 enum SCS_CAP_COMPSTR=1;
129 enum SCS_CAP_MAKEREAD=2;
130 enum SELECT_CAP_CONVERSION=1;
131 enum SELECT_CAP_SENTENCE=2;
132 enum GGL_LEVEL=1;
133 enum GGL_INDEX=2;
134 enum GGL_STRING=3;
135 enum GGL_PRIVATE=4;
136 enum GL_LEVEL_NOGUIDELINE=0;
137 enum GL_LEVEL_FATAL=1;
138 enum GL_LEVEL_ERROR=2;
139 enum GL_LEVEL_WARNING=3;
140 enum GL_LEVEL_INFORMATION=4;
141 enum GL_ID_UNKNOWN=0;
142 enum GL_ID_NOMODULE=1;
143 enum GL_ID_NODICTIONARY=16;
144 enum GL_ID_CANNOTSAVE=17;
145 enum GL_ID_NOCONVERT=32;
146 enum GL_ID_TYPINGERROR=33;
147 enum GL_ID_TOOMANYSTROKE=34;
148 enum GL_ID_READINGCONFLICT=35;
149 enum GL_ID_INPUTREADING=36;
150 enum GL_ID_INPUTRADICAL=37;
151 enum GL_ID_INPUTCODE=38;
152 enum GL_ID_INPUTSYMBOL=39;
153 enum GL_ID_CHOOSECANDIDATE=40;
154 enum GL_ID_REVERSECONVERSION=41;
155 enum GL_ID_PRIVATE_FIRST=0x8000;
156 enum GL_ID_PRIVATE_LAST=0xFFFF;
157 
158 enum DWORD IGP_GETIMEVERSION = -4;
159 enum IGP_PROPERTY=4;
160 enum IGP_CONVERSION=8;
161 enum IGP_SENTENCE=12;
162 enum IGP_UI=16;
163 enum IGP_SETCOMPSTR=0x14;
164 enum IGP_SELECT=0x18;
165 
166 enum SCS_SETSTR       = GCS_COMPREADSTR|GCS_COMPSTR;
167 enum SCS_CHANGEATTR   = GCS_COMPREADATTR|GCS_COMPATTR;
168 enum SCS_CHANGECLAUSE = GCS_COMPREADCLAUSE|GCS_COMPCLAUSE;
169 
170 enum ATTR_INPUT=0;
171 enum ATTR_TARGET_CONVERTED=1;
172 enum ATTR_CONVERTED=2;
173 enum ATTR_TARGET_NOTCONVERTED=3;
174 enum ATTR_INPUT_ERROR=4;
175 enum ATTR_FIXEDCONVERTED=5;
176 enum CFS_DEFAULT=0;
177 enum CFS_RECT=1;
178 enum CFS_POINT=2;
179 enum CFS_SCREEN=4;
180 enum CFS_FORCE_POSITION=32;
181 enum CFS_CANDIDATEPOS=64;
182 enum CFS_EXCLUDE=128;
183 enum GCL_CONVERSION=1;
184 enum GCL_REVERSECONVERSION=2;
185 enum GCL_REVERSE_LENGTH=3;
186 
187 enum IME_CMODE_ALPHANUMERIC=0;
188 enum IME_CMODE_NATIVE=1;
189 enum IME_CMODE_CHINESE=IME_CMODE_NATIVE;
190 enum IME_CMODE_HANGEUL=IME_CMODE_NATIVE;
191 enum IME_CMODE_HANGUL=IME_CMODE_NATIVE;
192 enum IME_CMODE_JAPANESE=IME_CMODE_NATIVE;
193 enum IME_CMODE_KATAKANA=2;
194 enum IME_CMODE_LANGUAGE=3;
195 enum IME_CMODE_FULLSHAPE=8;
196 enum IME_CMODE_ROMAN=16;
197 enum IME_CMODE_CHARCODE=32;
198 enum IME_CMODE_HANJACONVERT=64;
199 enum IME_CMODE_SOFTKBD=128;
200 enum IME_CMODE_NOCONVERSION=256;
201 enum IME_CMODE_EUDC=512;
202 enum IME_CMODE_SYMBOL=1024;
203 enum IME_CMODE_FIXED=2048;
204 enum IME_SMODE_NONE=0;
205 enum IME_SMODE_PLAURALCLAUSE=1;
206 enum IME_SMODE_SINGLECONVERT=2;
207 enum IME_SMODE_AUTOMATIC=4;
208 enum IME_SMODE_PHRASEPREDICT=8;
209 enum IME_CAND_UNKNOWN=0;
210 enum IME_CAND_READ=1;
211 enum IME_CAND_CODE=2;
212 enum IME_CAND_MEANING=3;
213 enum IME_CAND_RADICAL=4;
214 enum IME_CAND_STROKE=5;
215 enum IMM_ERROR_NODATA=(-1);
216 enum IMM_ERROR_GENERAL=(-2);
217 enum IME_CONFIG_GENERAL=1;
218 enum IME_CONFIG_REGISTERWORD=2;
219 enum IME_CONFIG_SELECTDICTIONARY=3;
220 enum IME_ESC_QUERY_SUPPORT=3;
221 enum IME_ESC_RESERVED_FIRST=4;
222 enum IME_ESC_RESERVED_LAST=0x7FF;
223 enum IME_ESC_PRIVATE_FIRST=0x800;
224 enum IME_ESC_PRIVATE_LAST=0xFFF;
225 enum IME_ESC_SEQUENCE_TO_INTERNAL=0x1001;
226 enum IME_ESC_GET_EUDC_DICTIONARY=0x1003;
227 enum IME_ESC_SET_EUDC_DICTIONARY=0x1004;
228 enum IME_ESC_MAX_KEY=0x1005;
229 enum IME_ESC_IME_NAME=0x1006;
230 enum IME_ESC_SYNC_HOTKEY=0x1007;
231 enum IME_ESC_HANJA_MODE=0x1008;
232 enum IME_ESC_AUTOMATA=0x1009;
233 enum IME_REGWORD_STYLE_EUDC=1;
234 enum IME_REGWORD_STYLE_USER_FIRST=0x80000000;
235 enum IME_REGWORD_STYLE_USER_LAST=0xFFFFFFFF;
236 
237 enum SOFTKEYBOARD_TYPE_T1=1;
238 enum SOFTKEYBOARD_TYPE_C1=2;
239 
240 enum IMEMENUITEM_STRING_SIZE=80;
241 
242 enum MOD_ALT=1;
243 enum MOD_CONTROL=2;
244 enum MOD_SHIFT=4;
245 enum MOD_WIN=8;
246 enum MOD_IGNORE_ALL_MODIFIER=1024;
247 enum MOD_ON_KEYUP=2048;
248 enum MOD_RIGHT=16384;
249 enum MOD_LEFT=32768;
250 
251 enum IACE_CHILDREN=1;
252 enum IACE_DEFAULT=16;
253 enum IACE_IGNORENOCONTEXT=32;
254 
255 enum IGIMIF_RIGHTMENU=1;
256 
257 enum IGIMII_CMODE=1;
258 enum IGIMII_SMODE=2;
259 enum IGIMII_CONFIGURE=4;
260 enum IGIMII_TOOLS=8;
261 enum IGIMII_HELP=16;
262 enum IGIMII_OTHER=32;
263 enum IGIMII_INPUTTOOLS=64;
264 
265 enum IMFT_RADIOCHECK=1;
266 enum IMFT_SEPARATOR=2;
267 enum IMFT_SUBMENU=4;
268 
269 enum IMFS_GRAYED=MFS_GRAYED;
270 enum IMFS_DISABLED=MFS_DISABLED;
271 enum IMFS_CHECKED=MFS_CHECKED;
272 enum IMFS_HILITE=MFS_HILITE;
273 enum IMFS_ENABLED=MFS_ENABLED;
274 enum IMFS_UNCHECKED=MFS_UNCHECKED;
275 enum IMFS_UNHILITE=MFS_UNHILITE;
276 enum IMFS_DEFAULT=MFS_DEFAULT;
277 
278 enum STYLE_DESCRIPTION_SIZE=32;
279 
280 alias DWORD HIMC;
281 alias DWORD HIMCC;
282 alias HKL* LPHKL;
283 
284 struct COMPOSITIONFORM{
285     DWORD dwStyle;
286     POINT ptCurrentPos;
287     RECT rcArea;
288 }
289 alias COMPOSITIONFORM* PCOMPOSITIONFORM, LPCOMPOSITIONFORM;
290 
291 struct CANDIDATEFORM{
292     DWORD dwIndex;
293     DWORD dwStyle;
294     POINT ptCurrentPos;
295     RECT rcArea;
296 }
297 alias CANDIDATEFORM* PCANDIDATEFORM, LPCANDIDATEFORM;
298 
299 struct CANDIDATELIST{
300     DWORD dwSize;
301     DWORD dwStyle;
302     DWORD dwCount;
303     DWORD dwSelection;
304     DWORD dwPageStart;
305     DWORD dwPageSize;
306     DWORD[1] dwOffset;
307 }
308 alias CANDIDATELIST* PCANDIDATELIST, LPCANDIDATELIST;
309 
310 struct REGISTERWORDA{
311     LPSTR lpReading;
312     LPSTR lpWord;
313 }
314 alias REGISTERWORDA* PREGISTERWORDA, LPREGISTERWORDA;
315 
316 struct REGISTERWORDW{
317     LPWSTR lpReading;
318     LPWSTR lpWord;
319 }
320 alias REGISTERWORDW* PREGISTERWORDW, LPREGISTERWORDW;
321 
322 struct STYLEBUFA{
323     DWORD dwStyle;
324     CHAR[STYLE_DESCRIPTION_SIZE] szDescription = 0;
325 }
326 alias STYLEBUFA* PSTYLEBUFA, LPSTYLEBUFA;
327 
328 struct STYLEBUFW{
329     DWORD dwStyle;
330     WCHAR[STYLE_DESCRIPTION_SIZE] szDescription = 0;
331 }
332 alias STYLEBUFW* PSTYLEBUFW, LPSTYLEBUFW;
333 
334 struct IMEMENUITEMINFOA{
335     UINT cbSize = this.sizeof;
336     UINT fType;
337     UINT fState;
338     UINT wID;
339     HBITMAP hbmpChecked;
340     HBITMAP hbmpUnchecked;
341     DWORD dwItemData;
342     CHAR[IMEMENUITEM_STRING_SIZE] szString = 0;
343     HBITMAP hbmpItem;
344 }
345 alias IMEMENUITEMINFOA* PIMEMENUITEMINFOA, LPIMEMENUITEMINFOA;
346 
347 struct IMEMENUITEMINFOW{
348     UINT cbSize = this.sizeof;
349     UINT fType;
350     UINT fState;
351     UINT wID;
352     HBITMAP hbmpChecked;
353     HBITMAP hbmpUnchecked;
354     DWORD dwItemData;
355     WCHAR[IMEMENUITEM_STRING_SIZE] szString = 0;
356     HBITMAP hbmpItem;
357 }
358 alias IMEMENUITEMINFOW* PIMEMENUITEMINFOW, LPIMEMENUITEMINFOW;
359 
360 extern (Windows) {
361 alias int function (LPCSTR, DWORD, LPCSTR, LPVOID)  REGISTERWORDENUMPROCA;
362 alias int function (LPCWSTR, DWORD, LPCWSTR, LPVOID) REGISTERWORDENUMPROCW;
363 }
364 
version(Unicode)365 version (Unicode) {
366     alias REGISTERWORDENUMPROCW REGISTERWORDENUMPROC;
367     alias REGISTERWORDW REGISTERWORD;
368     alias IMEMENUITEMINFOW IMEMENUITEMINFO;
369     alias STYLEBUFW STYLEBUF;
370 } else {
371     alias REGISTERWORDENUMPROCA REGISTERWORDENUMPROC;
372     alias REGISTERWORDA REGISTERWORD;
373     alias IMEMENUITEMINFOA IMEMENUITEMINFO;
374     alias STYLEBUFA STYLEBUF;
375 }
376 
377 alias STYLEBUF* PSTYLEBUF, LPSTYLEBUF;
378 alias REGISTERWORD* PREGISTERWORD, LPREGISTERWORD;
379 alias IMEMENUITEMINFO* PIMEMENUITEMINFO, LPIMEMENUITEMINFO;
380 
381 
382 extern (Windows):
383 HKL ImmInstallIMEA(LPCSTR, LPCSTR);
384 HKL ImmInstallIMEW(LPCWSTR, LPCWSTR);
385 HWND ImmGetDefaultIMEWnd(HWND);
386 UINT ImmGetDescriptionA(HKL, LPSTR, UINT);
387 UINT ImmGetDescriptionW(HKL, LPWSTR, UINT);
388 UINT ImmGetIMEFileNameA(HKL, LPSTR, UINT);
389 UINT ImmGetIMEFileNameW(HKL, LPWSTR, UINT);
390 DWORD ImmGetProperty(HKL, DWORD);
391 BOOL ImmIsIME(HKL);
392 BOOL ImmSimulateHotKey(HWND, DWORD);
393 HIMC ImmCreateContext();
394 BOOL ImmDestroyContext(HIMC);
395 HIMC ImmGetContext(HWND);
396 BOOL ImmReleaseContext(HWND, HIMC);
397 HIMC ImmAssociateContext(HWND, HIMC);
398 LONG ImmGetCompositionStringA(HIMC, DWORD, PVOID, DWORD);
399 LONG ImmGetCompositionStringW(HIMC, DWORD, PVOID, DWORD);
400 BOOL ImmSetCompositionStringA(HIMC, DWORD, PCVOID, DWORD, PCVOID, DWORD);
401 BOOL ImmSetCompositionStringW(HIMC, DWORD, PCVOID, DWORD, PCVOID, DWORD);
402 DWORD ImmGetCandidateListCountA(HIMC, PDWORD);
403 DWORD ImmGetCandidateListCountW(HIMC, PDWORD);
404 DWORD ImmGetCandidateListA(HIMC, DWORD, PCANDIDATELIST, DWORD);
405 DWORD ImmGetCandidateListW(HIMC, DWORD, PCANDIDATELIST, DWORD);
406 DWORD ImmGetGuideLineA(HIMC, DWORD, LPSTR, DWORD);
407 DWORD ImmGetGuideLineW(HIMC, DWORD, LPWSTR, DWORD);
408 BOOL ImmGetConversionStatus(HIMC, LPDWORD, PDWORD);
409 BOOL ImmSetConversionStatus(HIMC, DWORD, DWORD);
410 BOOL ImmGetOpenStatus(HIMC);
411 BOOL ImmSetOpenStatus(HIMC, BOOL);
412 
413 BOOL ImmGetCompositionFontA(HIMC, LPLOGFONTA);
414 BOOL ImmGetCompositionFontW(HIMC, LPLOGFONTW);
415 BOOL ImmSetCompositionFontA(HIMC, LPLOGFONTA);
416 BOOL ImmSetCompositionFontW(HIMC, LPLOGFONTW);
417 
418 BOOL ImmConfigureIMEA(HKL, HWND, DWORD, PVOID);
419 BOOL ImmConfigureIMEW(HKL, HWND, DWORD, PVOID);
420 LRESULT ImmEscapeA(HKL, HIMC, UINT, PVOID);
421 LRESULT ImmEscapeW(HKL, HIMC, UINT, PVOID);
422 DWORD ImmGetConversionListA(HKL, HIMC, LPCSTR, PCANDIDATELIST, DWORD, UINT);
423 DWORD ImmGetConversionListW(HKL, HIMC, LPCWSTR, PCANDIDATELIST, DWORD, UINT);
424 BOOL ImmNotifyIME(HIMC, DWORD, DWORD, DWORD);
425 BOOL ImmGetStatusWindowPos(HIMC, LPPOINT);
426 BOOL ImmSetStatusWindowPos(HIMC, LPPOINT);
427 BOOL ImmGetCompositionWindow(HIMC, PCOMPOSITIONFORM);
428 BOOL ImmSetCompositionWindow(HIMC, PCOMPOSITIONFORM);
429 BOOL ImmGetCandidateWindow(HIMC, DWORD, PCANDIDATEFORM);
430 BOOL ImmSetCandidateWindow(HIMC, PCANDIDATEFORM);
431 BOOL ImmIsUIMessageA(HWND, UINT, WPARAM, LPARAM);
432 BOOL ImmIsUIMessageW(HWND, UINT, WPARAM, LPARAM);
433 UINT ImmGetVirtualKey(HWND);
434 BOOL ImmRegisterWordA(HKL, LPCSTR, DWORD, LPCSTR);
435 BOOL ImmRegisterWordW(HKL, LPCWSTR, DWORD, LPCWSTR);
436 BOOL ImmUnregisterWordA(HKL, LPCSTR, DWORD, LPCSTR);
437 BOOL ImmUnregisterWordW(HKL, LPCWSTR, DWORD, LPCWSTR);
438 UINT ImmGetRegisterWordStyleA(HKL, UINT, PSTYLEBUFA);
439 UINT ImmGetRegisterWordStyleW(HKL, UINT, PSTYLEBUFW);
440 UINT ImmEnumRegisterWordA(HKL, REGISTERWORDENUMPROCA, LPCSTR, DWORD, LPCSTR, PVOID);
441 UINT ImmEnumRegisterWordW(HKL, REGISTERWORDENUMPROCW, LPCWSTR, DWORD, LPCWSTR, PVOID);
442 BOOL EnableEUDC(BOOL);
443 BOOL ImmDisableIME(DWORD);
444 DWORD ImmGetImeMenuItemsA(HIMC, DWORD, DWORD, LPIMEMENUITEMINFOA, LPIMEMENUITEMINFOA, DWORD);
445 DWORD ImmGetImeMenuItemsW(HIMC, DWORD, DWORD, LPIMEMENUITEMINFOW, LPIMEMENUITEMINFOW, DWORD);
446 
version(Unicode)447 version (Unicode) {
448     alias ImmEnumRegisterWordW ImmEnumRegisterWord;
449     alias ImmGetRegisterWordStyleW ImmGetRegisterWordStyle;
450     alias ImmUnregisterWordW ImmUnregisterWord;
451     alias ImmRegisterWordW ImmRegisterWord;
452     alias ImmInstallIMEW ImmInstallIME;
453     alias ImmIsUIMessageW ImmIsUIMessage;
454     alias ImmGetConversionListW ImmGetConversionList;
455     alias ImmEscapeW ImmEscape;
456     alias ImmConfigureIMEW ImmConfigureIME;
457     alias ImmSetCompositionFontW ImmSetCompositionFont;
458     alias ImmGetCompositionFontW ImmGetCompositionFont;
459     alias ImmGetGuideLineW ImmGetGuideLine;
460     alias ImmGetCandidateListW ImmGetCandidateList;
461     alias ImmGetCandidateListCountW ImmGetCandidateListCount;
462     alias ImmSetCompositionStringW ImmSetCompositionString;
463     alias ImmGetCompositionStringW ImmGetCompositionString;
464     alias ImmGetDescriptionW ImmGetDescription;
465     alias ImmGetIMEFileNameW ImmGetIMEFileName;
466     alias ImmGetImeMenuItemsW ImmGetImeMenuItems;
467 } else {
468     alias ImmEnumRegisterWordA ImmEnumRegisterWord;
469     alias ImmGetRegisterWordStyleA ImmGetRegisterWordStyle;
470     alias ImmUnregisterWordA ImmUnregisterWord;
471     alias ImmRegisterWordA ImmRegisterWord;
472     alias ImmInstallIMEA ImmInstallIME;
473     alias ImmIsUIMessageA ImmIsUIMessage;
474     alias ImmGetConversionListA ImmGetConversionList;
475     alias ImmEscapeA ImmEscape;
476     alias ImmConfigureIMEA ImmConfigureIME;
477     alias ImmSetCompositionFontA ImmSetCompositionFont;
478     alias ImmGetCompositionFontA ImmGetCompositionFont;
479     alias ImmGetGuideLineA ImmGetGuideLine;
480     alias ImmGetCandidateListA ImmGetCandidateList;
481     alias ImmGetCandidateListCountA ImmGetCandidateListCount;
482     alias ImmSetCompositionStringA ImmSetCompositionString;
483     alias ImmGetCompositionStringA ImmGetCompositionString;
484     alias ImmGetDescriptionA ImmGetDescription;
485     alias ImmGetIMEFileNameA ImmGetIMEFileName;
486     alias ImmGetImeMenuItemsW ImmGetImeMenuItems;
487 }
488