1 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
26 alias HKL* LPHKL;
27 alias UINT* LPUINT;
28
29 struct tagCOMPOSITIONFORM {
30 DWORD dwStyle;
31 POINT ptCurrentPos;
32 RECT rcArea;
33 }
34 alias tagCOMPOSITIONFORM COMPOSITIONFORM;
35 alias tagCOMPOSITIONFORM* PCOMPOSITIONFORM;
36 alias tagCOMPOSITIONFORM* NPCOMPOSITIONFORM;
37 alias tagCOMPOSITIONFORM* LPCOMPOSITIONFORM;
38
39 struct tagCANDIDATEFORM {
40 DWORD dwIndex;
41 DWORD dwStyle;
42 POINT ptCurrentPos;
43 RECT rcArea;
44 }
45 alias tagCANDIDATEFORM CANDIDATEFORM;
46 alias tagCANDIDATEFORM* PCANDIDATEFORM;
47 alias tagCANDIDATEFORM* NPCANDIDATEFORM;
48 alias tagCANDIDATEFORM* LPCANDIDATEFORM;
49
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];
58 }
59 alias tagCANDIDATELIST CANDIDATELIST;
60 alias tagCANDIDATELIST* PCANDIDATELIST;
61 alias tagCANDIDATELIST* NPCANDIDATELIST;
62 alias tagCANDIDATELIST* LPCANDIDATELIST;
63
64 struct tagREGISTERWORDA {
65 LPSTR lpReading;
66 LPSTR lpWord;
67 }
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
90
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];
115 }
116 alias tagSTYLEBUFA STYLEBUFA;
117 alias tagSTYLEBUFA* PSTYLEBUFA;
118 alias tagSTYLEBUFA* NPSTYLEBUFA;
119 alias tagSTYLEBUFA* LPSTYLEBUFA;
120
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
138
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;
190 }
191 alias tagIMECHARPOSITION IMECHARPOSITION;
192 alias tagIMECHARPOSITION* PIMECHARPOSITION;
193 alias tagIMECHARPOSITION* NPIMECHARPOSITION;
194 alias tagIMECHARPOSITION* LPIMECHARPOSITION;
195
196 extern(Windows) alias BOOL function(HIMC, LPARAM) IMCENUMPROC;
197
198 // #endif /* WINVER >= 0x040A */
199
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
217
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 */
240
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
360
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_