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