Home | History | Annotate | Download | only in include
      1 /**
      2  * This file has no copyright assigned and is placed in the Public Domain.
      3  * This file is part of the mingw-w64 runtime package.
      4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
      5  */
      6 #ifndef _IME_
      7 #define _IME_
      8 
      9 #include <_mingw_unicode.h>
     10 
     11 #ifdef __cplusplus
     12 extern "C" {
     13 #endif
     14 
     15 #ifndef _WINDEF_
     16   typedef unsigned int UINT;
     17 #endif
     18 
     19 #define IME_MAXPROCESS 32
     20 
     21 #define SendIMEMessageEx __MINGW_NAME_AW(SendIMEMessageEx)
     22 
     23   LRESULT WINAPI SendIMEMessageExA(HWND,LPARAM);
     24   LRESULT WINAPI SendIMEMessageExW(HWND,LPARAM);
     25 
     26   typedef struct tagIMESTRUCT {
     27     UINT fnc;
     28     WPARAM wParam;
     29     UINT wCount;
     30     UINT dchSource;
     31     UINT dchDest;
     32     LPARAM lParam1;
     33     LPARAM lParam2;
     34     LPARAM lParam3;
     35   } IMESTRUCT,*PIMESTRUCT,*NPIMESTRUCT,*LPIMESTRUCT;
     36 
     37 #define CP_HWND 0
     38 #define CP_OPEN 1
     39 #define CP_DIRECT 2
     40 #define CP_LEVEL 3
     41 
     42 #if !defined(VK_DBE_ALPHANUMERIC)
     43 #define VK_DBE_ALPHANUMERIC 0x0f0
     44 #define VK_DBE_KATAKANA 0x0f1
     45 #define VK_DBE_HIRAGANA 0x0f2
     46 #define VK_DBE_SBCSCHAR 0x0f3
     47 #define VK_DBE_DBCSCHAR 0x0f4
     48 #define VK_DBE_ROMAN 0x0f5
     49 #define VK_DBE_NOROMAN 0x0f6
     50 #define VK_DBE_ENTERWORDREGISTERMODE 0x0f7
     51 #define VK_DBE_ENTERIMECONFIGMODE 0x0f8
     52 #define VK_DBE_FLUSHSTRING 0x0f9
     53 #define VK_DBE_CODEINPUT 0x0fa
     54 #define VK_DBE_NOCODEINPUT 0x0fb
     55 #define VK_DBE_DETERMINESTRING 0x0fc
     56 #define VK_DBE_ENTERDLGCONVERSIONMODE 0x0fd
     57 #endif
     58 
     59 #define MCW_DEFAULT 0x00
     60 #define MCW_RECT 0x01
     61 #define MCW_WINDOW 0x02
     62 #define MCW_SCREEN 0x04
     63 #define MCW_VERTICAL 0x08
     64 #define MCW_HIDDEN 0x10
     65 
     66 #define IME_MODE_ALPHANUMERIC 0x0001
     67 
     68 #ifdef KOREA
     69 #define IME_MODE_SBCSCHAR 0x0002
     70 #else
     71 #define IME_MODE_SBCSCHAR 0x0008
     72 #endif
     73 
     74 #define IME_MODE_KATAKANA 0x0002
     75 #define IME_MODE_HIRAGANA 0x0004
     76 #define IME_MODE_HANJACONVERT 0x0004
     77 #define IME_MODE_DBCSCHAR 0x0010
     78 #define IME_MODE_ROMAN 0x0020
     79 #define IME_MODE_NOROMAN 0x0040
     80 #define IME_MODE_CODEINPUT 0x0080
     81 #define IME_MODE_NOCODEINPUT 0x0100
     82 
     83 #define IME_GETIMECAPS 0x03
     84 #define IME_SETOPEN 0x04
     85 #define IME_GETOPEN 0x05
     86 #define IME_GETVERSION 0x07
     87 #define IME_SETCONVERSIONWINDOW 0x08
     88 #define IME_MOVEIMEWINDOW IME_SETCONVERSIONWINDOW
     89 #define IME_SETCONVERSIONMODE 0x10
     90 
     91 #define IME_GETCONVERSIONMODE 0x11
     92 #define IME_SET_MODE 0x12
     93 #define IME_SENDVKEY 0x13
     94 #define IME_ENTERWORDREGISTERMODE 0x18
     95 #define IME_SETCONVERSIONFONTEX 0x19
     96 
     97 #define IME_BANJAtoJUNJA 0x13
     98 #define IME_JUNJAtoBANJA 0x14
     99 #define IME_JOHABtoKS 0x15
    100 #define IME_KStoJOHAB 0x16
    101 
    102 #define IMEA_INIT 0x01
    103 #define IMEA_NEXT 0x02
    104 #define IMEA_PREV 0x03
    105 
    106 #define IME_REQUEST_CONVERT 0x01
    107 #define IME_ENABLE_CONVERT 0x02
    108 
    109 #define INTERIM_WINDOW 0x00
    110 #define MODE_WINDOW 0x01
    111 #define HANJA_WINDOW 0x02
    112 
    113 #define IME_RS_ERROR 0x01
    114 #define IME_RS_NOIME 0x02
    115 #define IME_RS_TOOLONG 0x05
    116 #define IME_RS_ILLEGAL 0x06
    117 #define IME_RS_NOTFOUND 0x07
    118 #define IME_RS_NOROOM 0x0a
    119 #define IME_RS_DISKERROR 0x0e
    120 #define IME_RS_INVALID 0x11
    121 #define IME_RS_NEST 0x12
    122 #define IME_RS_SYSTEMMODAL 0x13
    123 
    124 #define WM_IME_REPORT 0x0280
    125 
    126 #define IR_STRINGSTART 0x100
    127 #define IR_STRINGEND 0x101
    128 #define IR_OPENCONVERT 0x120
    129 #define IR_CHANGECONVERT 0x121
    130 #define IR_CLOSECONVERT 0x122
    131 #define IR_FULLCONVERT 0x123
    132 #define IR_IMESELECT 0x130
    133 #define IR_STRING 0x140
    134 #define IR_DBCSCHAR 0x160
    135 #define IR_UNDETERMINE 0x170
    136 #define IR_STRINGEX 0x180
    137 #define IR_MODEINFO 0x190
    138 
    139 #define WM_WNT_CONVERTREQUESTEX 0x0109
    140 #define WM_CONVERTREQUEST 0x010A
    141 #define WM_CONVERTRESULT 0x010B
    142 #define WM_INTERIM 0x010C
    143 
    144 #define WM_IMEKEYDOWN 0x290
    145 #define WM_IMEKEYUP 0x291
    146 
    147   typedef struct tagUNDETERMINESTRUCT {
    148     DWORD dwSize;
    149     UINT uDefIMESize;
    150     UINT uDefIMEPos;
    151     UINT uUndetTextLen;
    152     UINT uUndetTextPos;
    153     UINT uUndetAttrPos;
    154     UINT uCursorPos;
    155     UINT uDeltaStart;
    156     UINT uDetermineTextLen;
    157     UINT uDetermineTextPos;
    158     UINT uDetermineDelimPos;
    159     UINT uYomiTextLen;
    160     UINT uYomiTextPos;
    161     UINT uYomiDelimPos;
    162   } UNDETERMINESTRUCT,*PUNDETERMINESTRUCT,*NPUNDETERMINESTRUCT,*LPUNDETERMINESTRUCT;
    163 
    164   typedef struct tagSTRINGEXSTRUCT {
    165     DWORD dwSize;
    166     UINT uDeterminePos;
    167     UINT uDetermineDelimPos;
    168     UINT uYomiPos;
    169     UINT uYomiDelimPos;
    170   } STRINGEXSTRUCT,*NPSTRINGEXSTRUCT,*LPSTRINGEXSTRUCT;
    171 
    172 #ifdef __cplusplus
    173 }
    174 #endif
    175 #endif
    176