|
@@ -0,0 +1,652 @@
|
|
|
+(********************************************************************* *)
|
|
|
+(* imm.h - Input Method Manager definitions *)
|
|
|
+(* *)
|
|
|
+(* Copyright (c) Microsoft Corporation. All rights reserved. *)
|
|
|
+(* *)
|
|
|
+(* Converted to pascal by Dmitry Boyarintsev, using Chelper. *)
|
|
|
+(* *)
|
|
|
+(********************************************************************* *)
|
|
|
+
|
|
|
+unit
|
|
|
+ imm;
|
|
|
+
|
|
|
+{$mode delphi}
|
|
|
+
|
|
|
+interface
|
|
|
+
|
|
|
+uses
|
|
|
+ Windows;
|
|
|
+
|
|
|
+{$PACKRECORDS C}
|
|
|
+
|
|
|
+// IME_Codes
|
|
|
+// bit field for conversion mode
|
|
|
+const
|
|
|
+ IME_CMODE_ALPHANUMERIC = $0000;
|
|
|
+ IME_CMODE_NATIVE = $0001;
|
|
|
+ IME_CMODE_CHINESE = IME_CMODE_NATIVE;
|
|
|
+ IME_CMODE_HANGUL = IME_CMODE_NATIVE;
|
|
|
+ IME_CMODE_JAPANESE = IME_CMODE_NATIVE;
|
|
|
+ IME_CMODE_KATAKANA = $0002; // only effect under IME_CMODE_NATIVE
|
|
|
+ IME_CMODE_LANGUAGE = $0003;
|
|
|
+ IME_CMODE_FULLSHAPE = $0008;
|
|
|
+ IME_CMODE_ROMAN = $0010;
|
|
|
+ IME_CMODE_CHARCODE = $0020;
|
|
|
+ IME_CMODE_HANJACONVERT = $0040;
|
|
|
+
|
|
|
+type
|
|
|
+ HIMC = DWORD;
|
|
|
+ HIMCC = DWORD;
|
|
|
+
|
|
|
+type
|
|
|
+ PHKL = ^HKL;
|
|
|
+ LPHKL = PHKL;
|
|
|
+
|
|
|
+type
|
|
|
+ LPUINT = PUINT;
|
|
|
+
|
|
|
+// declared at rtl\win\wininc\struct.inc
|
|
|
+{type
|
|
|
+ PtagCOMPOSITIONFORM = ^tagCOMPOSITIONFORM;
|
|
|
+ tagCOMPOSITIONFORM = record
|
|
|
+ dwStyle : DWORD;
|
|
|
+ ptCurrentPos : POINT;
|
|
|
+ rcArea : RECT;
|
|
|
+ end;
|
|
|
+ COMPOSITIONFORM = tagCOMPOSITIONFORM;
|
|
|
+ PCOMPOSITIONFORM = PtagCOMPOSITIONFORM;
|
|
|
+ NPCOMPOSITIONFORM = PtagCOMPOSITIONFORM;
|
|
|
+ LPCOMPOSITIONFORM = PtagCOMPOSITIONFORM;}
|
|
|
+
|
|
|
+// declared at rtl\win\wininc\struct.inc
|
|
|
+{type
|
|
|
+ PtagCANDIDATEFORM = ^tagCANDIDATEFORM;
|
|
|
+ tagCANDIDATEFORM = packed record
|
|
|
+ dwIndex : DWORD;
|
|
|
+ dwStyle : DWORD;
|
|
|
+ ptCurrentPos : POINT;
|
|
|
+ rcArea : RECT;
|
|
|
+ end;
|
|
|
+ CANDIDATEFORM = tagCANDIDATEFORM;
|
|
|
+ PCANDIDATEFORM = PtagCANDIDATEFORM;
|
|
|
+ NPCANDIDATEFORM = PtagCANDIDATEFORM;
|
|
|
+ LPCANDIDATEFORM = PtagCANDIDATEFORM;}
|
|
|
+
|
|
|
+
|
|
|
+// declared at rtl\win\wininc\struct.inc
|
|
|
+{type
|
|
|
+ PtagCANDIDATELIST = ^tagCANDIDATELIST;
|
|
|
+ tagCANDIDATELIST = packed record
|
|
|
+ dwSize : DWORD;
|
|
|
+ dwStyle : DWORD;
|
|
|
+ dwCount : DWORD;
|
|
|
+ dwSelection : DWORD;
|
|
|
+ dwPageStart : DWORD;
|
|
|
+ dwPageSize : DWORD;
|
|
|
+ dwOffset : array [0..0] of DWORD;
|
|
|
+ end;
|
|
|
+ CANDIDATELIST = tagCANDIDATELIST;
|
|
|
+ PCANDIDATELIST = PtagCANDIDATELIST;
|
|
|
+ NPCANDIDATELIST = PtagCANDIDATELIST;
|
|
|
+ LPCANDIDATELIST = PtagCANDIDATELIST;}
|
|
|
+
|
|
|
+
|
|
|
+type
|
|
|
+ PtagREGISTERWORDA = ^tagREGISTERWORDA;
|
|
|
+ tagREGISTERWORDA = packed record
|
|
|
+ lpReading : LPSTR;
|
|
|
+ lpWord : LPSTR;
|
|
|
+ end;
|
|
|
+ REGISTERWORDA = tagREGISTERWORDA;
|
|
|
+ TREGISTERWORDA = REGISTERWORDA;
|
|
|
+ PREGISTERWORDA = PtagREGISTERWORDA;
|
|
|
+ NPREGISTERWORDA = PtagREGISTERWORDA;
|
|
|
+ LPREGISTERWORDA = PtagREGISTERWORDA;
|
|
|
+
|
|
|
+type
|
|
|
+ PtagREGISTERWORDW = ^tagREGISTERWORDW;
|
|
|
+ tagREGISTERWORDW = packed record
|
|
|
+ lpReading : LPWSTR;
|
|
|
+ lpWord : LPWSTR;
|
|
|
+ end;
|
|
|
+ REGISTERWORDW = tagREGISTERWORDW;
|
|
|
+ TREGISTERWORDW = REGISTERWORDW;
|
|
|
+ PREGISTERWORDW = PtagREGISTERWORDW;
|
|
|
+ NPREGISTERWORDW = PtagREGISTERWORDW;
|
|
|
+ LPREGISTERWORDW = PtagREGISTERWORDW;
|
|
|
+
|
|
|
+type
|
|
|
+ PtagRECONVERTSTRING = ^tagRECONVERTSTRING;
|
|
|
+ tagRECONVERTSTRING = packed record
|
|
|
+ dwSize : DWORD;
|
|
|
+ dwVersion : DWORD;
|
|
|
+ dwStrLen : DWORD;
|
|
|
+ dwStrOffset : DWORD;
|
|
|
+ dwCompStrLen : DWORD;
|
|
|
+ dwCompStrOffset : DWORD;
|
|
|
+ dwTargetStrLen : DWORD;
|
|
|
+ dwTargetStrOffset : DWORD;
|
|
|
+ end;
|
|
|
+ RECONVERTSTRING = tagRECONVERTSTRING;
|
|
|
+ TRECONVERTSTRING = RECONVERTSTRING;
|
|
|
+ PRECONVERTSTRING = PtagRECONVERTSTRING;
|
|
|
+ NPRECONVERTSTRING = PtagRECONVERTSTRING;
|
|
|
+ LPRECONVERTSTRING = PtagRECONVERTSTRING;
|
|
|
+
|
|
|
+const
|
|
|
+ STYLE_DESCRIPTION_SIZE = 32;
|
|
|
+
|
|
|
+type
|
|
|
+ PtagSTYLEBUFA = ^tagSTYLEBUFA;
|
|
|
+ tagSTYLEBUFA = packed record
|
|
|
+ dwStyle : DWORD;
|
|
|
+ szDescription : array [0..STYLE_DESCRIPTION_SIZE-1] of AnsiChar;
|
|
|
+ end;
|
|
|
+ STYLEBUFA = tagSTYLEBUFA;
|
|
|
+ TSTYLEBUFA = STYLEBUFA;
|
|
|
+ PSTYLEBUFA = PtagSTYLEBUFA;
|
|
|
+ NPSTYLEBUFA = PtagSTYLEBUFA;
|
|
|
+ LPSTYLEBUFA = PtagSTYLEBUFA;
|
|
|
+
|
|
|
+type
|
|
|
+ PtagSTYLEBUFW = ^tagSTYLEBUFW;
|
|
|
+ tagSTYLEBUFW = packed record
|
|
|
+ dwStyle : DWORD;
|
|
|
+ szDescription : array [0..STYLE_DESCRIPTION_SIZE-1] of WCHAR;
|
|
|
+ end;
|
|
|
+ STYLEBUFW = tagSTYLEBUFW;
|
|
|
+ TSTYLEBUFW = STYLEBUFW;
|
|
|
+ PSTYLEBUFW = PtagSTYLEBUFW;
|
|
|
+ NPSTYLEBUFW = PtagSTYLEBUFW;
|
|
|
+ LPSTYLEBUFW = PtagSTYLEBUFW;
|
|
|
+
|
|
|
+const
|
|
|
+ IMEMENUITEM_STRING_SIZE = 80;
|
|
|
+
|
|
|
+type
|
|
|
+ PtagIMEMENUITEMINFOA = ^tagIMEMENUITEMINFOA;
|
|
|
+ tagIMEMENUITEMINFOA = packed record
|
|
|
+ cbSize : UINT;
|
|
|
+ fType : UINT;
|
|
|
+ fState : UINT;
|
|
|
+ wID : UINT;
|
|
|
+ hbmpChecked : HBITMAP;
|
|
|
+ hbmpUnchecked : HBITMAP;
|
|
|
+ dwItemData : DWORD;
|
|
|
+ szString : array [0..IMEMENUITEM_STRING_SIZE-1] of AnsiChar;
|
|
|
+ hbmpItem : HBITMAP;
|
|
|
+ end;
|
|
|
+ IMEMENUITEMINFOA = tagIMEMENUITEMINFOA;
|
|
|
+ TIMEMENUITEMINFOA = IMEMENUITEMINFOA;
|
|
|
+ PIMEMENUITEMINFOA = PtagIMEMENUITEMINFOA;
|
|
|
+ NPIMEMENUITEMINFOA = PtagIMEMENUITEMINFOA;
|
|
|
+ LPIMEMENUITEMINFOA = PtagIMEMENUITEMINFOA;
|
|
|
+
|
|
|
+type
|
|
|
+ PtagIMEMENUITEMINFOW = ^tagIMEMENUITEMINFOW;
|
|
|
+ tagIMEMENUITEMINFOW = packed record
|
|
|
+ cbSize : UINT;
|
|
|
+ fType : UINT;
|
|
|
+ fState : UINT;
|
|
|
+ wID : UINT;
|
|
|
+ hbmpChecked : HBITMAP;
|
|
|
+ hbmpUnchecked : HBITMAP;
|
|
|
+ dwItemData : DWORD;
|
|
|
+ szString : array [0..IMEMENUITEM_STRING_SIZE-1] of WCHAR;
|
|
|
+ hbmpItem : HBITMAP;
|
|
|
+ end;
|
|
|
+ IMEMENUITEMINFOW = tagIMEMENUITEMINFOW;
|
|
|
+ TIMEMENUITEMINFOW = IMEMENUITEMINFOW;
|
|
|
+ PIMEMENUITEMINFOW = PtagIMEMENUITEMINFOW;
|
|
|
+ NPIMEMENUITEMINFOW = PtagIMEMENUITEMINFOW;
|
|
|
+ LPIMEMENUITEMINFOW = PtagIMEMENUITEMINFOW;
|
|
|
+
|
|
|
+type
|
|
|
+ PtagIMECHARPOSITION = ^tagIMECHARPOSITION;
|
|
|
+ tagIMECHARPOSITION = packed record
|
|
|
+ dwSize : DWORD;
|
|
|
+ dwCharPos : DWORD;
|
|
|
+ pt : POINT;
|
|
|
+ cLineHeight : UINT;
|
|
|
+ rcDocument : RECT;
|
|
|
+ end;
|
|
|
+ IMECHARPOSITION = tagIMECHARPOSITION;
|
|
|
+ TIMECHARPOSITION = IMECHARPOSITION;
|
|
|
+ PIMECHARPOSITION = PtagIMECHARPOSITION;
|
|
|
+ NPIMECHARPOSITION = PtagIMECHARPOSITION;
|
|
|
+ LPIMECHARPOSITION = PtagIMECHARPOSITION;
|
|
|
+
|
|
|
+type
|
|
|
+ IMCENUMPROC = function(par0: HIMC; par1: LPARAM): LongBool; stdcall;
|
|
|
+ TIMCENUMPROC = IMCENUMPROC;
|
|
|
+
|
|
|
+// prototype of IMM API
|
|
|
+
|
|
|
+const
|
|
|
+ Imm = 'imm32';
|
|
|
+
|
|
|
+function ImmInstallIMEA(lpszIMEFileName, lpszLayoutText: LPCSTR): HKL; stdcall; external Imm name 'ImmInstallIMEA';
|
|
|
+function ImmInstallIMEW(lpszIMEFileName, lpszLayoutText: LPCWSTR): HKL; stdcall; external Imm name 'ImmInstallIMEW';
|
|
|
+function ImmGetDefaultIMEWnd(wnd: HWND): HWND; stdcall; external Imm name 'ImmGetDefaultIMEWnd';
|
|
|
+function ImmGetDescriptionA(kl: HKL; lpszDescription: LPSTR; uBufLen: UINT): UINT; stdcall; external Imm name 'ImmGetDescriptionA';
|
|
|
+function ImmGetDescriptionW(kl: HKL; lpszDescription: LPWSTR; uBufLen: UINT): UINT; stdcall; external Imm name 'ImmGetDescriptionW';
|
|
|
+
|
|
|
+function ImmGetIMEFileNameA(kl: HKL; lpszFileName: LPSTR; uBufLen: UINT): UINT; stdcall; external Imm name 'ImmGetIMEFileNameA';
|
|
|
+function ImmGetIMEFileNameW(kl: HKL; lpszFileName: LPWSTR; uBufLen: UINT): UINT; stdcall; external Imm name 'ImmGetIMEFileNameW';
|
|
|
+
|
|
|
+function ImmGetProperty (kl: HKL; fdwIndex: DWORD): DWORD; stdcall; external Imm name 'ImmGetProperty';
|
|
|
+function ImmIsIME(kl: HKL): LongBool; stdcall; external Imm name 'ImmIsIME';
|
|
|
+function ImmSimulateHotKey(wnd: HWND; dwHotKeyID: DWORD): LongBool; stdcall; external Imm name 'ImmSimulateHotKey';
|
|
|
+
|
|
|
+function ImmCreateContext: HIMC; stdcall; external Imm name 'ImmCreateContext';
|
|
|
+function ImmDestroyContext(imc: HIMC): LongBool; stdcall; external Imm name 'ImmDestroyContext';
|
|
|
+function ImmGetContext(wnd: HWND): HIMC; stdcall; external Imm name 'ImmGetContext';
|
|
|
+
|
|
|
+function ImmReleaseContext(wnd: HWND; imc: HIMC): LongBool; stdcall; external Imm name 'ImmReleaseContext';
|
|
|
+function ImmAssociateContext(wnd: HWND; imc: HIMC): HIMC; stdcall; external Imm name 'ImmAssociateContext';
|
|
|
+
|
|
|
+function ImmAssociateContextEx(wnd: HWND; imc: HIMC; dwFlags: DWORD): LongBool; stdcall; external Imm name 'ImmAssociateContextEx';
|
|
|
+function ImmGetCompositionStringA(imc: HIMC; dwIndex: DWORD;
|
|
|
+ lpBuf: LPVOID; dwBufLen: DWORD): Longword; stdcall; external Imm name 'ImmGetCompositionStringA';
|
|
|
+function ImmGetCompositionStringW(imc: HIMC; dwIndex: DWORD;
|
|
|
+ lpBuf: LPVOID; dwBufLen: DWORD): Longword; stdcall; external Imm name 'ImmGetCompositionStringW';
|
|
|
+
|
|
|
+function ImmSetCompositionStringA(imc: HIMC; dwIndex: DWORD; lpComp: LPVOID;
|
|
|
+ dwCompLen: DWORD; lpRead: LPVOID; dwReadLen: DWORD): LongBool; stdcall; external Imm name 'ImmSetCompositionStringA';
|
|
|
+function ImmSetCompositionStringW(imc: HIMC; dwIndex: DWORD; lpComp: LPVOID;
|
|
|
+ dwCompLen: DWORD; lpRead: LPVOID; dwReadLen: DWORD): LongBool; stdcall; external Imm name 'ImmSetCompositionStringW';
|
|
|
+
|
|
|
+function ImmGetCandidateListCountA(imc: HIMC; lpdwListCount: LPDWORD): DWORD; stdcall; external Imm name 'ImmGetCandidateListCountA';
|
|
|
+function ImmGetCandidateListCountW(imc: HIMC; lpdwListCount: LPDWORD): DWORD; stdcall; external Imm name 'ImmGetCandidateListCountW';
|
|
|
+
|
|
|
+function ImmGetCandidateListA(imc: HIMC; deIndex: DWORD;
|
|
|
+ lpCandList: LPCANDIDATELIST; dwBufLen: DWORD): DWORD; stdcall; external Imm name 'ImmGetCandidateListA';
|
|
|
+function ImmGetCandidateListW(imc: HIMC; deIndex: DWORD;
|
|
|
+ lpCandList: LPCANDIDATELIST; dwBufLen: DWORD): DWORD; stdcall; external Imm name 'ImmGetCandidateListW';
|
|
|
+
|
|
|
+function ImmGetGuideLineA(imc: HIMC; dwIndex: DWORD; lpBuf: LPSTR;
|
|
|
+ dwBufLen: DWORD): DWORD; stdcall ; external Imm name 'ImmGetGuideLineA';
|
|
|
+function ImmGetGuideLineW(imc: HIMC; dwIndex: DWORD; lpBuf: LPWSTR;
|
|
|
+ dwBufLen: DWORD): DWORD; stdcall ; external Imm name 'ImmGetGuideLineW';
|
|
|
+
|
|
|
+function ImmGetConversionStatus(imc: HIMC; lpfdwConversion, lpfdwSentence: LPDWORD): LongBool; stdcall ; external Imm name 'ImmGetConversionStatus';
|
|
|
+function ImmSetConversionStatus(imc: HIMC; fdwConversion, fdwSentence: DWORD): LongBool; stdcall ; external Imm name 'ImmSetConversionStatus';
|
|
|
+function ImmGetOpenStatus(imc: HIMC): LongBool; stdcall ; external Imm name 'ImmGetOpenStatus';
|
|
|
+function ImmSetOpenStatus(imc: HIMC; par1: LongBool): LongBool; stdcall ; external Imm name 'ImmSetOpenStatus';
|
|
|
+
|
|
|
+function ImmGetCompositionFontA(imc: HIMC; lplf: PLOGFONTA): LongBool; stdcall ; external Imm name 'ImmGetCompositionFontA';
|
|
|
+function ImmGetCompositionFontW(imc: HIMC; lplf: PLOGFONTW): LongBool; stdcall ; external Imm name 'ImmGetCompositionFontW';
|
|
|
+
|
|
|
+function ImmSetCompositionFontA(imc: HIMC; lplf: PLOGFONTA): LongBool; stdcall ; external Imm name 'ImmSetCompositionFontA';
|
|
|
+function ImmSetCompositionFontW(imc: HIMC; lplf: PLOGFONTW): LongBool; stdcall ; external Imm name 'ImmSetCompositionFontW';
|
|
|
+
|
|
|
+function ImmConfigureIMEA(kl: HKL; wnd: HWND; dwMode: DWORD; lpData: LPVOID): LongBool; stdcall ; external Imm name 'ImmConfigureIMEA';
|
|
|
+function ImmConfigureIMEW(kl: HKL; wnd: HWND; dwMode: DWORD; lpData: LPVOID): LongBool; stdcall ; external Imm name 'ImmConfigureIMEW';
|
|
|
+
|
|
|
+function ImmEscapeA(kl: HKL; imc: HIMC; uEscape: UINT; lpData: LPVOID): LRESULT; stdcall ; external Imm name 'ImmEscapeA';
|
|
|
+function ImmEscapeW(kl: HKL; imc: HIMC; uEscape: UINT; lpData: LPVOID): LRESULT; stdcall ; external Imm name 'ImmEscapeW';
|
|
|
+
|
|
|
+function ImmGetConversionListA(kl: HKL; imc: HIMC; lpSrc: LPCSTR;
|
|
|
+ lpDst: LPCANDIDATELIST; dwBufLen: DWORD; uFlag: UINT): DWORD; stdcall ; external Imm name 'ImmGetConversionListA';
|
|
|
+function ImmGetConversionListW(kl: HKL; imc: HIMC; lpSrc: LPCWSTR;
|
|
|
+ lpDst: LPCANDIDATELIST; dwBufLen: DWORD; uFlag: UINT): DWORD; stdcall ; external Imm name 'ImmGetConversionListW';
|
|
|
+
|
|
|
+function ImmNotifyIME(imc: HIMC; dwAction, dwIndex, dwValue: DWORD): LongBool; stdcall ; external Imm name 'ImmNotifyIME';
|
|
|
+function ImmGetStatusWindowPos(imc: HIMC; lpptPos: LPPOINT): LongBool; stdcall ; external Imm name 'ImmGetStatusWindowPos';
|
|
|
+function ImmSetStatusWindowPos(imc: HIMC; lpptPos: LPPOINT): LongBool; stdcall ; external Imm name 'ImmSetStatusWindowPos';
|
|
|
+function ImmGetCompositionWindow(imc: HIMC; lpCompForm: LPCOMPOSITIONFORM): LongBool; stdcall ; external Imm name 'ImmGetCompositionWindow';
|
|
|
+function ImmSetCompositionWindow(imc: HIMC; lpCompForm: LPCOMPOSITIONFORM): LongBool; stdcall ; external Imm name 'ImmSetCompositionWindow';
|
|
|
+function ImmGetCandidateWindow(imc: HIMC; par1: DWORD; lpCandidate: LPCANDIDATEFORM): LongBool; stdcall ; external Imm name 'ImmGetCandidateWindow(';
|
|
|
+function ImmSetCandidateWindow(imc: HIMC; lpCandidate: LPCANDIDATEFORM): LongBool; stdcall ; external Imm name 'ImmSetCandidateWindow';
|
|
|
+
|
|
|
+function ImmIsUIMessageA(wnd: HWND; msg: UINT; wPar: WPARAM; lPar: LPARAM): LongBool; stdcall ; external Imm name 'ImmIsUIMessageA';
|
|
|
+function ImmIsUIMessageW(wnd: HWND; msg: UINT; wPar: WPARAM; lPar: LPARAM): LongBool; stdcall ; external Imm name 'ImmIsUIMessageW';
|
|
|
+
|
|
|
+function ImmGetVirtualKey(wnd: HWND): UINT; stdcall ; external Imm name 'ImmGetVirtualKey';
|
|
|
+
|
|
|
+type
|
|
|
+ REGISTERWORDENUMPROCA = function(lpszReading: LPCSTR; par1: DWORD;
|
|
|
+ lpszString: LPCSTR; par3: LPVOID): Integer; stdcall;
|
|
|
+ TREGISTERWORDENUMPROCA = REGISTERWORDENUMPROCA;
|
|
|
+
|
|
|
+ REGISTERWORDENUMPROCW = function(lpszReading: LPCWSTR; par1: DWORD;
|
|
|
+ lpszString: LPCWSTR; par3: LPVOID): Integer; stdcall;
|
|
|
+ TREGISTERWORDENUMPROCW = REGISTERWORDENUMPROCW;
|
|
|
+
|
|
|
+function ImmRegisterWordA(kl: HKL; lpszReading: LPCSTR; dwStyle: DWORD; lpszRegister: LPCSTR): LongBool; stdcall ; external Imm name 'ImmRegisterWordA';
|
|
|
+function ImmRegisterWordW(kl: HKL; lpszReading: LPCWSTR; dwStyle: DWORD; lpszRegister: LPCWSTR): LongBool; stdcall ; external Imm name 'ImmRegisterWordW';
|
|
|
+
|
|
|
+function ImmUnregisterWordA(kl: HKL; lpszReading: LPCSTR; dwStyle: DWORD; lpszUnregister: LPCSTR): LongBool; stdcall ; external Imm name 'ImmUnregisterWordA';
|
|
|
+function ImmUnregisterWordW(kl: HKL; lpszReading: LPCWSTR; dwStyle: DWORD; lpszUnregister: LPCWSTR): LongBool; stdcall ; external Imm name 'ImmUnregisterWordW';
|
|
|
+
|
|
|
+function ImmGetRegisterWordStyleA(kl: HKL; nItem: UINT; lpStyleBuf: LPSTYLEBUFA): UINT; stdcall ; external Imm name 'ImmGetRegisterWordStyleA';
|
|
|
+function ImmGetRegisterWordStyleW(kl: HKL; nItem: UINT; lpStyleBuf: LPSTYLEBUFW): UINT; stdcall ; external Imm name 'ImmGetRegisterWordStyleW';
|
|
|
+
|
|
|
+function ImmEnumRegisterWordA(kl: HKL; lpfnEnumProc: REGISTERWORDENUMPROCA;
|
|
|
+ lpszReading: LPCSTR; dwStyle: DWORD; lpszRegister: LPCSTR; lpData: LPVOID): UINT; stdcall ; external Imm name 'ImmEnumRegisterWordA';
|
|
|
+function ImmEnumRegisterWordW(kl: HKL; lpfnEnumProc: REGISTERWORDENUMPROCW;
|
|
|
+ lpszReading: LPCWSTR; dwStyle: DWORD; lpszRegister: LPCWSTR; lpData: LPVOID): UINT; stdcall ; external Imm name 'ImmEnumRegisterWordW';
|
|
|
+
|
|
|
+function ImmDisableIME(idThread: DWORD): LongBool; stdcall ; external Imm name 'ImmDisableIME';
|
|
|
+function ImmEnumInputContext(idThread: DWORD; lpfn: IMCENUMPROC; lParam: LPARAM): LongBool; stdcall ; external Imm name 'ImmEnumInputContext';
|
|
|
+function ImmGetImeMenuItemsA(imc: HIMC; dwFlags, dwType: DWORD;
|
|
|
+ lpImeParentMenu, lpImeMenu: LPIMEMENUITEMINFOA; dwSize: DWORD): DWORD; stdcall ; external Imm name 'ImmGetImeMenuItemsA';
|
|
|
+function ImmGetImeMenuItemsW(par0: HIMC; dwFlags, dwType: DWORD;
|
|
|
+ lpImeParentMenu, lpImeMenu: LPIMEMENUITEMINFOW; dwSize: DWORD): DWORD; stdcall ; external Imm name 'ImmGetImeMenuItemsW';
|
|
|
+
|
|
|
+function ImmDisableTextFrameService(idThread: DWORD): LongBool; stdcall ; external Imm name 'ImmDisableTextFrameService';
|
|
|
+
|
|
|
+// wParam for WM_IME_CONTROL
|
|
|
+const
|
|
|
+ IMC_GETCANDIDATEPOS = $0007;
|
|
|
+ IMC_SETCANDIDATEPOS = $0008;
|
|
|
+ IMC_GETCOMPOSITIONFONT = $0009;
|
|
|
+ IMC_SETCOMPOSITIONFONT = $000A;
|
|
|
+ IMC_GETCOMPOSITIONWINDOW = $000B;
|
|
|
+ IMC_SETCOMPOSITIONWINDOW = $000C;
|
|
|
+ IMC_GETSTATUSWINDOWPOS = $000F;
|
|
|
+ IMC_SETSTATUSWINDOWPOS = $0010;
|
|
|
+ IMC_CLOSESTATUSWINDOW = $0021;
|
|
|
+ IMC_OPENSTATUSWINDOW = $0022;
|
|
|
+
|
|
|
+ // dwAction for ImmNotifyIME
|
|
|
+ NI_OPENCANDIDATE = $0010;
|
|
|
+ NI_CLOSECANDIDATE = $0011;
|
|
|
+ NI_SELECTCANDIDATESTR = $0012;
|
|
|
+ NI_CHANGECANDIDATELIST = $0013;
|
|
|
+ NI_FINALIZECONVERSIONRESULT = $0014;
|
|
|
+ NI_COMPOSITIONSTR = $0015;
|
|
|
+ NI_SETCANDIDATE_PAGESTART = $0016;
|
|
|
+ NI_SETCANDIDATE_PAGESIZE = $0017;
|
|
|
+ NI_IMEMENUSELECTED = $0018;
|
|
|
+
|
|
|
+ // lParam for WM_IME_SETCONTEXT
|
|
|
+ ISC_SHOWUICANDIDATEWINDOW = $00000001;
|
|
|
+ ISC_SHOWUICOMPOSITIONWINDOW = $80000000;
|
|
|
+ ISC_SHOWUIGUIDELINE = $40000000;
|
|
|
+ ISC_SHOWUIALLCANDIDATEWINDOW = $0000000F;
|
|
|
+ ISC_SHOWUIALL = $C000000F;
|
|
|
+
|
|
|
+ // dwIndex for ImmNotifyIME/NI_COMPOSITIONSTR
|
|
|
+ CPS_COMPLETE = $0001;
|
|
|
+ CPS_CONVERT = $0002;
|
|
|
+ CPS_REVERT = $0003;
|
|
|
+ CPS_CANCEL = $0004;
|
|
|
+
|
|
|
+ // the modifiers of hot key
|
|
|
+ MOD_ALT = $0001;
|
|
|
+ MOD_CONTROL = $0002;
|
|
|
+ MOD_SHIFT = $0004;
|
|
|
+ MOD_LEFT = $8000;
|
|
|
+ MOD_RIGHT = $4000;
|
|
|
+ MOD_ON_KEYUP = $0800;
|
|
|
+ MOD_IGNORE_ALL_MODIFIER = $0400;
|
|
|
+
|
|
|
+ // Windows for Simplified Chinese Edition hot key ID from 0x10 - 0x2F
|
|
|
+ IME_CHOTKEY_IME_NONIME_TOGGLE = $10;
|
|
|
+ IME_CHOTKEY_SHAPE_TOGGLE = $11;
|
|
|
+ IME_CHOTKEY_SYMBOL_TOGGLE = $12;
|
|
|
+
|
|
|
+ // Windows for Japanese Edition hot key ID from 0x30 - 0x4F
|
|
|
+ IME_JHOTKEY_CLOSE_OPEN = $30;
|
|
|
+
|
|
|
+ // Windows for Korean Edition hot key ID from 0x50 - 0x6F
|
|
|
+ IME_KHOTKEY_SHAPE_TOGGLE = $50;
|
|
|
+ IME_KHOTKEY_HANJACONVERT = $51;
|
|
|
+ IME_KHOTKEY_ENGLISH = $52;
|
|
|
+
|
|
|
+ // Windows for Traditional Chinese Edition hot key ID from 0x70 - 0x8F
|
|
|
+ IME_THOTKEY_IME_NONIME_TOGGLE = $70;
|
|
|
+ IME_THOTKEY_SHAPE_TOGGLE = $71;
|
|
|
+ IME_THOTKEY_SYMBOL_TOGGLE = $72;
|
|
|
+
|
|
|
+ // direct switch hot key ID from 0x100 - 0x11F
|
|
|
+ IME_HOTKEY_DSWITCH_FIRST = $100;
|
|
|
+ IME_HOTKEY_DSWITCH_LAST = $11F;
|
|
|
+
|
|
|
+ // IME private hot key from 0x200 - 0x21F
|
|
|
+ IME_HOTKEY_PRIVATE_FIRST = $200;
|
|
|
+ IME_ITHOTKEY_RESEND_RESULTSTR = $200;
|
|
|
+ IME_ITHOTKEY_PREVIOUS_COMPOSITION = $201;
|
|
|
+ IME_ITHOTKEY_UISTYLE_TOGGLE = $202;
|
|
|
+ IME_ITHOTKEY_RECONVERTSTRING = $203;
|
|
|
+ IME_HOTKEY_PRIVATE_LAST = $21F;
|
|
|
+
|
|
|
+ // parameter of ImmGetCompositionString
|
|
|
+ GCS_COMPREADSTR = $0001;
|
|
|
+ GCS_COMPREADATTR = $0002;
|
|
|
+ GCS_COMPREADCLAUSE = $0004;
|
|
|
+ GCS_COMPSTR = $0008;
|
|
|
+ GCS_COMPATTR = $0010;
|
|
|
+ GCS_COMPCLAUSE = $0020;
|
|
|
+ GCS_CURSORPOS = $0080;
|
|
|
+ GCS_DELTASTART = $0100;
|
|
|
+ GCS_RESULTREADSTR = $0200;
|
|
|
+ GCS_RESULTREADCLAUSE = $0400;
|
|
|
+ GCS_RESULTSTR = $0800;
|
|
|
+ GCS_RESULTCLAUSE = $1000;
|
|
|
+
|
|
|
+ // style bit flags for WM_IME_COMPOSITION
|
|
|
+ CS_INSERTCHAR = $2000;
|
|
|
+ CS_NOMOVECARET = $4000;
|
|
|
+
|
|
|
+ // IME version constants
|
|
|
+ IMEVER_0310 = $0003000A;
|
|
|
+ IMEVER_0400 = $00040000;
|
|
|
+
|
|
|
+
|
|
|
+ // IME property bits
|
|
|
+ IME_PROP_AT_CARET = $00010000;
|
|
|
+ IME_PROP_SPECIAL_UI = $00020000;
|
|
|
+ IME_PROP_CANDLIST_START_FROM_1 = $00040000;
|
|
|
+ IME_PROP_UNICODE = $00080000;
|
|
|
+ IME_PROP_COMPLETE_ON_UNSELECT = $00100000;
|
|
|
+
|
|
|
+ // IME UICapability bits
|
|
|
+ UI_CAP_2700 = $00000001;
|
|
|
+ UI_CAP_ROT90 = $00000002;
|
|
|
+ UI_CAP_ROTANY = $00000004;
|
|
|
+
|
|
|
+ // ImmSetCompositionString Capability bits
|
|
|
+ SCS_CAP_COMPSTR = $00000001;
|
|
|
+ SCS_CAP_MAKEREAD = $00000002;
|
|
|
+ SCS_CAP_SETRECONVERTSTRING = $00000004;
|
|
|
+
|
|
|
+ // IME WM_IME_SELECT inheritance Capability bits
|
|
|
+ SELECT_CAP_CONVERSION = $00000001;
|
|
|
+ SELECT_CAP_SENTENCE = $00000002;
|
|
|
+
|
|
|
+ // ID for deIndex of ImmGetGuideLine
|
|
|
+ GGL_LEVEL = $00000001;
|
|
|
+ GGL_INDEX = $00000002;
|
|
|
+ GGL_STRING = $00000003;
|
|
|
+ GGL_PRIVATE = $00000004;
|
|
|
+
|
|
|
+ // ID for dwLevel of GUIDELINE Structure
|
|
|
+ GL_LEVEL_NOGUIDELINE = $00000000;
|
|
|
+ GL_LEVEL_FATAL = $00000001;
|
|
|
+ GL_LEVEL_ERROR = $00000002;
|
|
|
+ GL_LEVEL_WARNING = $00000003;
|
|
|
+ GL_LEVEL_INFORMATION = $00000004;
|
|
|
+
|
|
|
+ // ID for dwIndex of GUIDELINE Structure
|
|
|
+ GL_ID_UNKNOWN = $00000000;
|
|
|
+ GL_ID_NOMODULE = $00000001;
|
|
|
+ GL_ID_NODICTIONARY = $00000010;
|
|
|
+ GL_ID_CANNOTSAVE = $00000011;
|
|
|
+ GL_ID_NOCONVERT = $00000020;
|
|
|
+ GL_ID_TYPINGERROR = $00000021;
|
|
|
+ GL_ID_TOOMANYSTROKE = $00000022;
|
|
|
+ GL_ID_READINGCONFLICT = $00000023;
|
|
|
+ GL_ID_INPUTREADING = $00000024;
|
|
|
+ GL_ID_INPUTRADICAL = $00000025;
|
|
|
+ GL_ID_INPUTCODE = $00000026;
|
|
|
+ GL_ID_INPUTSYMBOL = $00000027;
|
|
|
+ GL_ID_CHOOSECANDIDATE = $00000028;
|
|
|
+ GL_ID_REVERSECONVERSION = $00000029;
|
|
|
+ GL_ID_PRIVATE_FIRST = $00008000;
|
|
|
+ GL_ID_PRIVATE_LAST = $0000FFFF;
|
|
|
+
|
|
|
+ // ID for dwIndex of ImmGetProperty
|
|
|
+ IGP_GETIMEVERSION = -4;
|
|
|
+ IGP_PROPERTY = $00000004;
|
|
|
+ IGP_CONVERSION = $00000008;
|
|
|
+ IGP_SENTENCE = $0000000c;
|
|
|
+ IGP_UI = $00000010;
|
|
|
+ IGP_SETCOMPSTR = $00000014;
|
|
|
+ IGP_SELECT = $00000018;
|
|
|
+
|
|
|
+ // dwIndex for ImmSetCompositionString API
|
|
|
+ SCS_SETSTR = (GCS_COMPREADSTR or GCS_COMPSTR);
|
|
|
+ SCS_CHANGEATTR = (GCS_COMPREADATTR or GCS_COMPATTR);
|
|
|
+ SCS_CHANGECLAUSE = (GCS_COMPREADCLAUSE or GCS_COMPCLAUSE);
|
|
|
+ SCS_SETRECONVERTSTRING = $00010000;
|
|
|
+ SCS_QUERYRECONVERTSTRING = $00020000;
|
|
|
+
|
|
|
+ // attribute for COMPOSITIONSTRING Structure
|
|
|
+ ATTR_INPUT = $00;
|
|
|
+ ATTR_TARGET_CONVERTED = $01;
|
|
|
+ ATTR_CONVERTED = $02;
|
|
|
+ ATTR_TARGET_NOTCONVERTED = $03;
|
|
|
+ ATTR_INPUT_ERROR = $04;
|
|
|
+ ATTR_FIXEDCONVERTED = $05;
|
|
|
+
|
|
|
+ // bit field for IMC_SETCOMPOSITIONWINDOW, IMC_SETCANDIDATEWINDOW
|
|
|
+ CFS_DEFAULT = $0000;
|
|
|
+ CFS_RECT = $0001;
|
|
|
+ CFS_POINT = $0002;
|
|
|
+ CFS_FORCE_POSITION = $0020;
|
|
|
+ CFS_CANDIDATEPOS = $0040;
|
|
|
+ CFS_EXCLUDE = $0080;
|
|
|
+
|
|
|
+ // conversion direction for ImmGetConversionList
|
|
|
+ GCL_CONVERSION = $0001;
|
|
|
+ GCL_REVERSECONVERSION = $0002;
|
|
|
+ GCL_REVERSE_LENGTH = $0003;
|
|
|
+
|
|
|
+ // bit field for conversion mode
|
|
|
+ // IME_CMODE_HANGEUL is old name of IME_CMODE_HANGUL. It will be gone eventually.
|
|
|
+ IME_CMODE_HANGEUL = IME_CMODE_NATIVE;
|
|
|
+ IME_CMODE_SOFTKBD = $0080;
|
|
|
+ IME_CMODE_NOCONVERSION = $0100;
|
|
|
+ IME_CMODE_EUDC = $0200;
|
|
|
+ IME_CMODE_SYMBOL = $0400;
|
|
|
+ IME_CMODE_FIXED = $0800;
|
|
|
+ IME_CMODE_RESERVED = $F0000000;
|
|
|
+
|
|
|
+ // bit field for sentence mode
|
|
|
+ IME_SMODE_NONE = $0000;
|
|
|
+ IME_SMODE_PLAURALCLAUSE = $0001;
|
|
|
+ IME_SMODE_SINGLECONVERT = $0002;
|
|
|
+ IME_SMODE_AUTOMATIC = $0004;
|
|
|
+ IME_SMODE_PHRASEPREDICT = $0008;
|
|
|
+ IME_SMODE_CONVERSATION = $0010;
|
|
|
+ IME_SMODE_RESERVED = $0000F000;
|
|
|
+
|
|
|
+ // style of candidate
|
|
|
+ IME_CAND_UNKNOWN = $0000;
|
|
|
+ IME_CAND_READ = $0001;
|
|
|
+ IME_CAND_CODE = $0002;
|
|
|
+ IME_CAND_MEANING = $0003;
|
|
|
+ IME_CAND_RADICAL = $0004;
|
|
|
+ IME_CAND_STROKE = $0005;
|
|
|
+
|
|
|
+ // wParam of report message WM_IME_NOTIFY
|
|
|
+ IMN_CLOSESTATUSWINDOW = $0001;
|
|
|
+ IMN_OPENSTATUSWINDOW = $0002;
|
|
|
+ IMN_CHANGECANDIDATE = $0003;
|
|
|
+ IMN_CLOSECANDIDATE = $0004;
|
|
|
+ IMN_OPENCANDIDATE = $0005;
|
|
|
+ IMN_SETCONVERSIONMODE = $0006;
|
|
|
+ IMN_SETSENTENCEMODE = $0007;
|
|
|
+ IMN_SETOPENSTATUS = $0008;
|
|
|
+ IMN_SETCANDIDATEPOS = $0009;
|
|
|
+ IMN_SETCOMPOSITIONFONT = $000A;
|
|
|
+ IMN_SETCOMPOSITIONWINDOW = $000B;
|
|
|
+ IMN_SETSTATUSWINDOWPOS = $000C;
|
|
|
+ IMN_GUIDELINE = $000D;
|
|
|
+ IMN_PRIVATE = $000E;
|
|
|
+
|
|
|
+ // wParam of report message WM_IME_REQUEST
|
|
|
+ IMR_COMPOSITIONWINDOW = $0001;
|
|
|
+ IMR_CANDIDATEWINDOW = $0002;
|
|
|
+ IMR_COMPOSITIONFONT = $0003;
|
|
|
+ IMR_RECONVERTSTRING = $0004;
|
|
|
+ IMR_CONFIRMRECONVERTSTRING = $0005;
|
|
|
+ IMR_QUERYCHARPOSITION = $0006;
|
|
|
+ IMR_DOCUMENTFEED = $0007;
|
|
|
+
|
|
|
+ // error code of ImmGetCompositionString
|
|
|
+ IMM_ERROR_NODATA = -1;
|
|
|
+ IMM_ERROR_GENERAL = -2;
|
|
|
+
|
|
|
+ // dialog mode of ImmConfigureIME
|
|
|
+ IME_CONFIG_GENERAL = 1;
|
|
|
+ IME_CONFIG_REGISTERWORD = 2;
|
|
|
+ IME_CONFIG_SELECTDICTIONARY = 3;
|
|
|
+
|
|
|
+ // flags for ImmEscape
|
|
|
+ IME_ESC_QUERY_SUPPORT = $0003;
|
|
|
+ IME_ESC_RESERVED_FIRST = $0004;
|
|
|
+ IME_ESC_RESERVED_LAST = $07FF;
|
|
|
+ IME_ESC_PRIVATE_FIRST = $0800;
|
|
|
+ IME_ESC_PRIVATE_LAST = $0FFF;
|
|
|
+ IME_ESC_SEQUENCE_TO_INTERNAL = $1001;
|
|
|
+ IME_ESC_GET_EUDC_DICTIONARY = $1003;
|
|
|
+ IME_ESC_SET_EUDC_DICTIONARY = $1004;
|
|
|
+ IME_ESC_MAX_KEY = $1005;
|
|
|
+ IME_ESC_IME_NAME = $1006;
|
|
|
+ IME_ESC_SYNC_HOTKEY = $1007;
|
|
|
+ IME_ESC_HANJA_MODE = $1008;
|
|
|
+ IME_ESC_AUTOMATA = $1009;
|
|
|
+ IME_ESC_PRIVATE_HOTKEY = $100a;
|
|
|
+ IME_ESC_GETHELPFILENAME = $100b;
|
|
|
+
|
|
|
+ // style of word registration
|
|
|
+ IME_REGWORD_STYLE_EUDC = $00000001;
|
|
|
+ IME_REGWORD_STYLE_USER_FIRST = $80000000;
|
|
|
+ IME_REGWORD_STYLE_USER_LAST = $FFFFFFFF;
|
|
|
+
|
|
|
+ // dwFlags for ImmAssociateContextEx
|
|
|
+ IACE_CHILDREN = $0001;
|
|
|
+ IACE_DEFAULT = $0010;
|
|
|
+ IACE_IGNORENOCONTEXT = $0020;
|
|
|
+
|
|
|
+ // dwFlags for ImmGetImeMenuItems
|
|
|
+ IGIMIF_RIGHTMENU = $0001;
|
|
|
+
|
|
|
+ // dwType for ImmGetImeMenuItems
|
|
|
+ IGIMII_CMODE = $0001;
|
|
|
+ IGIMII_SMODE = $0002;
|
|
|
+ IGIMII_CONFIGURE = $0004;
|
|
|
+ IGIMII_TOOLS = $0008;
|
|
|
+ IGIMII_HELP = $0010;
|
|
|
+ IGIMII_OTHER = $0020;
|
|
|
+ IGIMII_INPUTTOOLS = $0040;
|
|
|
+
|
|
|
+ // fType of IMEMENUITEMINFO structure
|
|
|
+ IMFT_RADIOCHECK = $00001;
|
|
|
+ IMFT_SEPARATOR = $00002;
|
|
|
+ IMFT_SUBMENU = $00004;
|
|
|
+
|
|
|
+ // fState of IMEMENUITEMINFO structure
|
|
|
+ IMFS_GRAYED = MFS_GRAYED;
|
|
|
+ IMFS_DISABLED = MFS_DISABLED;
|
|
|
+ IMFS_CHECKED = MFS_CHECKED;
|
|
|
+ IMFS_HILITE = MFS_HILITE;
|
|
|
+ IMFS_ENABLED = MFS_ENABLED;
|
|
|
+ IMFS_UNCHECKED = MFS_UNCHECKED;
|
|
|
+ IMFS_UNHILITE = MFS_UNHILITE;
|
|
|
+ IMFS_DEFAULT = MFS_DEFAULT;
|
|
|
+
|
|
|
+ // type of soft keyboard
|
|
|
+ // for Windows Tranditional Chinese Edition
|
|
|
+ SOFTKEYBOARD_TYPE_T1 = $0001;
|
|
|
+
|
|
|
+ // for Windows Simplified Chinese Edition
|
|
|
+ SOFTKEYBOARD_TYPE_C1 = $0002;
|
|
|
+
|
|
|
+implementation
|
|
|
+
|
|
|
+
|
|
|
+end.
|