1 // this file was taken from mingw win32api headers
2 // http://cvs.sourceforge.net/viewcvs.py/mingw/w32api/README.w32api?rev=HEAD&content-type=text/vnd.viewcvs-markup
3 /*
4         Free headers and libraries for the Win32 API
5 
6         Originally written by Anders Norlander <anorland@telia.com>
7 
8 	Now maintained by MinGW Developers
9         Send bug reports and questions to MinGW-users@lists.sourceforge.net
10 	URL: http://www.mingw.org
11 	Individual contributors can be found in the ChangeLog file.
12 
13 Unless otherwise stated in individual source files,
14 
15     THIS SOFTWARE IS NOT COPYRIGHTED
16 
17     This source code is offered for use in the public domain.  You may use,
18     modify or distribute it freely.
19 
20     This source code is distributed in the hope that it will be useful but
21     WITHOUT ANY WARRANTY.  ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
22     DISCLAIMED.  This includes but is not limited to warranties of
23     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
24 */
25 
26 //<comment author='b6s'> DDK has chaned this header's name to IMMDEV.h
27 //#ifndef _IMM_H
28 //#define _IMM_H
29 //</comment>
30 #ifndef _IMMDEV_
31 #define _IMMDEV_
32 
33 #if __GNUC__ >=3
34 #pragma GCC system_header
35 #endif
36 
37 #ifdef __cplusplus
38 extern "C" {
39 #endif
40 
41 //<comment author='b6s'> To avoid macro redefinition
42 #ifndef _IMM_SDK_DEFINED_
43 #define _IMM_SDK_DEFINED_
44 
45 #define WM_CONVERTREQUESTEX 0x108
46 
47 #ifndef _WINUSER_
48 #if(WINVER >= 0x0400)
49 #define WM_IME_STARTCOMPOSITION		0x10D
50 #define WM_IME_ENDCOMPOSITION		0x10E
51 #define WM_IME_COMPOSITION			0x10F
52 #define WM_IME_KEYLAST				0x10F
53 #endif // if(WINVER >= 0x0400)
54 
55 #define WM_IME_SETCONTEXT		0x281
56 #define WM_IME_NOTIFY				0x282
57 #define WM_IME_CONTROL			0x283
58 #define WM_IME_COMPOSITIONFULL	0x284
59 #define WM_IME_SELECT				0x285
60 #define WM_IME_CHAR				0x286
61 #define WM_IME_KEYDOWN			0x290
62 #define WM_IME_KEYUP				0x291
63 
64 #define MOD_ALT		1
65 #define MOD_CONTROL	2
66 #define MOD_SHIFT		4
67 #define MOD_WIN		8
68 
69 #if (WINVER >= 0x0500)
70 #define WM_IME_REQUEST 0x0288
71 #endif
72 #endif // _WINUSER_
73 
74 #define IMC_GETCANDIDATEPOS 7
75 #define IMC_SETCANDIDATEPOS 8
76 #define IMC_GETCOMPOSITIONFONT 9
77 #define IMC_SETCOMPOSITIONFONT 10
78 #define IMC_GETCOMPOSITIONWINDOW 11
79 #define IMC_SETCOMPOSITIONWINDOW 12
80 #define IMC_GETSTATUSWINDOWPOS 15
81 #define IMC_SETSTATUSWINDOWPOS 16
82 #define IMC_CLOSESTATUSWINDOW 0x21
83 #define IMC_OPENSTATUSWINDOW 0x22
84 #define IMN_CLOSESTATUSWINDOW 1
85 #define IMN_OPENSTATUSWINDOW 2
86 #define IMN_CHANGECANDIDATE 3
87 #define IMN_CLOSECANDIDATE 4
88 #define IMN_OPENCANDIDATE 5
89 #define IMN_SETCONVERSIONMODE 6
90 #define IMN_SETSENTENCEMODE 7
91 #define IMN_SETOPENSTATUS 8
92 #define IMN_SETCANDIDATEPOS 9
93 #define IMN_SETCOMPOSITIONFONT 10
94 #define IMN_SETCOMPOSITIONWINDOW 11
95 #define IMN_SETSTATUSWINDOWPOS 12
96 #define IMN_GUIDELINE 13
97 #define IMN_PRIVATE 14
98 #define NI_OPENCANDIDATE 16
99 #define NI_CLOSECANDIDATE 17
100 #define NI_SELECTCANDIDATESTR 18
101 #define NI_CHANGECANDIDATELIST 19
102 #define NI_FINALIZECONVERSIONRESULT 20
103 #define NI_COMPOSITIONSTR 21
104 #define NI_SETCANDIDATE_PAGESTART 22
105 #define NI_SETCANDIDATE_PAGESIZE 23
106 #define NI_IMEMENUSELECTED 24
107 #define ISC_SHOWUICANDIDATEWINDOW 1
108 #define ISC_SHOWUICOMPOSITIONWINDOW 0x80000000
109 #define ISC_SHOWUIGUIDELINE 0x40000000
110 #define ISC_SHOWUIALLCANDIDATEWINDOW 15
111 #define ISC_SHOWUIALL 0xC000000F
112 #define CPS_COMPLETE 1
113 #define CPS_CONVERT 2
114 #define CPS_REVERT 3
115 #define CPS_CANCEL 4
116 #define IME_CHOTKEY_IME_NONIME_TOGGLE 16
117 #define IME_CHOTKEY_SHAPE_TOGGLE 17
118 #define IME_CHOTKEY_SYMBOL_TOGGLE 18
119 #define IME_JHOTKEY_CLOSE_OPEN 0x30
120 #define IME_KHOTKEY_SHAPE_TOGGLE 0x50
121 #define IME_KHOTKEY_HANJACONVERT 0x51
122 #define IME_KHOTKEY_ENGLISH 0x52
123 #define IME_THOTKEY_IME_NONIME_TOGGLE 0x70
124 #define IME_THOTKEY_SHAPE_TOGGLE 0x71
125 #define IME_THOTKEY_SYMBOL_TOGGLE 0x72
126 #define IME_HOTKEY_DSWITCH_FIRST 256
127 #define IME_HOTKEY_DSWITCH_LAST 0x11F
128 #define IME_ITHOTKEY_RESEND_RESULTSTR 512
129 #define IME_ITHOTKEY_PREVIOUS_COMPOSITION 513
130 #define IME_ITHOTKEY_UISTYLE_TOGGLE 514
131 #define GCS_COMPREADSTR 1
132 #define GCS_COMPREADATTR 2
133 #define GCS_COMPREADCLAUSE 4
134 #define GCS_COMPSTR 8
135 #define GCS_COMPATTR 16
136 #define GCS_COMPCLAUSE 32
137 #define GCS_CURSORPOS 128
138 #define GCS_DELTASTART 256
139 #define GCS_RESULTREADSTR 512
140 #define GCS_RESULTREADCLAUSE 1024
141 #define GCS_RESULTSTR 2048
142 #define GCS_RESULTCLAUSE 4096
143 #define CS_INSERTCHAR 0x2000
144 #define CS_NOMOVECARET 0x4000
145 #define IMEVER_0310 0x3000A
146 #define IMEVER_0400 0x40000
147 #define IME_PROP_AT_CARET 0x10000
148 #define IME_PROP_SPECIAL_UI 0x20000
149 #define IME_PROP_CANDLIST_START_FROM_1 0x40000
150 #define IME_PROP_UNICODE 0x80000
151 #define UI_CAP_2700 1
152 #define UI_CAP_ROT90 2
153 #define UI_CAP_ROTANY 4
154 #define SCS_CAP_COMPSTR 1
155 #define SCS_CAP_MAKEREAD 2
156 #define SELECT_CAP_CONVERSION 1
157 #define SELECT_CAP_SENTENCE 2
158 #define GGL_LEVEL 1
159 #define GGL_INDEX 2
160 #define GGL_STRING 3
161 #define GGL_PRIVATE 4
162 #define GL_LEVEL_NOGUIDELINE 0
163 #define GL_LEVEL_FATAL 1
164 #define GL_LEVEL_ERROR 2
165 #define GL_LEVEL_WARNING 3
166 #define GL_LEVEL_INFORMATION 4
167 #define GL_ID_UNKNOWN 0
168 #define GL_ID_NOMODULE 1
169 #define GL_ID_NODICTIONARY 16
170 #define GL_ID_CANNOTSAVE 17
171 #define GL_ID_NOCONVERT 32
172 #define GL_ID_TYPINGERROR 33
173 #define GL_ID_TOOMANYSTROKE 34
174 #define GL_ID_READINGCONFLICT 35
175 #define GL_ID_INPUTREADING 36
176 #define GL_ID_INPUTRADICAL 37
177 #define GL_ID_INPUTCODE 38
178 #define GL_ID_INPUTSYMBOL 39
179 #define GL_ID_CHOOSECANDIDATE 40
180 #define GL_ID_REVERSECONVERSION 41
181 #define GL_ID_PRIVATE_FIRST 0x8000
182 #define GL_ID_PRIVATE_LAST 0xFFFF
183 #define IGP_GETIMEVERSION (DWORD)(-4)
184 #define IGP_PROPERTY 4
185 #define IGP_CONVERSION 8
186 #define IGP_SENTENCE 12
187 #define IGP_UI 16
188 #define IGP_SETCOMPSTR 0x14
189 #define IGP_SELECT 0x18
190 #define SCS_SETSTR (GCS_COMPREADSTR|GCS_COMPSTR)
191 #define SCS_CHANGEATTR (GCS_COMPREADATTR|GCS_COMPATTR)
192 #define SCS_CHANGECLAUSE (GCS_COMPREADCLAUSE|GCS_COMPCLAUSE)
193 #define ATTR_INPUT 0
194 #define ATTR_TARGET_CONVERTED 1
195 #define ATTR_CONVERTED 2
196 #define ATTR_TARGET_NOTCONVERTED 3
197 #define ATTR_INPUT_ERROR 4
198 #define ATTR_FIXEDCONVERTED 5
199 #define CFS_DEFAULT 0
200 #define CFS_RECT 1
201 #define CFS_POINT 2
202 #define CFS_SCREEN 4
203 #define CFS_FORCE_POSITION 32
204 #define CFS_CANDIDATEPOS 64
205 #define CFS_EXCLUDE 128
206 #define GCL_CONVERSION 1
207 #define GCL_REVERSECONVERSION 2
208 #define GCL_REVERSE_LENGTH 3
209 #define IME_CMODE_ALPHANUMERIC 0
210 #define IME_CMODE_NATIVE 1
211 #define IME_CMODE_CHINESE IME_CMODE_NATIVE
212 #define IME_CMODE_HANGEUL IME_CMODE_NATIVE
213 #define IME_CMODE_HANGUL IME_CMODE_NATIVE
214 #define IME_CMODE_JAPANESE IME_CMODE_NATIVE
215 #define IME_CMODE_KATAKANA 2
216 #define IME_CMODE_LANGUAGE 3
217 #define IME_CMODE_FULLSHAPE 8
218 #define IME_CMODE_ROMAN 16
219 #define IME_CMODE_CHARCODE 32
220 #define IME_CMODE_HANJACONVERT 64
221 #define IME_CMODE_SOFTKBD 128
222 #define IME_CMODE_NOCONVERSION 256
223 #define IME_CMODE_EUDC 512
224 #define IME_CMODE_SYMBOL 1024
225 #define IME_CMODE_FIXED 2048
226 #define IME_SMODE_NONE 0
227 #define IME_SMODE_PLAURALCLAUSE 1
228 #define IME_SMODE_SINGLECONVERT 2
229 #define IME_SMODE_AUTOMATIC 4
230 #define IME_SMODE_PHRASEPREDICT 8
231 #define IME_CAND_UNKNOWN 0
232 #define IME_CAND_READ 1
233 #define IME_CAND_CODE 2
234 #define IME_CAND_MEANING 3
235 #define IME_CAND_RADICAL 4
236 #define IME_CAND_STROKE 5
237 #define IMM_ERROR_NODATA (-1)
238 #define IMM_ERROR_GENERAL (-2)
239 #define IME_CONFIG_GENERAL 1
240 #define IME_CONFIG_REGISTERWORD 2
241 #define IME_CONFIG_SELECTDICTIONARY 3
242 #define IME_ESC_QUERY_SUPPORT 3
243 #define IME_ESC_RESERVED_FIRST 4
244 #define IME_ESC_RESERVED_LAST 0x7FF
245 #define IME_ESC_PRIVATE_FIRST 0x800
246 #define IME_ESC_PRIVATE_LAST 0xFFF
247 #define IME_ESC_SEQUENCE_TO_INTERNAL 0x1001
248 #define IME_ESC_GET_EUDC_DICTIONARY 0x1003
249 #define IME_ESC_SET_EUDC_DICTIONARY 0x1004
250 #define IME_ESC_MAX_KEY 0x1005
251 #define IME_ESC_IME_NAME 0x1006
252 #define IME_ESC_SYNC_HOTKEY 0x1007
253 #define IME_ESC_HANJA_MODE 0x1008
254 #define IME_ESC_AUTOMATA 0x1009
255 #define IME_REGWORD_STYLE_EUDC 1
256 #define IME_REGWORD_STYLE_USER_FIRST 0x80000000
257 #define IME_REGWORD_STYLE_USER_LAST 0xFFFFFFFF
258 #define SOFTKEYBOARD_TYPE_T1 1
259 #define SOFTKEYBOARD_TYPE_C1 2
260 #define MOD_IGNORE_ALL_MODIFIER 1024
261 #define MOD_ON_KEYUP  2048
262 #define MOD_RIGHT 16384
263 #define MOD_LEFT 32768
264 #define IACE_CHILDREN 1
265 #define IACE_DEFAULT 16
266 #define IACE_IGNORENOCONTEXT 32
267 #define IGIMIF_RIGHTMENU 1
268 #define IGIMII_CMODE 1
269 #define IGIMII_SMODE 2
270 #define IGIMII_CONFIGURE 4
271 #define IGIMII_TOOLS 8
272 #define IGIMII_HELP 16
273 #define IGIMII_OTHER 32
274 #define IGIMII_INPUTTOOLS 64
275 #define IMFT_RADIOCHECK 1
276 #define IMFT_SEPARATOR 2
277 #define IMFT_SUBMENU 4
278 #define IMFS_GRAYED MFS_GRAYED
279 #define IMFS_DISABLED MFS_DISABLED
280 #define IMFS_CHECKED MFS_CHECKED
281 #define IMFS_HILITE MFS_HILITE
282 #define IMFS_ENABLED MFS_ENABLED
283 #define IMFS_UNCHECKED MFS_UNCHECKED
284 #define IMFS_UNHILITE MFS_UNHILITE
285 #define IMFS_DEFAULT MFS_DEFAULT
286 #ifndef VK_PROCESSKEY
287 #define VK_PROCESSKEY 0x0E5
288 #endif
289 #define STYLE_DESCRIPTION_SIZE 32
290 #define IME_PROP_UNICODE 0x80000
291 
292 typedef DWORD HIMC;
293 typedef DWORD HIMCC;
294 typedef HKL *LPHKL;
295 typedef struct tagCOMPOSITIONFORM {
296 	DWORD dwStyle;
297 	POINT ptCurrentPos;
298 	RECT rcArea;
299 } COMPOSITIONFORM,*PCOMPOSITIONFORM,*LPCOMPOSITIONFORM;
300 typedef struct tagCANDIDATEFORM {
301 	DWORD dwIndex;
302 	DWORD dwStyle;
303 	POINT ptCurrentPos;
304 	RECT rcArea;
305 } CANDIDATEFORM,*PCANDIDATEFORM,*LPCANDIDATEFORM;
306 typedef struct tagCANDIDATELIST {
307 	DWORD dwSize;
308 	DWORD dwStyle;
309 	DWORD dwCount;
310 	DWORD dwSelection;
311 	DWORD dwPageStart;
312 	DWORD dwPageSize;
313 	DWORD dwOffset[1];
314 } CANDIDATELIST,*PCANDIDATELIST,*LPCANDIDATELIST;
315 typedef struct tagREGISTERWORDA {
316 	LPSTR lpReading;
317 	LPSTR lpWord;
318 } REGISTERWORDA,*PREGISTERWORDA,*LPREGISTERWORDA;
319 typedef struct tagREGISTERWORDW {
320 	LPWSTR lpReading;
321 	LPWSTR lpWord;
322 } REGISTERWORDW,*PREGISTERWORDW,*LPREGISTERWORDW;
323 typedef struct tagSTYLEBUFA {
324 	DWORD dwStyle;
325 	CHAR szDescription[STYLE_DESCRIPTION_SIZE];
326 } STYLEBUFA,*PSTYLEBUFA,*LPSTYLEBUFA;
327 typedef struct tagSTYLEBUFW {
328 	DWORD dwStyle;
329 	WCHAR szDescription[STYLE_DESCRIPTION_SIZE];
330 } STYLEBUFW,*PSTYLEBUFW,*LPSTYLEBUFW;
331 
332 #define IMEMENUITEM_STRING_SIZE 80
333 
334 typedef struct tagIMEMENUITEMINFOA {
335 	UINT cbSize;
336 	UINT fType;
337 	UINT fState;
338 	UINT wID;
339 	HBITMAP hbmpChecked;
340 	HBITMAP hbmpUnchecked;
341 	DWORD dwItemData;
342 	CHAR szString[IMEMENUITEM_STRING_SIZE];
343 	HBITMAP hbmpItem;
344 } IMEMENUITEMINFOA,*PIMEMENUITEMINFOA,*LPIMEMENUITEMINFOA;
345 typedef struct tagIMEMENUITEMINFOW {
346 	UINT cbSize;
347 	UINT fType;
348 	UINT fState;
349 	UINT wID;
350 	HBITMAP hbmpChecked;
351 	HBITMAP hbmpUnchecked;
352 	DWORD dwItemData;
353 	WCHAR szString[IMEMENUITEM_STRING_SIZE];
354 	HBITMAP hbmpItem;
355 } IMEMENUITEMINFOW,*PIMEMENUITEMINFOW,*LPIMEMENUITEMINFOW;
356 // http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceinternational5/html/wce50lrfCOMPOSITIONSTR.asp
357 
358 #endif // _IMM_SDK_DEFINED_
359 
360 #ifndef _IMM_DDK_DEFINED_
361 #define _IMM_DDK_DEFINED_
362 
363 //<comment author='b6s'> These two are not in imm.h
364 typedef const void *PCVOID, *LPCVOID;
365 #define IMMGWL_IMC 0
366 //</comment>
367 
368 // kanru
369 #define IME_PROP_KBD_CHAR_FIRST 2
370 // http://earlsoft.co.uk/api/constant.php?name=IME_PROP_UNICODE
371 
372 //<comment author='b6s'> Supply some missing definitions
373 #define IME_PROP_END_UNLOAD				0x0001
374 #define IME_PROP_COMPLETE_ON_UNSELECT	0x00100000
375 
376 #define INIT_STATUSWNDPOS				0x00000001
377 #define INIT_CONVERSION					0x00000002
378 #define INIT_SENTENCE						0x00000004
379 #define INIT_LOGFONT						0x00000008
380 #define INIT_COMPFORM						0x00000010
381 #define INIT_SOFTKBDPOS					0x00000020
382 
383 #define NI_CONTEXTUPDATED				0x0003
384 
385 #define IMC_SETCONVERSIONMODE			0x0002
386 #define IMC_SETSENTENCEMODE				0x0004
387 #define IMC_SETOPENSTATUS					0x0006
388 
389 #define IMMGWL_PRIVATE					(sizeof(LONG))
390 
391 #define IMN_SOFTKBDDESTROYED				0x0011
392 
393 typedef struct tagCOMPOSITIONSTR {
394   DWORD dwSize;
395   DWORD dwCompReadAttrLen;
396   DWORD dwCompReadAttrOffset;
397   DWORD dwCompReadClsLen;
398   DWORD dwCompReadClsOffset;
399   DWORD dwCompReadStrLen;
400   DWORD dwCompReadStrOffset;
401   DWORD dwCompAttrLen;
402   DWORD dwCompAttrOffset;
403   DWORD dwCompClsLen;
404   DWORD dwCompClsOffset;
405   DWORD dwCompStrLen;
406   DWORD dwCompStrOffset;
407   DWORD dwCursorPos;
408   DWORD dwDeltaStart;
409   DWORD dwResultReadClsLen;
410   DWORD dwResultReadClsOffset;
411   DWORD dwResultReadStrLen;
412   DWORD dwResultReadStrOffset;
413   DWORD dwResultClsLen;
414   DWORD dwResultClsOffset;
415   DWORD dwResultStrLen;
416   DWORD dwResultStrOffset;
417   DWORD dwPrivateSize;
418   DWORD dwPrivateOffset;
419 } COMPOSITIONSTRING, *LPCOMPOSITIONSTRING;
420 // http://msdn.microsoft.com/library/en-us/wceinternational5/html/wce50lrfCANDIDATEINFO.asp?frame=true
421 typedef struct tagCANDIDATEINFO {
422   DWORD dwSize;
423   DWORD dwCount;
424   DWORD dwOffset[32];
425   DWORD dwPrivateSize;
426   DWORD dwPrivateOffset;
427 } CANDIDATEINFO, *LPCANDIDATEINFO;
428 // http://msdn.microsoft.com/library/en-us/wceinternational5/html/wce50lrfINPUTCONTEXT.asp?frame=true
429 typedef struct tagINPUTCONTEXT{
430   HWND hWnd;
431   BOOL fOpen;
432   //HWND hwndImeInUse;
433   POINT ptStatusWndPos;
434   POINT ptSoftKbdPos;
435   DWORD fdwConversion;
436   DWORD fdwSentence;
437   union{
438     LOGFONTA A;
439     LOGFONTW W;
440   } lfFont;
441   COMPOSITIONFORM cfCompForm;
442   CANDIDATEFORM cfCandForm[4];
443   HIMCC hCompStr;
444   HIMCC hCandInfo;
445   HIMCC hGuideLine;
446   HIMCC hPrivate;
447   DWORD dwNumMsgBuf;
448   HIMCC hMsgBuf;
449   DWORD fdwInit;
450   DWORD dwReserve[3];
451 } INPUTCONTEXT, *PINPUTCONTEXT, NEAR *NPINPUTCONTEXT, FAR *LPINPUTCONTEXT;
452 // http://msdn.microsoft.com/workshop/misc/aimm/reference/structures/imeinfo.asp
453 typedef struct {
454     DWORD dwPrivateDataSize;
455     DWORD fdwProperty;
456     DWORD fdwConversionCaps; // fdwConverstionCaps
457     DWORD fdwSentenceCaps;
458     DWORD fdwUICaps;
459     DWORD fdwSCSCaps;
460     DWORD fdwSelectCaps;
461 } IMEINFO, *LPIMEINFO;
462 typedef int (CALLBACK *REGISTERWORDENUMPROCA)(LPCSTR, DWORD, LPCSTR, LPVOID);
463 typedef int (CALLBACK *REGISTERWORDENUMPROCW)(LPCWSTR, DWORD, LPCWSTR, LPVOID);
464 #ifdef UNICODE
465 #define REGISTERWORDENUMPROC REGISTERWORDENUMPROCW
466 typedef REGISTERWORDW REGISTERWORD,*PREGISTERWORD,*LPREGISTERWORD;
467 typedef STYLEBUFW STYLEBUF,*PSTYLEBUF,*LPSTYLEBUF;
468 typedef IMEMENUITEMINFOW IMEMENUITEMINFO,*PIMEMENUITEMINFO,*LPIMEMENUITEMINFO;
469 #else
470 #define REGISTERWORDENUMPROC REGISTERWORDENUMPROCA
471 typedef REGISTERWORDA REGISTERWORD,*PREGISTERWORD,*LPREGISTERWORD;
472 typedef STYLEBUFA STYLEBUF,*PSTYLEBUF,*LPSTYLEBUF;
473 typedef IMEMENUITEMINFOA IMEMENUITEMINFO,*PIMEMENUITEMINFO,*LPIMEMENUITEMINFO;
474 #endif
475 HKL WINAPI ImmInstallIMEA(LPCSTR,LPCSTR);
476 HKL WINAPI ImmInstallIMEW(LPCWSTR,LPCWSTR);
477 HWND WINAPI ImmGetDefaultIMEWnd(HWND);
478 UINT WINAPI ImmGetDescriptionA(HKL,LPSTR,UINT);
479 UINT WINAPI ImmGetDescriptionW(HKL,LPWSTR,UINT);
480 UINT WINAPI ImmGetIMEFileNameA(HKL,LPSTR,UINT);
481 UINT WINAPI ImmGetIMEFileNameW(HKL,LPWSTR,UINT);
482 DWORD WINAPI ImmGetProperty(HKL,DWORD);
483 BOOL WINAPI ImmIsIME(HKL);
484 BOOL WINAPI ImmSimulateHotKey(HWND,DWORD);
485 HIMC WINAPI ImmCreateContext(void);
486 BOOL WINAPI ImmDestroyContext(HIMC);
487 HIMC WINAPI ImmGetContext(HWND);
488 BOOL WINAPI ImmReleaseContext(HWND,HIMC);
489 HIMC WINAPI ImmAssociateContext(HWND,HIMC);
490 LONG WINAPI ImmGetCompositionStringA(HIMC,DWORD,PVOID,DWORD);
491 LONG WINAPI ImmGetCompositionStringW(HIMC,DWORD,PVOID,DWORD);
492 //BOOL WINAPI ImmSetCompositionStringA(HIMC,DWORD,PCVOID,DWORD,PCVOID,DWORD);
493 //BOOL WINAPI ImmSetCompositionStringW(HIMC,DWORD,PCVOID,DWORD,PCVOID,DWORD);
494 DWORD WINAPI ImmGetCandidateListCountA(HIMC,PDWORD);
495 DWORD WINAPI ImmGetCandidateListCountW(HIMC,PDWORD);
496 DWORD WINAPI ImmGetCandidateListA(HIMC,DWORD,PCANDIDATELIST,DWORD);
497 DWORD WINAPI ImmGetCandidateListW(HIMC,DWORD,PCANDIDATELIST,DWORD);
498 DWORD WINAPI ImmGetGuideLineA(HIMC,DWORD,LPSTR,DWORD);
499 DWORD WINAPI ImmGetGuideLineW(HIMC,DWORD,LPWSTR,DWORD);
500 BOOL WINAPI ImmGetConversionStatus(HIMC,LPDWORD,PDWORD);
501 BOOL WINAPI ImmSetConversionStatus(HIMC,DWORD,DWORD);
502 BOOL WINAPI ImmGetOpenStatus(HIMC);
503 BOOL WINAPI ImmSetOpenStatus(HIMC,BOOL);
504 #ifndef NOGDI
505 BOOL WINAPI ImmGetCompositionFontA(HIMC,LPLOGFONTA);
506 BOOL WINAPI ImmGetCompositionFontW(HIMC,LPLOGFONTW);
507 BOOL WINAPI ImmSetCompositionFontA(HIMC,LPLOGFONTA);
508 BOOL WINAPI ImmSetCompositionFontW(HIMC,LPLOGFONTW);
509 #endif
510 BOOL WINAPI ImmConfigureIMEA(HKL,HWND,DWORD,PVOID);
511 BOOL WINAPI ImmConfigureIMEW(HKL,HWND,DWORD,PVOID);
512 LRESULT WINAPI ImmEscapeA(HKL,HIMC,UINT,PVOID);
513 LRESULT WINAPI ImmEscapeW(HKL,HIMC,UINT,PVOID);
514 DWORD WINAPI ImmGetConversionListA(HKL,HIMC,LPCSTR,PCANDIDATELIST,DWORD,UINT);
515 DWORD WINAPI ImmGetConversionListW(HKL,HIMC,LPCWSTR,PCANDIDATELIST,DWORD,UINT);
516 BOOL WINAPI ImmNotifyIME(HIMC,DWORD,DWORD,DWORD);
517 BOOL WINAPI ImmGetStatusWindowPos(HIMC,LPPOINT);
518 BOOL WINAPI ImmSetStatusWindowPos(HIMC,LPPOINT);
519 BOOL WINAPI ImmGetCompositionWindow(HIMC,PCOMPOSITIONFORM);
520 BOOL WINAPI ImmSetCompositionWindow(HIMC,PCOMPOSITIONFORM);
521 BOOL WINAPI ImmGetCandidateWindow(HIMC,DWORD,PCANDIDATEFORM);
522 BOOL WINAPI ImmSetCandidateWindow(HIMC,PCANDIDATEFORM);
523 BOOL WINAPI ImmIsUIMessageA(HWND,UINT,WPARAM,LPARAM);
524 BOOL WINAPI ImmIsUIMessageW(HWND,UINT,WPARAM,LPARAM);
525 UINT WINAPI ImmGetVirtualKey(HWND);
526 BOOL WINAPI ImmRegisterWordA(HKL,LPCSTR,DWORD,LPCSTR);
527 BOOL WINAPI ImmRegisterWordW(HKL,LPCWSTR,DWORD,LPCWSTR);
528 BOOL WINAPI ImmUnregisterWordA(HKL,LPCSTR,DWORD,LPCSTR);
529 BOOL WINAPI ImmUnregisterWordW(HKL,LPCWSTR,DWORD,LPCWSTR);
530 UINT WINAPI ImmGetRegisterWordStyleA(HKL,UINT,PSTYLEBUFA);
531 UINT WINAPI ImmGetRegisterWordStyleW(HKL,UINT,PSTYLEBUFW);
532 UINT WINAPI ImmEnumRegisterWordA(HKL,REGISTERWORDENUMPROCA,LPCSTR,DWORD,LPCSTR,PVOID);
533 UINT WINAPI ImmEnumRegisterWordW(HKL,REGISTERWORDENUMPROCW,LPCWSTR,DWORD,LPCWSTR,PVOID);
534 BOOL WINAPI EnableEUDC(BOOL);
535 BOOL WINAPI ImmDisableIME(DWORD);
536 DWORD WINAPI ImmGetImeMenuItemsA(HIMC,DWORD,DWORD,LPIMEMENUITEMINFOA,LPIMEMENUITEMINFOA,DWORD);
537 DWORD WINAPI ImmGetImeMenuItemsW(HIMC,DWORD,DWORD,LPIMEMENUITEMINFOW,LPIMEMENUITEMINFOW,DWORD);
538 // http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceinternational5/html/wce50lrfImmLockIMC.asp
539 LPINPUTCONTEXT WINAPI ImmLockIMC(HIMC hIMC);
540 // http://msdn.microsoft.com/library/en-us/wceinternational5/html/wce50lrfImmReSizeIMCC.asp?frame=true
541 HIMCC WINAPI ImmReSizeIMCC(HIMCC hIMCC, DWORD dwSize);
542 // http://msdn.microsoft.com/library/en-us/wceinternational5/html/wce50lrfImmLockIMCC.asp?frame=true
543 LPVOID WINAPI ImmLockIMCC(HIMCC hIMCC);
544 // http://msdn.microsoft.com/library/en-us/wceinternational5/html/wce50lrfImmUnlockIMCC.asp?frame=true
545 BOOL WINAPI ImmUnlockIMCC(HIMCC hIMCC);
546 // http://msdn.microsoft.com/library/en-us/wceinternational5/html/wce50lrfImmUnlockIMC.asp?frame=true
547 BOOL WINAPI ImmUnlockIMC(HIMC hIMC);
548 // http://msdn.microsoft.com/library/en-us/wceinternational5/html/wce50lrfImmGenerateMessage.asp?frame=true
549 BOOL WINAPI ImmGenerateMessage(HIMC hIMC);
550 #ifdef UNICODE
551 #define ImmEnumRegisterWord ImmEnumRegisterWordW
552 #define ImmGetRegisterWordStyle ImmGetRegisterWordStyleW
553 #define ImmUnregisterWord ImmUnregisterWordW
554 #define ImmRegisterWord ImmRegisterWordW
555 #define ImmInstallIME ImmInstallIMEW
556 #define ImmIsUIMessage ImmIsUIMessageW
557 #define ImmGetConversionList ImmGetConversionListW
558 #define ImmEscape ImmEscapeW
559 #define ImmConfigureIME ImmConfigureIMEW
560 #ifndef NOGDI
561 #define ImmSetCompositionFont ImmSetCompositionFontW
562 #define ImmGetCompositionFont ImmGetCompositionFontW
563 #endif
564 #define ImmGetGuideLine ImmGetGuideLineW
565 #define ImmGetCandidateList ImmGetCandidateListW
566 #define ImmGetCandidateListCount ImmGetCandidateListCountW
567 #define ImmSetCompositionString ImmSetCompositionStringW
568 #define ImmGetCompositionString ImmGetCompositionStringW
569 #define ImmGetDescription ImmGetDescriptionW
570 #define ImmGetIMEFileName ImmGetIMEFileNameW
571 #define ImmGetImeMenuItems ImmGetImeMenuItemsW
572 #else
573 #define ImmEnumRegisterWord ImmEnumRegisterWordA
574 #define ImmGetRegisterWordStyle ImmGetRegisterWordStyleA
575 #define ImmUnregisterWord ImmUnregisterWordA
576 #define ImmRegisterWord ImmRegisterWordA
577 #define ImmInstallIME ImmInstallIMEA
578 #define ImmIsUIMessage ImmIsUIMessageA
579 #define ImmGetConversionList ImmGetConversionListA
580 #define ImmEscape ImmEscapeA
581 #define ImmConfigureIME ImmConfigureIMEA
582 #ifndef NOGDI
583 #define ImmSetCompositionFont ImmSetCompositionFontA
584 #define ImmGetCompositionFont ImmGetCompositionFontA
585 #endif
586 #define ImmGetGuideLine ImmGetGuideLineA
587 #define ImmGetCandidateList ImmGetCandidateListA
588 #define ImmGetCandidateListCount ImmGetCandidateListCountA
589 #define ImmSetCompositionString ImmSetCompositionStringA
590 #define ImmGetCompositionString ImmGetCompositionStringA
591 #define ImmGetDescription ImmGetDescriptionA
592 #define ImmGetIMEFileName ImmGetIMEFileNameA
593 #define ImmGetImeMenuItems ImmGetImeMenuItemsW
594 #endif
595 #ifdef __cplusplus
596 }
597 #endif
598 
599 #endif //_IMM_DDK_DEFINED_
600 #endif // _IMMDEV_
601