home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Internet 2000 May / MICD_2000_05.iso / CBuilder5 / INSTALL / DATA1.CAB / Program_Built_Files / Include / ime.h < prev    next >
C/C++ Source or Header  |  2000-02-01  |  7KB  |  241 lines

  1. /*++ BUILD Version: 0003    // Increment this if a change has global effects
  2.  
  3. Copyright (c) 1985 - 1999, Microsoft Corporation
  4.  
  5. Module Name:
  6.  
  7.     ime.h
  8.  
  9. Abstract:
  10.  
  11.     Procedure declarations, constant definitions and macros for the IME
  12.     component.
  13.  
  14. --*/
  15.  
  16. #ifndef _IME_
  17. #pragma option push -b -a8 -pc -A- /*P_O_Push*/
  18. #define _IME_
  19.  
  20. #ifdef __cplusplus
  21. extern "C" {
  22. #endif /* __cplusplus */
  23.  
  24.  
  25. #ifndef _WINDEF_
  26. typedef unsigned int UINT;
  27. #endif // _WINDEF_
  28.  
  29. #define IME_MAXPROCESS 32
  30.  
  31. LRESULT WINAPI SendIMEMessageExA( IN HWND, IN LPARAM);
  32. LRESULT WINAPI SendIMEMessageExW( IN HWND, IN LPARAM);
  33. #ifdef UNICODE
  34. #define SendIMEMessageEx  SendIMEMessageExW
  35. #else
  36. #define SendIMEMessageEx  SendIMEMessageExA
  37. #endif // !UNICODE
  38.  
  39. //
  40. // IMESTRUCT structure for SendIMEMessageEx
  41. //
  42. typedef struct tagIMESTRUCT {
  43.     UINT     fnc;        // function code
  44.     WPARAM   wParam;     // word parameter
  45.     UINT     wCount;     // word counter
  46.     UINT     dchSource;  // offset to Source from top of memory object
  47.     UINT     dchDest;    // offset to Desrination from top of memory object
  48.     LPARAM   lParam1;
  49.     LPARAM   lParam2;
  50.     LPARAM   lParam3;
  51. } IMESTRUCT,*PIMESTRUCT,NEAR *NPIMESTRUCT,FAR *LPIMESTRUCT;
  52.  
  53.  
  54.  
  55. #define CP_HWND                 0
  56. #define CP_OPEN                 1
  57. #define CP_DIRECT               2
  58. #define CP_LEVEL                3
  59.  
  60.  
  61. //
  62. //      Virtual Keys
  63. //
  64.  
  65. #define VK_DBE_ALPHANUMERIC              0x0f0
  66. #define VK_DBE_KATAKANA                  0x0f1
  67. #define VK_DBE_HIRAGANA                  0x0f2
  68. #define VK_DBE_SBCSCHAR                  0x0f3
  69. #define VK_DBE_DBCSCHAR                  0x0f4
  70. #define VK_DBE_ROMAN                     0x0f5
  71. #define VK_DBE_NOROMAN                   0x0f6
  72. #define VK_DBE_ENTERWORDREGISTERMODE     0x0f7
  73. #define VK_DBE_ENTERIMECONFIGMODE        0x0f8
  74. #define VK_DBE_FLUSHSTRING               0x0f9
  75. #define VK_DBE_CODEINPUT                 0x0fa
  76. #define VK_DBE_NOCODEINPUT               0x0fb
  77. #define VK_DBE_DETERMINESTRING           0x0fc
  78. #define VK_DBE_ENTERDLGCONVERSIONMODE    0x0fd
  79.  
  80.  
  81.  
  82. //
  83. //     switch for wParam of IME_SETCONVERSIONWINDOW
  84. //
  85. #define MCW_DEFAULT             0x00
  86. #define MCW_RECT                0x01
  87. #define MCW_WINDOW              0x02
  88. #define MCW_SCREEN              0x04
  89. #define MCW_VERTICAL            0x08
  90. #define MCW_HIDDEN              0x10
  91.  
  92. //
  93. //    switch for wParam of IME_SETCONVERSIONMODE
  94. //       and IME_GETCONVERSIONMODE
  95. //
  96. #define IME_MODE_ALPHANUMERIC   0x0001
  97.  
  98. #ifdef KOREA    // BeomOh - 9/29/92
  99. #define IME_MODE_SBCSCHAR       0x0002
  100. #else
  101. #define IME_MODE_SBCSCHAR       0x0008
  102. #endif
  103.  
  104. #define IME_MODE_KATAKANA       0x0002
  105. #define IME_MODE_HIRAGANA       0x0004
  106. #define IME_MODE_HANJACONVERT   0x0004
  107. #define IME_MODE_DBCSCHAR       0x0010
  108. #define IME_MODE_ROMAN          0x0020
  109. #define IME_MODE_NOROMAN        0x0040
  110. #define IME_MODE_CODEINPUT      0x0080
  111. #define IME_MODE_NOCODEINPUT    0x0100
  112. //
  113. //
  114.  
  115. //
  116. //     IME APIs
  117. //
  118. #define IME_GETIMECAPS            0x03
  119. #define IME_SETOPEN               0x04
  120. #define IME_GETOPEN               0x05
  121. #define IME_GETVERSION            0x07
  122. #define IME_SETCONVERSIONWINDOW   0x08
  123. #define IME_MOVEIMEWINDOW         IME_SETCONVERSIONWINDOW       // KOREA only
  124. #define IME_SETCONVERSIONMODE     0x10
  125.  
  126. #define IME_GETCONVERSIONMODE     0x11
  127. #define IME_SET_MODE              0x12          // KOREA only
  128. #define IME_SENDVKEY              0x13
  129. #define IME_ENTERWORDREGISTERMODE 0x18
  130. #define IME_SETCONVERSIONFONTEX   0x19
  131.  
  132. //
  133. // IME_CODECONVERT subfunctions
  134. //
  135. #define IME_BANJAtoJUNJA        0x13            // KOREA only
  136. #define IME_JUNJAtoBANJA        0x14            // KOREA only
  137. #define IME_JOHABtoKS           0x15            // KOREA only
  138. #define IME_KStoJOHAB           0x16            // KOREA only
  139.  
  140. //
  141. // IME_AUTOMATA subfunctions
  142. //
  143. #define IMEA_INIT               0x01            // KOREA only
  144. #define IMEA_NEXT               0x02            // KOREA only
  145. #define IMEA_PREV               0x03            // KOREA only
  146.  
  147. //
  148. // IME_HANJAMODE subfunctions
  149. //
  150. #define IME_REQUEST_CONVERT     0x01            // KOREA only
  151. #define IME_ENABLE_CONVERT      0x02            // KOREA only
  152.  
  153. //
  154. // IME_MOVEIMEWINDOW subfunctions
  155. //
  156. #define INTERIM_WINDOW          0x00            // KOREA only
  157. #define MODE_WINDOW             0x01            // KOREA only
  158. #define HANJA_WINDOW            0x02            // KOREA only
  159.  
  160. //
  161. //    error code
  162. //
  163. #define IME_RS_ERROR            0x01    // genetal error
  164. #define IME_RS_NOIME            0x02    // IME is not installed
  165. #define IME_RS_TOOLONG          0x05    // given string is too long
  166. #define IME_RS_ILLEGAL          0x06    // illegal charactor(s) is string
  167. #define IME_RS_NOTFOUND         0x07    // no (more) candidate
  168. #define IME_RS_NOROOM           0x0a    // no disk/memory space
  169. #define IME_RS_DISKERROR        0x0e    // disk I/O error
  170. #define IME_RS_INVALID          0x11    // Win3.1/NT
  171. #define IME_RS_NEST             0x12    // called nested
  172. #define IME_RS_SYSTEMMODAL      0x13    // called when system mode
  173.  
  174. //
  175. //   report messge from IME to WinApps
  176. //
  177. #define WM_IME_REPORT       0x0280
  178.  
  179. //
  180. //   report message parameter for WM_IME_REPORT
  181. //
  182. #define IR_STRINGSTART      0x100
  183. #define IR_STRINGEND        0x101
  184. #define IR_OPENCONVERT      0x120
  185. #define IR_CHANGECONVERT    0x121
  186. #define IR_CLOSECONVERT     0x122
  187. #define IR_FULLCONVERT      0x123
  188. #define IR_IMESELECT        0x130
  189. #define IR_STRING       0x140
  190. #define IR_DBCSCHAR             0x160
  191. #define IR_UNDETERMINE          0x170
  192. #define IR_STRINGEX             0x180   // New for 3.1
  193. #define IR_MODEINFO             0x190
  194.  
  195. //#define WM_CONVERTREQUESTEX     0x0109
  196. #define WM_WNT_CONVERTREQUESTEX 0x0109 /* WM_CONVERTREQUESTEX: 109 for NT, 108 for OT */
  197. #define WM_CONVERTREQUEST       0x010A
  198. #define WM_CONVERTRESULT        0x010B
  199. #define WM_INTERIM              0x010C
  200.  
  201. #define WM_IMEKEYDOWN           0x290
  202. #define WM_IMEKEYUP             0x291
  203.  
  204.  
  205. //
  206. // UNDETERMINESTRING structure for IR_UNDETERMINE
  207. //
  208. typedef struct tagUNDETERMINESTRUCT {
  209.     DWORD    dwSize;
  210.     UINT     uDefIMESize;
  211.     UINT     uDefIMEPos;
  212.     UINT     uUndetTextLen;
  213.     UINT     uUndetTextPos;
  214.     UINT     uUndetAttrPos;
  215.     UINT     uCursorPos;
  216.     UINT     uDeltaStart;
  217.     UINT     uDetermineTextLen;
  218.     UINT     uDetermineTextPos;
  219.     UINT     uDetermineDelimPos;
  220.     UINT     uYomiTextLen;
  221.     UINT     uYomiTextPos;
  222.     UINT     uYomiDelimPos;
  223. } UNDETERMINESTRUCT,*PUNDETERMINESTRUCT,NEAR *NPUNDETERMINESTRUCT,FAR *LPUNDETERMINESTRUCT;
  224.  
  225.  
  226. typedef struct tagSTRINGEXSTRUCT {
  227.     DWORD    dwSize;
  228.     UINT     uDeterminePos;
  229.     UINT     uDetermineDelimPos;
  230.     UINT     uYomiPos;
  231.     UINT     uYomiDelimPos;
  232. } STRINGEXSTRUCT,NEAR *NPSTRINGEXSTRUCT,FAR *LPSTRINGEXSTRUCT;
  233.  
  234. #ifdef __cplusplus
  235. }
  236. #endif  /* __cplusplus */
  237.  
  238. #pragma option pop /*P_O_Pop*/
  239. #endif // _IME_
  240.  
  241.