Artifact Content

Not logged in

Artifact 6732090e27c6d34ad32b961b3f344574fa2655de


     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_