home *** CD-ROM | disk | FTP | other *** search
/ Beginning C++ Through Gam…rogramming (2nd Edition) / BCGP2E.ISO / bloodshed / devcpp-4.9.9.2_setup.exe / imm.h < prev    next >
C/C++ Source or Header  |  2005-01-29  |  15KB  |  434 lines

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