From a0f6fd68a56068a20e7186e2dd2d7daccfbce4aa Mon Sep 17 00:00:00 2001 From: Pavel Perminov Date: Wed, 26 Sep 2012 19:02:53 +0000 Subject: Chess4Net_MI 2010.0 release (106 rev. truncated adjusted copy) git-svn-id: http://svn.miranda-ng.org/main/trunk@1666 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- .../TntUnicodeControls/Source/ActiveIMM_TLB.pas | 1374 ++++++++++++++++++++ 1 file changed, 1374 insertions(+) create mode 100644 plugins/Chess4Net/lib/TntUnicodeControls/Source/ActiveIMM_TLB.pas (limited to 'plugins/Chess4Net/lib/TntUnicodeControls/Source/ActiveIMM_TLB.pas') diff --git a/plugins/Chess4Net/lib/TntUnicodeControls/Source/ActiveIMM_TLB.pas b/plugins/Chess4Net/lib/TntUnicodeControls/Source/ActiveIMM_TLB.pas new file mode 100644 index 0000000000..c515cf9a36 --- /dev/null +++ b/plugins/Chess4Net/lib/TntUnicodeControls/Source/ActiveIMM_TLB.pas @@ -0,0 +1,1374 @@ + +{*****************************************************************************} +{ } +{ Tnt Delphi Unicode Controls } +{ http://www.tntware.com/delphicontrols/unicode/ } +{ Version: 2.3.0 } +{ } +{ Copyright (c) 2002-2007, Troy Wolbrink (troy.wolbrink@tntware.com) } +{ } +{*****************************************************************************} + +unit ActiveIMM_TLB; + +{$INCLUDE TntCompilers.inc} + +{TNT-IGNORE-UNIT} + +// ************************************************************************ // +// WARNING +// ------- +// The types declared in this file were generated from data read from a +// Type Library. If this type library is explicitly or indirectly (via +// another type library referring to this type library) re-imported, or the +// 'Refresh' command of the Type Library Editor activated while editing the +// Type Library, the contents of this file will be regenerated and all +// manual modifications will be lost. +// ************************************************************************ // + +// PASTLWTR : $Revision: 1.1 $ +// File generated on 04/03/2001 11:32:13 PM from Type Library described below. + +// *************************************************************************// +// NOTE: +// Items guarded by $IFDEF_LIVE_SERVER_AT_DESIGN_TIME are used by properties +// which return objects that may need to be explicitly created via a function +// call prior to any access via the property. These items have been disabled +// in order to prevent accidental use from within the object inspector. You +// may enable them by defining LIVE_SERVER_AT_DESIGN_TIME or by selectively +// removing them from the $IFDEF blocks. However, such items must still be +// programmatically created via a method of the appropriate CoClass before +// they can be used. +// ************************************************************************ // +// Type Lib: C:\Program Files\Microsoft Platform SDK\Include\dimm.tlb (1) +// IID\LCID: {4955DD30-B159-11D0-8FCF-00AA006BCC59}\0 +// Helpfile: +// DepndLst: +// (1) v2.0 stdole, (C:\WINNT\System32\Stdole2.tlb) +// (2) v4.0 StdVCL, (C:\WINNT\System32\STDVCL40.DLL) +// Errors: +// Hint: Member 'End' of 'IActiveIMMMessagePumpOwner' changed to 'End_' +// Error creating palette bitmap of (TCActiveIMM) : Server D:\D5Addons\Dimm\dimm.dll contains no icons +// ************************************************************************ // +{$TYPEDADDRESS OFF} // Unit must be compiled without type-checked pointers. +interface + +uses + Windows, ActiveX, Classes, OleServer; + +// *********************************************************************// +// GUIDS declared in the TypeLibrary. Following prefixes are used: +// Type Libraries : LIBID_xxxx +// CoClasses : CLASS_xxxx +// DISPInterfaces : DIID_xxxx +// Non-DISP interfaces: IID_xxxx +// *********************************************************************// +const + // TypeLibrary Major and minor versions + ActiveIMMMajorVersion = 0; + ActiveIMMMinorVersion = 1; + + LIBID_ActiveIMM: TGUID = '{4955DD30-B159-11D0-8FCF-00AA006BCC59}'; + + IID_IEnumRegisterWordA: TGUID = '{08C03412-F96B-11D0-A475-00AA006BCC59}'; + IID_IEnumRegisterWordW: TGUID = '{4955DD31-B159-11D0-8FCF-00AA006BCC59}'; + IID_IEnumInputContext: TGUID = '{09B5EAB0-F997-11D1-93D4-0060B067B86E}'; + IID_IActiveIMMRegistrar: TGUID = '{B3458082-BD00-11D1-939B-0060B067B86E}'; + IID_IActiveIMMMessagePumpOwner: TGUID = '{B5CF2CFA-8AEB-11D1-9364-0060B067B86E}'; + IID_IActiveIMMApp: TGUID = '{08C0E040-62D1-11D1-9326-0060B067B86E}'; + IID_IActiveIMMIME: TGUID = '{08C03411-F96B-11D0-A475-00AA006BCC59}'; + IID_IActiveIME: TGUID = '{6FE20962-D077-11D0-8FE7-00AA006BCC59}'; + IID_IActiveIME2: TGUID = '{E1C4BF0E-2D53-11D2-93E1-0060B067B86E}'; + CLASS_CActiveIMM: TGUID = '{4955DD33-B159-11D0-8FCF-00AA006BCC59}'; +type + +// *********************************************************************// +// Forward declaration of types defined in TypeLibrary +// *********************************************************************// + IEnumRegisterWordA = interface; + IEnumRegisterWordW = interface; + IEnumInputContext = interface; + IActiveIMMRegistrar = interface; + IActiveIMMMessagePumpOwner = interface; + IActiveIMMApp = interface; + IActiveIMMIME = interface; + IActiveIME = interface; + IActiveIME2 = interface; + +// *********************************************************************// +// Declaration of CoClasses defined in Type Library +// (NOTE: Here we map each CoClass to its Default Interface) +// *********************************************************************// + CActiveIMM = IActiveIMMApp; + + +// *********************************************************************// +// Declaration of structures, unions and aliases. +// *********************************************************************// + wireHBITMAP = ^_userHBITMAP; + wireHWND = ^_RemotableHandle; + PUserType1 = ^TGUID; {*} + PUserType2 = ^tagMSG; {*} + PUserType3 = ^REGISTERWORDA; {*} + PUserType4 = ^REGISTERWORDW; {*} + PUserType5 = ^CANDIDATEFORM; {*} + PUserType6 = ^LOGFONTA; {*} + PUserType7 = ^LOGFONTW; {*} + PUserType8 = ^COMPOSITIONFORM; {*} + PUserType9 = ^tagPOINT; {*} + PWord1 = ^Word; {*} + PUserType10 = ^IMEMENUITEMINFOA; {*} + PUserType11 = ^IMEMENUITEMINFOW; {*} + PUserType12 = ^INPUTCONTEXT; {*} + PByte1 = ^Byte; {*} + + __MIDL___MIDL_itf_dimm_0000_0001 = packed record + lpReading: PAnsiChar; + lpWord: PAnsiChar; + end; + + REGISTERWORDA = __MIDL___MIDL_itf_dimm_0000_0001; + + __MIDL___MIDL_itf_dimm_0000_0002 = packed record + lpReading: PWideChar; + lpWord: PWideChar; + end; + + REGISTERWORDW = __MIDL___MIDL_itf_dimm_0000_0002; + + __MIDL___MIDL_itf_dimm_0000_0003 = packed record + lfHeight: Integer; + lfWidth: Integer; + lfEscapement: Integer; + lfOrientation: Integer; + lfWeight: Integer; + lfItalic: Byte; + lfUnderline: Byte; + lfStrikeOut: Byte; + lfCharSet: Byte; + lfOutPrecision: Byte; + lfClipPrecision: Byte; + lfQuality: Byte; + lfPitchAndFamily: Byte; + lfFaceName: array[0..31] of Shortint; + end; + + LOGFONTA = __MIDL___MIDL_itf_dimm_0000_0003; + + __MIDL___MIDL_itf_dimm_0000_0004 = packed record + lfHeight: Integer; + lfWidth: Integer; + lfEscapement: Integer; + lfOrientation: Integer; + lfWeight: Integer; + lfItalic: Byte; + lfUnderline: Byte; + lfStrikeOut: Byte; + lfCharSet: Byte; + lfOutPrecision: Byte; + lfClipPrecision: Byte; + lfQuality: Byte; + lfPitchAndFamily: Byte; + lfFaceName: array[0..31] of Word; + end; + + LOGFONTW = __MIDL___MIDL_itf_dimm_0000_0004; + + tagPOINT = packed record + x: Integer; + y: Integer; + end; + + tagRECT = packed record + left: Integer; + top: Integer; + right: Integer; + bottom: Integer; + end; + + __MIDL___MIDL_itf_dimm_0000_0005 = packed record + dwIndex: LongWord; + dwStyle: LongWord; + ptCurrentPos: tagPOINT; + rcArea: tagRECT; + end; + + CANDIDATEFORM = __MIDL___MIDL_itf_dimm_0000_0005; + + __MIDL___MIDL_itf_dimm_0000_0006 = packed record + dwStyle: LongWord; + ptCurrentPos: tagPOINT; + rcArea: tagRECT; + end; + + COMPOSITIONFORM = __MIDL___MIDL_itf_dimm_0000_0006; + + __MIDL___MIDL_itf_dimm_0000_0007 = packed record + dwSize: LongWord; + dwStyle: LongWord; + dwCount: LongWord; + dwSelection: LongWord; + dwPageStart: LongWord; + dwPageSize: LongWord; + dwOffset: array[0..0] of LongWord; + end; + + CANDIDATELIST = __MIDL___MIDL_itf_dimm_0000_0007; + + __MIDL___MIDL_itf_dimm_0000_0008 = packed record + dwStyle: LongWord; + szDescription: array[0..31] of Shortint; + end; + + STYLEBUFA = __MIDL___MIDL_itf_dimm_0000_0008; + + __MIDL___MIDL_itf_dimm_0000_0009 = packed record + dwStyle: LongWord; + szDescription: array[0..31] of Word; + end; + + STYLEBUFW = __MIDL___MIDL_itf_dimm_0000_0009; + + __MIDL___MIDL_itf_dimm_0000_0010 = packed record + cbSize: SYSUINT; + fType: SYSUINT; + fState: SYSUINT; + wID: SYSUINT; + hbmpChecked: wireHBITMAP; + hbmpUnchecked: wireHBITMAP; + dwItemData: LongWord; + szString: array[0..79] of Shortint; + hbmpItem: wireHBITMAP; + end; + + IMEMENUITEMINFOA = __MIDL___MIDL_itf_dimm_0000_0010; + + _userBITMAP = packed record + bmType: Integer; + bmWidth: Integer; + bmHeight: Integer; + bmWidthBytes: Integer; + bmPlanes: Word; + bmBitsPixel: Word; + cbSize: LongWord; + pBuffer: ^Byte; + end; + + __MIDL_IWinTypes_0007 = record + case Integer of + 0: (hInproc: Integer); + 1: (hRemote: ^_userBITMAP); + end; + + _userHBITMAP = packed record + fContext: Integer; + u: __MIDL_IWinTypes_0007; + end; + + __MIDL___MIDL_itf_dimm_0000_0011 = packed record + cbSize: SYSUINT; + fType: SYSUINT; + fState: SYSUINT; + wID: SYSUINT; + hbmpChecked: wireHBITMAP; + hbmpUnchecked: wireHBITMAP; + dwItemData: LongWord; + szString: array[0..79] of Word; + hbmpItem: wireHBITMAP; + end; + + IMEMENUITEMINFOW = __MIDL___MIDL_itf_dimm_0000_0011; + + __MIDL___MIDL_itf_dimm_0000_0013 = record + case Integer of + 0: (A: LOGFONTA); + 1: (W: LOGFONTW); + end; + + __MIDL___MIDL_itf_dimm_0000_0012 = packed record + hWnd: wireHWND; + fOpen: Integer; + ptStatusWndPos: tagPOINT; + ptSoftKbdPos: tagPOINT; + fdwConversion: LongWord; + fdwSentence: LongWord; + lfFont: __MIDL___MIDL_itf_dimm_0000_0013; + cfCompForm: COMPOSITIONFORM; + cfCandForm: array[0..3] of CANDIDATEFORM; + hCompStr: LongWord; + hCandInfo: LongWord; + hGuideLine: LongWord; + hPrivate: LongWord; + dwNumMsgBuf: LongWord; + hMsgBuf: LongWord; + fdwInit: LongWord; + dwReserve: array[0..2] of LongWord; + end; + + __MIDL_IWinTypes_0009 = record + case Integer of + 0: (hInproc: Integer); + 1: (hRemote: Integer); + end; + + _RemotableHandle = packed record + fContext: Integer; + u: __MIDL_IWinTypes_0009; + end; + + INPUTCONTEXT = __MIDL___MIDL_itf_dimm_0000_0012; + + __MIDL___MIDL_itf_dimm_0000_0014 = packed record + dwPrivateDataSize: LongWord; + fdwProperty: LongWord; + fdwConversionCaps: LongWord; + fdwSentenceCaps: LongWord; + fdwUICaps: LongWord; + fdwSCSCaps: LongWord; + fdwSelectCaps: LongWord; + end; + + IMEINFO = __MIDL___MIDL_itf_dimm_0000_0014; + UINT_PTR = LongWord; + LONG_PTR = Integer; + + tagMSG = packed record + hWnd: wireHWND; + message: SYSUINT; + wParam: UINT_PTR; + lParam: LONG_PTR; + time: LongWord; + pt: tagPOINT; + end; + + +// *********************************************************************// +// Interface: IEnumRegisterWordA +// Flags: (0) +// GUID: {08C03412-F96B-11D0-A475-00AA006BCC59} +// *********************************************************************// + IEnumRegisterWordA = interface(IUnknown) + ['{08C03412-F96B-11D0-A475-00AA006BCC59}'] + function Clone(out ppEnum: IEnumRegisterWordA): HResult; stdcall; + function Next(ulCount: LongWord; out rgRegisterWord: REGISTERWORDA; out pcFetched: LongWord): HResult; stdcall; + function Reset: HResult; stdcall; + function Skip(ulCount: LongWord): HResult; stdcall; + end; + +// *********************************************************************// +// Interface: IEnumRegisterWordW +// Flags: (0) +// GUID: {4955DD31-B159-11D0-8FCF-00AA006BCC59} +// *********************************************************************// + IEnumRegisterWordW = interface(IUnknown) + ['{4955DD31-B159-11D0-8FCF-00AA006BCC59}'] + function Clone(out ppEnum: IEnumRegisterWordW): HResult; stdcall; + function Next(ulCount: LongWord; out rgRegisterWord: REGISTERWORDW; out pcFetched: LongWord): HResult; stdcall; + function Reset: HResult; stdcall; + function Skip(ulCount: LongWord): HResult; stdcall; + end; + +// *********************************************************************// +// Interface: IEnumInputContext +// Flags: (0) +// GUID: {09B5EAB0-F997-11D1-93D4-0060B067B86E} +// *********************************************************************// + IEnumInputContext = interface(IUnknown) + ['{09B5EAB0-F997-11D1-93D4-0060B067B86E}'] + function Clone(out ppEnum: IEnumInputContext): HResult; stdcall; + function Next(ulCount: LongWord; out rgInputContext: LongWord; out pcFetched: LongWord): HResult; stdcall; + function Reset: HResult; stdcall; + function Skip(ulCount: LongWord): HResult; stdcall; + end; + +// *********************************************************************// +// Interface: IActiveIMMRegistrar +// Flags: (0) +// GUID: {B3458082-BD00-11D1-939B-0060B067B86E} +// *********************************************************************// + IActiveIMMRegistrar = interface(IUnknown) + ['{B3458082-BD00-11D1-939B-0060B067B86E}'] + function RegisterIME(var rclsid: TGUID; lgid: Word; pszIconFile: PWideChar; pszDesc: PWideChar): HResult; stdcall; + function UnregisterIME(var rclsid: TGUID): HResult; stdcall; + end; + +// *********************************************************************// +// Interface: IActiveIMMMessagePumpOwner +// Flags: (0) +// GUID: {B5CF2CFA-8AEB-11D1-9364-0060B067B86E} +// *********************************************************************// + IActiveIMMMessagePumpOwner = interface(IUnknown) + ['{B5CF2CFA-8AEB-11D1-9364-0060B067B86E}'] + function Start: HResult; stdcall; + function End_: HResult; stdcall; + function OnTranslateMessage(var pMsg: tagMSG): HResult; stdcall; + function Pause(out pdwCookie: LongWord): HResult; stdcall; + function Resume(dwCookie: LongWord): HResult; stdcall; + end; + +// *********************************************************************// +// Interface: IActiveIMMApp +// Flags: (0) +// GUID: {08C0E040-62D1-11D1-9326-0060B067B86E} +// *********************************************************************// + IActiveIMMApp = interface(IUnknown) + ['{08C0E040-62D1-11D1-9326-0060B067B86E}'] + function AssociateContext(var hWnd: _RemotableHandle; hIME: LongWord; out phPrev: LongWord): HResult; stdcall; + function ConfigureIMEA(var hKL: Pointer; var hWnd: _RemotableHandle; dwMode: LongWord; + var pData: REGISTERWORDA): HResult; stdcall; + function ConfigureIMEW(var hKL: Pointer; var hWnd: _RemotableHandle; dwMode: LongWord; + var pData: REGISTERWORDW): HResult; stdcall; + function CreateContext(out phIMC: LongWord): HResult; stdcall; + function DestroyContext(hIME: LongWord): HResult; stdcall; + function EnumRegisterWordA(var hKL: Pointer; szReading: PAnsiChar; dwStyle: LongWord; + szRegister: PAnsiChar; var pData: Pointer; out pEnum: IEnumRegisterWordA): HResult; stdcall; + function EnumRegisterWordW(var hKL: Pointer; szReading: PWideChar; dwStyle: LongWord; + szRegister: PWideChar; var pData: Pointer; + out pEnum: IEnumRegisterWordW): HResult; stdcall; + function EscapeA(var hKL: Pointer; hIMC: LongWord; uEscape: SYSUINT; var pData: Pointer; + out plResult: LONG_PTR): HResult; stdcall; + function EscapeW(var hKL: Pointer; hIMC: LongWord; uEscape: SYSUINT; var pData: Pointer; + out plResult: LONG_PTR): HResult; stdcall; + function GetCandidateListA(hIMC: LongWord; dwIndex: LongWord; uBufLen: SYSUINT; + out pCandList: CANDIDATELIST; out puCopied: SYSUINT): HResult; stdcall; + function GetCandidateListW(hIMC: LongWord; dwIndex: LongWord; uBufLen: SYSUINT; + out pCandList: CANDIDATELIST; out puCopied: SYSUINT): HResult; stdcall; + function GetCandidateListCountA(hIMC: LongWord; out pdwListSize: LongWord; + out pdwBufLen: LongWord): HResult; stdcall; + function GetCandidateListCountW(hIMC: LongWord; out pdwListSize: LongWord; + out pdwBufLen: LongWord): HResult; stdcall; + function GetCandidateWindow(hIMC: LongWord; dwIndex: LongWord; out pCandidate: CANDIDATEFORM): HResult; stdcall; + function GetCompositionFontA(hIMC: LongWord; out plf: LOGFONTA): HResult; stdcall; + function GetCompositionFontW(hIMC: LongWord; out plf: LOGFONTW): HResult; stdcall; + function GetCompositionStringA(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord; + out plCopied: Integer; out pBuf: Pointer): HResult; stdcall; + function GetCompositionStringW(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord; + out plCopied: Integer; out pBuf: Pointer): HResult; stdcall; + function GetCompositionWindow(hIMC: LongWord; out pCompForm: COMPOSITIONFORM): HResult; stdcall; + function GetContext(var hWnd: _RemotableHandle; out phIMC: LongWord): HResult; stdcall; + function GetConversionListA(var hKL: Pointer; hIMC: LongWord; pSrc: PAnsiChar; uBufLen: SYSUINT; + uFlag: SYSUINT; out pDst: CANDIDATELIST; out puCopied: SYSUINT): HResult; stdcall; + function GetConversionListW(var hKL: Pointer; hIMC: LongWord; pSrc: PWideChar; + uBufLen: SYSUINT; uFlag: SYSUINT; out pDst: CANDIDATELIST; + out puCopied: SYSUINT): HResult; stdcall; + function GetConversionStatus(hIMC: LongWord; out pfdwConversion: LongWord; + out pfdwSentence: LongWord): HResult; stdcall; + function GetDefaultIMEWnd(var hWnd: _RemotableHandle; out phDefWnd: wireHWND): HResult; stdcall; + function GetDescriptionA(var hKL: Pointer; uBufLen: SYSUINT; szDescription: PAnsiChar; + out puCopied: SYSUINT): HResult; stdcall; + function GetDescriptionW(var hKL: Pointer; uBufLen: SYSUINT; szDescription: PWideChar; + out puCopied: SYSUINT): HResult; stdcall; + function GetGuideLineA(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord; pBuf: PAnsiChar; + out pdwResult: LongWord): HResult; stdcall; + function GetGuideLineW(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord; pBuf: PWideChar; + out pdwResult: LongWord): HResult; stdcall; + function GetIMEFileNameA(var hKL: Pointer; uBufLen: SYSUINT; szFileName: PAnsiChar; + out puCopied: SYSUINT): HResult; stdcall; + function GetIMEFileNameW(var hKL: Pointer; uBufLen: SYSUINT; szFileName: PWideChar; + out puCopied: SYSUINT): HResult; stdcall; + function GetOpenStatus(hIMC: LongWord): HResult; stdcall; + function GetProperty(var hKL: Pointer; fdwIndex: LongWord; out pdwProperty: LongWord): HResult; stdcall; + function GetRegisterWordStyleA(var hKL: Pointer; nItem: SYSUINT; out pStyleBuf: STYLEBUFA; + out puCopied: SYSUINT): HResult; stdcall; + function GetRegisterWordStyleW(var hKL: Pointer; nItem: SYSUINT; out pStyleBuf: STYLEBUFW; + out puCopied: SYSUINT): HResult; stdcall; + function GetStatusWindowPos(hIMC: LongWord; out pptPos: tagPOINT): HResult; stdcall; + function GetVirtualKey(var hWnd: _RemotableHandle; out puVirtualKey: SYSUINT): HResult; stdcall; + function InstallIMEA(szIMEFileName: PAnsiChar; szLayoutText: PAnsiChar; out phKL: Pointer): HResult; stdcall; + function InstallIMEW(szIMEFileName: PWideChar; szLayoutText: PWideChar; out phKL: Pointer): HResult; stdcall; + function IsIME(var hKL: Pointer): HResult; stdcall; + function IsUIMessageA(var hWndIME: _RemotableHandle; msg: SYSUINT; wParam: UINT_PTR; + lParam: LONG_PTR): HResult; stdcall; + function IsUIMessageW(var hWndIME: _RemotableHandle; msg: SYSUINT; wParam: UINT_PTR; + lParam: LONG_PTR): HResult; stdcall; + function NotifyIME(hIMC: LongWord; dwAction: LongWord; dwIndex: LongWord; dwValue: LongWord): HResult; stdcall; + function REGISTERWORDA(var hKL: Pointer; szReading: PAnsiChar; dwStyle: LongWord; szRegister: PAnsiChar): HResult; stdcall; + function REGISTERWORDW(var hKL: Pointer; szReading: PWideChar; dwStyle: LongWord; + szRegister: PWideChar): HResult; stdcall; + function ReleaseContext(var hWnd: _RemotableHandle; hIMC: LongWord): HResult; stdcall; + function SetCandidateWindow(hIMC: LongWord; var pCandidate: CANDIDATEFORM): HResult; stdcall; + function SetCompositionFontA(hIMC: LongWord; var plf: LOGFONTA): HResult; stdcall; + function SetCompositionFontW(hIMC: LongWord; var plf: LOGFONTW): HResult; stdcall; + function SetCompositionStringA(hIMC: LongWord; dwIndex: LongWord; var pComp: Pointer; + dwCompLen: LongWord; var pRead: Pointer; dwReadLen: LongWord): HResult; stdcall; + function SetCompositionStringW(hIMC: LongWord; dwIndex: LongWord; var pComp: Pointer; + dwCompLen: LongWord; var pRead: Pointer; dwReadLen: LongWord): HResult; stdcall; + function SetCompositionWindow(hIMC: LongWord; var pCompForm: COMPOSITIONFORM): HResult; stdcall; + function SetConversionStatus(hIMC: LongWord; fdwConversion: LongWord; fdwSentence: LongWord): HResult; stdcall; + function SetOpenStatus(hIMC: LongWord; fOpen: Integer): HResult; stdcall; + function SetStatusWindowPos(hIMC: LongWord; var pptPos: tagPOINT): HResult; stdcall; + function SimulateHotKey(var hWnd: _RemotableHandle; dwHotKeyID: LongWord): HResult; stdcall; + function UnregisterWordA(var hKL: Pointer; szReading: PAnsiChar; dwStyle: LongWord; + szUnregister: PAnsiChar): HResult; stdcall; + function UnregisterWordW(var hKL: Pointer; szReading: PWideChar; dwStyle: LongWord; + szUnregister: PWideChar): HResult; stdcall; + function Activate(fRestoreLayout: Integer): HResult; stdcall; + function Deactivate: HResult; stdcall; + function OnDefWindowProc(var hWnd: _RemotableHandle; msg: SYSUINT; wParam: UINT_PTR; + lParam: LONG_PTR; out plResult: LONG_PTR): HResult; stdcall; + function FilterClientWindows(var aaClassList: Word; uSize: SYSUINT): HResult; stdcall; + function GetCodePageA(var hKL: Pointer; out uCodePage: SYSUINT): HResult; stdcall; + function GetLangId(var hKL: Pointer; out plid: Word): HResult; stdcall; + function AssociateContextEx(var hWnd: _RemotableHandle; hIMC: LongWord; dwFlags: LongWord): HResult; stdcall; + function DisableIME(idThread: LongWord): HResult; stdcall; + function GetImeMenuItemsA(hIMC: LongWord; dwFlags: LongWord; dwType: LongWord; + var pImeParentMenu: IMEMENUITEMINFOA; + out pImeMenu: IMEMENUITEMINFOA; dwSize: LongWord; + out pdwResult: LongWord): HResult; stdcall; + function GetImeMenuItemsW(hIMC: LongWord; dwFlags: LongWord; dwType: LongWord; + var pImeParentMenu: IMEMENUITEMINFOW; + out pImeMenu: IMEMENUITEMINFOW; dwSize: LongWord; + out pdwResult: LongWord): HResult; stdcall; + function EnumInputContext(idThread: LongWord; out ppEnum: IEnumInputContext): HResult; stdcall; + end; + +// *********************************************************************// +// Interface: IActiveIMMIME +// Flags: (0) +// GUID: {08C03411-F96B-11D0-A475-00AA006BCC59} +// *********************************************************************// + IActiveIMMIME = interface(IUnknown) + ['{08C03411-F96B-11D0-A475-00AA006BCC59}'] + function AssociateContext(var hWnd: _RemotableHandle; hIME: LongWord; out phPrev: LongWord): HResult; stdcall; + function ConfigureIMEA(var hKL: Pointer; var hWnd: _RemotableHandle; dwMode: LongWord; + var pData: REGISTERWORDA): HResult; stdcall; + function ConfigureIMEW(var hKL: Pointer; var hWnd: _RemotableHandle; dwMode: LongWord; + var pData: REGISTERWORDW): HResult; stdcall; + function CreateContext(out phIMC: LongWord): HResult; stdcall; + function DestroyContext(hIME: LongWord): HResult; stdcall; + function EnumRegisterWordA(var hKL: Pointer; szReading: PAnsiChar; dwStyle: LongWord; + szRegister: PAnsiChar; var pData: Pointer; out pEnum: IEnumRegisterWordA): HResult; stdcall; + function EnumRegisterWordW(var hKL: Pointer; szReading: PWideChar; dwStyle: LongWord; + szRegister: PWideChar; var pData: Pointer; + out pEnum: IEnumRegisterWordW): HResult; stdcall; + function EscapeA(var hKL: Pointer; hIMC: LongWord; uEscape: SYSUINT; var pData: Pointer; + out plResult: LONG_PTR): HResult; stdcall; + function EscapeW(var hKL: Pointer; hIMC: LongWord; uEscape: SYSUINT; var pData: Pointer; + out plResult: LONG_PTR): HResult; stdcall; + function GetCandidateListA(hIMC: LongWord; dwIndex: LongWord; uBufLen: SYSUINT; + out pCandList: CANDIDATELIST; out puCopied: SYSUINT): HResult; stdcall; + function GetCandidateListW(hIMC: LongWord; dwIndex: LongWord; uBufLen: SYSUINT; + out pCandList: CANDIDATELIST; out puCopied: SYSUINT): HResult; stdcall; + function GetCandidateListCountA(hIMC: LongWord; out pdwListSize: LongWord; + out pdwBufLen: LongWord): HResult; stdcall; + function GetCandidateListCountW(hIMC: LongWord; out pdwListSize: LongWord; + out pdwBufLen: LongWord): HResult; stdcall; + function GetCandidateWindow(hIMC: LongWord; dwIndex: LongWord; out pCandidate: CANDIDATEFORM): HResult; stdcall; + function GetCompositionFontA(hIMC: LongWord; out plf: LOGFONTA): HResult; stdcall; + function GetCompositionFontW(hIMC: LongWord; out plf: LOGFONTW): HResult; stdcall; + function GetCompositionStringA(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord; + out plCopied: Integer; out pBuf: Pointer): HResult; stdcall; + function GetCompositionStringW(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord; + out plCopied: Integer; out pBuf: Pointer): HResult; stdcall; + function GetCompositionWindow(hIMC: LongWord; out pCompForm: COMPOSITIONFORM): HResult; stdcall; + function GetContext(var hWnd: _RemotableHandle; out phIMC: LongWord): HResult; stdcall; + function GetConversionListA(var hKL: Pointer; hIMC: LongWord; pSrc: PAnsiChar; uBufLen: SYSUINT; + uFlag: SYSUINT; out pDst: CANDIDATELIST; out puCopied: SYSUINT): HResult; stdcall; + function GetConversionListW(var hKL: Pointer; hIMC: LongWord; pSrc: PWideChar; + uBufLen: SYSUINT; uFlag: SYSUINT; out pDst: CANDIDATELIST; + out puCopied: SYSUINT): HResult; stdcall; + function GetConversionStatus(hIMC: LongWord; out pfdwConversion: LongWord; + out pfdwSentence: LongWord): HResult; stdcall; + function GetDefaultIMEWnd(var hWnd: _RemotableHandle; out phDefWnd: wireHWND): HResult; stdcall; + function GetDescriptionA(var hKL: Pointer; uBufLen: SYSUINT; szDescription: PAnsiChar; + out puCopied: SYSUINT): HResult; stdcall; + function GetDescriptionW(var hKL: Pointer; uBufLen: SYSUINT; szDescription: PWideChar; + out puCopied: SYSUINT): HResult; stdcall; + function GetGuideLineA(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord; pBuf: PAnsiChar; + out pdwResult: LongWord): HResult; stdcall; + function GetGuideLineW(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord; pBuf: PWideChar; + out pdwResult: LongWord): HResult; stdcall; + function GetIMEFileNameA(var hKL: Pointer; uBufLen: SYSUINT; szFileName: PAnsiChar; + out puCopied: SYSUINT): HResult; stdcall; + function GetIMEFileNameW(var hKL: Pointer; uBufLen: SYSUINT; szFileName: PWideChar; + out puCopied: SYSUINT): HResult; stdcall; + function GetOpenStatus(hIMC: LongWord): HResult; stdcall; + function GetProperty(var hKL: Pointer; fdwIndex: LongWord; out pdwProperty: LongWord): HResult; stdcall; + function GetRegisterWordStyleA(var hKL: Pointer; nItem: SYSUINT; out pStyleBuf: STYLEBUFA; + out puCopied: SYSUINT): HResult; stdcall; + function GetRegisterWordStyleW(var hKL: Pointer; nItem: SYSUINT; out pStyleBuf: STYLEBUFW; + out puCopied: SYSUINT): HResult; stdcall; + function GetStatusWindowPos(hIMC: LongWord; out pptPos: tagPOINT): HResult; stdcall; + function GetVirtualKey(var hWnd: _RemotableHandle; out puVirtualKey: SYSUINT): HResult; stdcall; + function InstallIMEA(szIMEFileName: PAnsiChar; szLayoutText: PAnsiChar; out phKL: Pointer): HResult; stdcall; + function InstallIMEW(szIMEFileName: PWideChar; szLayoutText: PWideChar; out phKL: Pointer): HResult; stdcall; + function IsIME(var hKL: Pointer): HResult; stdcall; + function IsUIMessageA(var hWndIME: _RemotableHandle; msg: SYSUINT; wParam: UINT_PTR; + lParam: LONG_PTR): HResult; stdcall; + function IsUIMessageW(var hWndIME: _RemotableHandle; msg: SYSUINT; wParam: UINT_PTR; + lParam: LONG_PTR): HResult; stdcall; + function NotifyIME(hIMC: LongWord; dwAction: LongWord; dwIndex: LongWord; dwValue: LongWord): HResult; stdcall; + function REGISTERWORDA(var hKL: Pointer; szReading: PAnsiChar; dwStyle: LongWord; szRegister: PAnsiChar): HResult; stdcall; + function REGISTERWORDW(var hKL: Pointer; szReading: PWideChar; dwStyle: LongWord; + szRegister: PWideChar): HResult; stdcall; + function ReleaseContext(var hWnd: _RemotableHandle; hIMC: LongWord): HResult; stdcall; + function SetCandidateWindow(hIMC: LongWord; var pCandidate: CANDIDATEFORM): HResult; stdcall; + function SetCompositionFontA(hIMC: LongWord; var plf: LOGFONTA): HResult; stdcall; + function SetCompositionFontW(hIMC: LongWord; var plf: LOGFONTW): HResult; stdcall; + function SetCompositionStringA(hIMC: LongWord; dwIndex: LongWord; var pComp: Pointer; + dwCompLen: LongWord; var pRead: Pointer; dwReadLen: LongWord): HResult; stdcall; + function SetCompositionStringW(hIMC: LongWord; dwIndex: LongWord; var pComp: Pointer; + dwCompLen: LongWord; var pRead: Pointer; dwReadLen: LongWord): HResult; stdcall; + function SetCompositionWindow(hIMC: LongWord; var pCompForm: COMPOSITIONFORM): HResult; stdcall; + function SetConversionStatus(hIMC: LongWord; fdwConversion: LongWord; fdwSentence: LongWord): HResult; stdcall; + function SetOpenStatus(hIMC: LongWord; fOpen: Integer): HResult; stdcall; + function SetStatusWindowPos(hIMC: LongWord; var pptPos: tagPOINT): HResult; stdcall; + function SimulateHotKey(var hWnd: _RemotableHandle; dwHotKeyID: LongWord): HResult; stdcall; + function UnregisterWordA(var hKL: Pointer; szReading: PAnsiChar; dwStyle: LongWord; + szUnregister: PAnsiChar): HResult; stdcall; + function UnregisterWordW(var hKL: Pointer; szReading: PWideChar; dwStyle: LongWord; + szUnregister: PWideChar): HResult; stdcall; + function GenerateMessage(hIMC: LongWord): HResult; stdcall; + function LockIMC(hIMC: LongWord; out ppIMC: PUserType12): HResult; stdcall; + function UnlockIMC(hIMC: LongWord): HResult; stdcall; + function GetIMCLockCount(hIMC: LongWord; out pdwLockCount: LongWord): HResult; stdcall; + function CreateIMCC(dwSize: LongWord; out phIMCC: LongWord): HResult; stdcall; + function DestroyIMCC(hIMCC: LongWord): HResult; stdcall; + function LockIMCC(hIMCC: LongWord; out ppv: Pointer): HResult; stdcall; + function UnlockIMCC(hIMCC: LongWord): HResult; stdcall; + function ReSizeIMCC(hIMCC: LongWord; dwSize: LongWord; out phIMCC: LongWord): HResult; stdcall; + function GetIMCCSize(hIMCC: LongWord; out pdwSize: LongWord): HResult; stdcall; + function GetIMCCLockCount(hIMCC: LongWord; out pdwLockCount: LongWord): HResult; stdcall; + function GetHotKey(dwHotKeyID: LongWord; out puModifiers: SYSUINT; out puVKey: SYSUINT; + out phKL: Pointer): HResult; stdcall; + function SetHotKey(dwHotKeyID: LongWord; uModifiers: SYSUINT; uVKey: SYSUINT; var hKL: Pointer): HResult; stdcall; + function CreateSoftKeyboard(uType: SYSUINT; var hOwner: _RemotableHandle; x: SYSINT; + y: SYSINT; out phSoftKbdWnd: wireHWND): HResult; stdcall; + function DestroySoftKeyboard(var hSoftKbdWnd: _RemotableHandle): HResult; stdcall; + function ShowSoftKeyboard(var hSoftKbdWnd: _RemotableHandle; nCmdShow: SYSINT): HResult; stdcall; + function GetCodePageA(var hKL: Pointer; out uCodePage: SYSUINT): HResult; stdcall; + function GetLangId(var hKL: Pointer; out plid: Word): HResult; stdcall; + function KeybdEvent(lgidIME: Word; bVk: Byte; bScan: Byte; dwFlags: LongWord; + dwExtraInfo: LongWord): HResult; stdcall; + function LockModal: HResult; stdcall; + function UnlockModal: HResult; stdcall; + function AssociateContextEx(var hWnd: _RemotableHandle; hIMC: LongWord; dwFlags: LongWord): HResult; stdcall; + function DisableIME(idThread: LongWord): HResult; stdcall; + function GetImeMenuItemsA(hIMC: LongWord; dwFlags: LongWord; dwType: LongWord; + var pImeParentMenu: IMEMENUITEMINFOA; + out pImeMenu: IMEMENUITEMINFOA; dwSize: LongWord; + out pdwResult: LongWord): HResult; stdcall; + function GetImeMenuItemsW(hIMC: LongWord; dwFlags: LongWord; dwType: LongWord; + var pImeParentMenu: IMEMENUITEMINFOW; + out pImeMenu: IMEMENUITEMINFOW; dwSize: LongWord; + out pdwResult: LongWord): HResult; stdcall; + function EnumInputContext(idThread: LongWord; out ppEnum: IEnumInputContext): HResult; stdcall; + function RequestMessageA(hIMC: LongWord; wParam: UINT_PTR; lParam: LONG_PTR; + out plResult: LONG_PTR): HResult; stdcall; + function RequestMessageW(hIMC: LongWord; wParam: UINT_PTR; lParam: LONG_PTR; + out plResult: LONG_PTR): HResult; stdcall; + function SendIMCA(var hWnd: _RemotableHandle; uMsg: SYSUINT; wParam: UINT_PTR; + lParam: LONG_PTR; out plResult: LONG_PTR): HResult; stdcall; + function SendIMCW(var hWnd: _RemotableHandle; uMsg: SYSUINT; wParam: UINT_PTR; + lParam: LONG_PTR; out plResult: LONG_PTR): HResult; stdcall; + function IsSleeping: HResult; stdcall; + end; + +// *********************************************************************// +// Interface: IActiveIME +// Flags: (0) +// GUID: {6FE20962-D077-11D0-8FE7-00AA006BCC59} +// *********************************************************************// + IActiveIME = interface(IUnknown) + ['{6FE20962-D077-11D0-8FE7-00AA006BCC59}'] + function Inquire(dwSystemInfoFlags: LongWord; out pIMEInfo: IMEINFO; szWndClass: PWideChar; + out pdwPrivate: LongWord): HResult; stdcall; + function ConversionList(hIMC: LongWord; szSource: PWideChar; uFlag: SYSUINT; uBufLen: SYSUINT; + out pDest: CANDIDATELIST; out puCopied: SYSUINT): HResult; stdcall; + function Configure(var hKL: Pointer; var hWnd: _RemotableHandle; dwMode: LongWord; + var pRegisterWord: REGISTERWORDW): HResult; stdcall; + function Destroy(uReserved: SYSUINT): HResult; stdcall; + function Escape(hIMC: LongWord; uEscape: SYSUINT; var pData: Pointer; out plResult: LONG_PTR): HResult; stdcall; + function SetActiveContext(hIMC: LongWord; fFlag: Integer): HResult; stdcall; + function ProcessKey(hIMC: LongWord; uVirKey: SYSUINT; lParam: LongWord; var pbKeyState: Byte): HResult; stdcall; + function Notify(hIMC: LongWord; dwAction: LongWord; dwIndex: LongWord; dwValue: LongWord): HResult; stdcall; + function Select(hIMC: LongWord; fSelect: Integer): HResult; stdcall; + function SetCompositionString(hIMC: LongWord; dwIndex: LongWord; var pComp: Pointer; + dwCompLen: LongWord; var pRead: Pointer; dwReadLen: LongWord): HResult; stdcall; + function ToAsciiEx(uVirKey: SYSUINT; uScanCode: SYSUINT; var pbKeyState: Byte; + fuState: SYSUINT; hIMC: LongWord; out pdwTransBuf: LongWord; + out puSize: SYSUINT): HResult; stdcall; + function RegisterWord(szReading: PWideChar; dwStyle: LongWord; szString: PWideChar): HResult; stdcall; + function UnregisterWord(szReading: PWideChar; dwStyle: LongWord; szString: PWideChar): HResult; stdcall; + function GetRegisterWordStyle(nItem: SYSUINT; out pStyleBuf: STYLEBUFW; out puBufSize: SYSUINT): HResult; stdcall; + function EnumRegisterWord(szReading: PWideChar; dwStyle: LongWord; szRegister: PWideChar; + var pData: Pointer; out ppEnum: IEnumRegisterWordW): HResult; stdcall; + function GetCodePageA(out uCodePage: SYSUINT): HResult; stdcall; + function GetLangId(out plid: Word): HResult; stdcall; + end; + +// *********************************************************************// +// Interface: IActiveIME2 +// Flags: (0) +// GUID: {E1C4BF0E-2D53-11D2-93E1-0060B067B86E} +// *********************************************************************// + IActiveIME2 = interface(IActiveIME) + ['{E1C4BF0E-2D53-11D2-93E1-0060B067B86E}'] + function Sleep: HResult; stdcall; + function Unsleep(fDead: Integer): HResult; stdcall; + end; + +// *********************************************************************// +// The Class CoCActiveIMM provides a Create and CreateRemote method to +// create instances of the default interface IActiveIMMApp exposed by +// the CoClass CActiveIMM. The functions are intended to be used by +// clients wishing to automate the CoClass objects exposed by the +// server of this typelibrary. +// *********************************************************************// + CoCActiveIMM = class + class function Create: IActiveIMMApp; + class function CreateRemote(const MachineName: AnsiString): IActiveIMMApp; + end; + + +// *********************************************************************// +// OLE Server Proxy class declaration +// Server Object : TCActiveIMM +// Help String : +// Default Interface: IActiveIMMApp +// Def. Intf. DISP? : No +// Event Interface: +// TypeFlags : (2) CanCreate +// *********************************************************************// +{$IFDEF LIVE_SERVER_AT_DESIGN_TIME} + TCActiveIMMProperties= class; +{$ENDIF} + TCActiveIMM = class(TOleServer) + private + FIntf: IActiveIMMApp; +{$IFDEF LIVE_SERVER_AT_DESIGN_TIME} + FProps: TCActiveIMMProperties; + function GetServerProperties: TCActiveIMMProperties; +{$ENDIF} + function GetDefaultInterface: IActiveIMMApp; + protected + procedure InitServerData; override; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure Connect; override; + procedure ConnectTo(svrIntf: IActiveIMMApp); + procedure Disconnect; override; + function AssociateContext(var hWnd: _RemotableHandle; hIME: LongWord; out phPrev: LongWord): HResult; + function ConfigureIMEA(var hKL: Pointer; var hWnd: _RemotableHandle; dwMode: LongWord; + var pData: REGISTERWORDA): HResult; + function ConfigureIMEW(var hKL: Pointer; var hWnd: _RemotableHandle; dwMode: LongWord; + var pData: REGISTERWORDW): HResult; + function CreateContext(out phIMC: LongWord): HResult; + function DestroyContext(hIME: LongWord): HResult; + function EnumRegisterWordA(var hKL: Pointer; szReading: PAnsiChar; dwStyle: LongWord; + szRegister: PAnsiChar; var pData: Pointer; out pEnum: IEnumRegisterWordA): HResult; + function EnumRegisterWordW(var hKL: Pointer; szReading: PWideChar; dwStyle: LongWord; + szRegister: PWideChar; var pData: Pointer; + out pEnum: IEnumRegisterWordW): HResult; + function EscapeA(var hKL: Pointer; hIMC: LongWord; uEscape: SYSUINT; var pData: Pointer; + out plResult: LONG_PTR): HResult; + function EscapeW(var hKL: Pointer; hIMC: LongWord; uEscape: SYSUINT; var pData: Pointer; + out plResult: LONG_PTR): HResult; + function GetCandidateListA(hIMC: LongWord; dwIndex: LongWord; uBufLen: SYSUINT; + out pCandList: CANDIDATELIST; out puCopied: SYSUINT): HResult; + function GetCandidateListW(hIMC: LongWord; dwIndex: LongWord; uBufLen: SYSUINT; + out pCandList: CANDIDATELIST; out puCopied: SYSUINT): HResult; + function GetCandidateListCountA(hIMC: LongWord; out pdwListSize: LongWord; + out pdwBufLen: LongWord): HResult; + function GetCandidateListCountW(hIMC: LongWord; out pdwListSize: LongWord; + out pdwBufLen: LongWord): HResult; + function GetCandidateWindow(hIMC: LongWord; dwIndex: LongWord; out pCandidate: CANDIDATEFORM): HResult; + function GetCompositionFontA(hIMC: LongWord; out plf: LOGFONTA): HResult; + function GetCompositionFontW(hIMC: LongWord; out plf: LOGFONTW): HResult; + function GetCompositionStringA(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord; + out plCopied: Integer; out pBuf: Pointer): HResult; + function GetCompositionStringW(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord; + out plCopied: Integer; out pBuf: Pointer): HResult; + function GetCompositionWindow(hIMC: LongWord; out pCompForm: COMPOSITIONFORM): HResult; + function GetContext(var hWnd: _RemotableHandle; out phIMC: LongWord): HResult; + function GetConversionListA(var hKL: Pointer; hIMC: LongWord; pSrc: PAnsiChar; uBufLen: SYSUINT; + uFlag: SYSUINT; out pDst: CANDIDATELIST; out puCopied: SYSUINT): HResult; + function GetConversionListW(var hKL: Pointer; hIMC: LongWord; pSrc: PWideChar; + uBufLen: SYSUINT; uFlag: SYSUINT; out pDst: CANDIDATELIST; + out puCopied: SYSUINT): HResult; + function GetConversionStatus(hIMC: LongWord; out pfdwConversion: LongWord; + out pfdwSentence: LongWord): HResult; + function GetDefaultIMEWnd(var hWnd: _RemotableHandle; out phDefWnd: wireHWND): HResult; + function GetDescriptionA(var hKL: Pointer; uBufLen: SYSUINT; szDescription: PAnsiChar; + out puCopied: SYSUINT): HResult; + function GetDescriptionW(var hKL: Pointer; uBufLen: SYSUINT; szDescription: PWideChar; + out puCopied: SYSUINT): HResult; + function GetGuideLineA(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord; pBuf: PAnsiChar; + out pdwResult: LongWord): HResult; + function GetGuideLineW(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord; pBuf: PWideChar; + out pdwResult: LongWord): HResult; + function GetIMEFileNameA(var hKL: Pointer; uBufLen: SYSUINT; szFileName: PAnsiChar; + out puCopied: SYSUINT): HResult; + function GetIMEFileNameW(var hKL: Pointer; uBufLen: SYSUINT; szFileName: PWideChar; + out puCopied: SYSUINT): HResult; + function GetOpenStatus(hIMC: LongWord): HResult; + function GetProperty(var hKL: Pointer; fdwIndex: LongWord; out pdwProperty: LongWord): HResult; + function GetRegisterWordStyleA(var hKL: Pointer; nItem: SYSUINT; out pStyleBuf: STYLEBUFA; + out puCopied: SYSUINT): HResult; + function GetRegisterWordStyleW(var hKL: Pointer; nItem: SYSUINT; out pStyleBuf: STYLEBUFW; + out puCopied: SYSUINT): HResult; + function GetStatusWindowPos(hIMC: LongWord; out pptPos: tagPOINT): HResult; + function GetVirtualKey(var hWnd: _RemotableHandle; out puVirtualKey: SYSUINT): HResult; + function InstallIMEA(szIMEFileName: PAnsiChar; szLayoutText: PAnsiChar; out phKL: Pointer): HResult; + function InstallIMEW(szIMEFileName: PWideChar; szLayoutText: PWideChar; out phKL: Pointer): HResult; + function IsIME(var hKL: Pointer): HResult; + function IsUIMessageA(var hWndIME: _RemotableHandle; msg: SYSUINT; wParam: UINT_PTR; + lParam: LONG_PTR): HResult; + function IsUIMessageW(var hWndIME: _RemotableHandle; msg: SYSUINT; wParam: UINT_PTR; + lParam: LONG_PTR): HResult; + function NotifyIME(hIMC: LongWord; dwAction: LongWord; dwIndex: LongWord; dwValue: LongWord): HResult; + function REGISTERWORDA(var hKL: Pointer; szReading: PAnsiChar; dwStyle: LongWord; szRegister: PAnsiChar): HResult; + function REGISTERWORDW(var hKL: Pointer; szReading: PWideChar; dwStyle: LongWord; + szRegister: PWideChar): HResult; + function ReleaseContext(var hWnd: _RemotableHandle; hIMC: LongWord): HResult; + function SetCandidateWindow(hIMC: LongWord; var pCandidate: CANDIDATEFORM): HResult; + function SetCompositionFontA(hIMC: LongWord; var plf: LOGFONTA): HResult; + function SetCompositionFontW(hIMC: LongWord; var plf: LOGFONTW): HResult; + function SetCompositionStringA(hIMC: LongWord; dwIndex: LongWord; var pComp: Pointer; + dwCompLen: LongWord; var pRead: Pointer; dwReadLen: LongWord): HResult; + function SetCompositionStringW(hIMC: LongWord; dwIndex: LongWord; var pComp: Pointer; + dwCompLen: LongWord; var pRead: Pointer; dwReadLen: LongWord): HResult; + function SetCompositionWindow(hIMC: LongWord; var pCompForm: COMPOSITIONFORM): HResult; + function SetConversionStatus(hIMC: LongWord; fdwConversion: LongWord; fdwSentence: LongWord): HResult; + function SetOpenStatus(hIMC: LongWord; fOpen: Integer): HResult; + function SetStatusWindowPos(hIMC: LongWord; var pptPos: tagPOINT): HResult; + function SimulateHotKey(var hWnd: _RemotableHandle; dwHotKeyID: LongWord): HResult; + function UnregisterWordA(var hKL: Pointer; szReading: PAnsiChar; dwStyle: LongWord; + szUnregister: PAnsiChar): HResult; + function UnregisterWordW(var hKL: Pointer; szReading: PWideChar; dwStyle: LongWord; + szUnregister: PWideChar): HResult; + function Activate(fRestoreLayout: Integer): HResult; + function Deactivate: HResult; + function OnDefWindowProc(var hWnd: _RemotableHandle; msg: SYSUINT; wParam: UINT_PTR; + lParam: LONG_PTR; out plResult: LONG_PTR): HResult; + function FilterClientWindows(var aaClassList: Word; uSize: SYSUINT): HResult; + function GetCodePageA(var hKL: Pointer; out uCodePage: SYSUINT): HResult; + function GetLangId(var hKL: Pointer; out plid: Word): HResult; + function AssociateContextEx(var hWnd: _RemotableHandle; hIMC: LongWord; dwFlags: LongWord): HResult; + function DisableIME(idThread: LongWord): HResult; + function GetImeMenuItemsA(hIMC: LongWord; dwFlags: LongWord; dwType: LongWord; + var pImeParentMenu: IMEMENUITEMINFOA; + out pImeMenu: IMEMENUITEMINFOA; dwSize: LongWord; + out pdwResult: LongWord): HResult; + function GetImeMenuItemsW(hIMC: LongWord; dwFlags: LongWord; dwType: LongWord; + var pImeParentMenu: IMEMENUITEMINFOW; + out pImeMenu: IMEMENUITEMINFOW; dwSize: LongWord; + out pdwResult: LongWord): HResult; + function EnumInputContext(idThread: LongWord; out ppEnum: IEnumInputContext): HResult; + property DefaultInterface: IActiveIMMApp read GetDefaultInterface; + published +{$IFDEF LIVE_SERVER_AT_DESIGN_TIME} + property Server: TCActiveIMMProperties read GetServerProperties; +{$ENDIF} + end; + +{$IFDEF LIVE_SERVER_AT_DESIGN_TIME} +// *********************************************************************// +// OLE Server Properties Proxy Class +// Server Object : TCActiveIMM +// (This object is used by the IDE's Property Inspector to allow editing +// of the properties of this server) +// *********************************************************************// + TCActiveIMMProperties = class(TPersistent) + private + FServer: TCActiveIMM; + function GetDefaultInterface: IActiveIMMApp; + constructor Create(AServer: TCActiveIMM); + protected + public + property DefaultInterface: IActiveIMMApp read GetDefaultInterface; + published + end; +{$ENDIF} + +implementation + +uses + ComObj; + +class function CoCActiveIMM.Create: IActiveIMMApp; +begin + Result := CreateComObject(CLASS_CActiveIMM) as IActiveIMMApp; +end; + +class function CoCActiveIMM.CreateRemote(const MachineName: AnsiString): IActiveIMMApp; +begin + Result := CreateRemoteComObject(MachineName, CLASS_CActiveIMM) as IActiveIMMApp; +end; + +procedure TCActiveIMM.InitServerData; +const + CServerData: TServerData = ( + ClassID: '{4955DD33-B159-11D0-8FCF-00AA006BCC59}'; + IntfIID: '{08C0E040-62D1-11D1-9326-0060B067B86E}'; + EventIID: ''; + LicenseKey: nil; + Version: 500); +begin + ServerData := @CServerData; +end; + +procedure TCActiveIMM.Connect; +var + punk: IUnknown; +begin + if FIntf = nil then + begin + punk := GetServer; + Fintf:= punk as IActiveIMMApp; + end; +end; + +procedure TCActiveIMM.ConnectTo(svrIntf: IActiveIMMApp); +begin + Disconnect; + FIntf := svrIntf; +end; + +procedure TCActiveIMM.DisConnect; +begin + if Fintf <> nil then + begin + FIntf := nil; + end; +end; + +function TCActiveIMM.GetDefaultInterface: IActiveIMMApp; +begin + if FIntf = nil then + Connect; + Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation'); + Result := FIntf; +end; + +constructor TCActiveIMM.Create(AOwner: TComponent); +begin + inherited Create(AOwner); +{$IFDEF LIVE_SERVER_AT_DESIGN_TIME} + FProps := TCActiveIMMProperties.Create(Self); +{$ENDIF} +end; + +destructor TCActiveIMM.Destroy; +begin +{$IFDEF LIVE_SERVER_AT_DESIGN_TIME} + FProps.Free; +{$ENDIF} + inherited Destroy; +end; + +{$IFDEF LIVE_SERVER_AT_DESIGN_TIME} +function TCActiveIMM.GetServerProperties: TCActiveIMMProperties; +begin + Result := FProps; +end; +{$ENDIF} + +function TCActiveIMM.AssociateContext(var hWnd: _RemotableHandle; hIME: LongWord; + out phPrev: LongWord): HResult; +begin + Result := DefaultInterface.AssociateContext(hWnd, hIME, phPrev); +end; + +function TCActiveIMM.ConfigureIMEA(var hKL: Pointer; var hWnd: _RemotableHandle; dwMode: LongWord; + var pData: REGISTERWORDA): HResult; +begin + Result := DefaultInterface.ConfigureIMEA(hKL, hWnd, dwMode, pData); +end; + +function TCActiveIMM.ConfigureIMEW(var hKL: Pointer; var hWnd: _RemotableHandle; dwMode: LongWord; + var pData: REGISTERWORDW): HResult; +begin + Result := DefaultInterface.ConfigureIMEW(hKL, hWnd, dwMode, pData); +end; + +function TCActiveIMM.CreateContext(out phIMC: LongWord): HResult; +begin + Result := DefaultInterface.CreateContext(phIMC); +end; + +function TCActiveIMM.DestroyContext(hIME: LongWord): HResult; +begin + Result := DefaultInterface.DestroyContext(hIME); +end; + +function TCActiveIMM.EnumRegisterWordA(var hKL: Pointer; szReading: PAnsiChar; dwStyle: LongWord; + szRegister: PAnsiChar; var pData: Pointer; + out pEnum: IEnumRegisterWordA): HResult; +begin + Result := DefaultInterface.EnumRegisterWordA(hKL, szReading, dwStyle, szRegister, pData, pEnum); +end; + +function TCActiveIMM.EnumRegisterWordW(var hKL: Pointer; szReading: PWideChar; dwStyle: LongWord; + szRegister: PWideChar; var pData: Pointer; + out pEnum: IEnumRegisterWordW): HResult; +begin + Result := DefaultInterface.EnumRegisterWordW(hKL, szReading, dwStyle, szRegister, pData, pEnum); +end; + +function TCActiveIMM.EscapeA(var hKL: Pointer; hIMC: LongWord; uEscape: SYSUINT; + var pData: Pointer; out plResult: LONG_PTR): HResult; +begin + Result := DefaultInterface.EscapeA(hKL, hIMC, uEscape, pData, plResult); +end; + +function TCActiveIMM.EscapeW(var hKL: Pointer; hIMC: LongWord; uEscape: SYSUINT; + var pData: Pointer; out plResult: LONG_PTR): HResult; +begin + Result := DefaultInterface.EscapeW(hKL, hIMC, uEscape, pData, plResult); +end; + +function TCActiveIMM.GetCandidateListA(hIMC: LongWord; dwIndex: LongWord; uBufLen: SYSUINT; + out pCandList: CANDIDATELIST; out puCopied: SYSUINT): HResult; +begin + Result := DefaultInterface.GetCandidateListA(hIMC, dwIndex, uBufLen, pCandList, puCopied); +end; + +function TCActiveIMM.GetCandidateListW(hIMC: LongWord; dwIndex: LongWord; uBufLen: SYSUINT; + out pCandList: CANDIDATELIST; out puCopied: SYSUINT): HResult; +begin + Result := DefaultInterface.GetCandidateListW(hIMC, dwIndex, uBufLen, pCandList, puCopied); +end; + +function TCActiveIMM.GetCandidateListCountA(hIMC: LongWord; out pdwListSize: LongWord; + out pdwBufLen: LongWord): HResult; +begin + Result := DefaultInterface.GetCandidateListCountA(hIMC, pdwListSize, pdwBufLen); +end; + +function TCActiveIMM.GetCandidateListCountW(hIMC: LongWord; out pdwListSize: LongWord; + out pdwBufLen: LongWord): HResult; +begin + Result := DefaultInterface.GetCandidateListCountW(hIMC, pdwListSize, pdwBufLen); +end; + +function TCActiveIMM.GetCandidateWindow(hIMC: LongWord; dwIndex: LongWord; + out pCandidate: CANDIDATEFORM): HResult; +begin + Result := DefaultInterface.GetCandidateWindow(hIMC, dwIndex, pCandidate); +end; + +function TCActiveIMM.GetCompositionFontA(hIMC: LongWord; out plf: LOGFONTA): HResult; +begin + Result := DefaultInterface.GetCompositionFontA(hIMC, plf); +end; + +function TCActiveIMM.GetCompositionFontW(hIMC: LongWord; out plf: LOGFONTW): HResult; +begin + Result := DefaultInterface.GetCompositionFontW(hIMC, plf); +end; + +function TCActiveIMM.GetCompositionStringA(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord; + out plCopied: Integer; out pBuf: Pointer): HResult; +begin + Result := DefaultInterface.GetCompositionStringA(hIMC, dwIndex, dwBufLen, plCopied, pBuf); +end; + +function TCActiveIMM.GetCompositionStringW(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord; + out plCopied: Integer; out pBuf: Pointer): HResult; +begin + Result := DefaultInterface.GetCompositionStringW(hIMC, dwIndex, dwBufLen, plCopied, pBuf); +end; + +function TCActiveIMM.GetCompositionWindow(hIMC: LongWord; out pCompForm: COMPOSITIONFORM): HResult; +begin + Result := DefaultInterface.GetCompositionWindow(hIMC, pCompForm); +end; + +function TCActiveIMM.GetContext(var hWnd: _RemotableHandle; out phIMC: LongWord): HResult; +begin + Result := DefaultInterface.GetContext(hWnd, phIMC); +end; + +function TCActiveIMM.GetConversionListA(var hKL: Pointer; hIMC: LongWord; pSrc: PAnsiChar; + uBufLen: SYSUINT; uFlag: SYSUINT; out pDst: CANDIDATELIST; + out puCopied: SYSUINT): HResult; +begin + Result := DefaultInterface.GetConversionListA(hKL, hIMC, pSrc, uBufLen, uFlag, pDst, puCopied); +end; + +function TCActiveIMM.GetConversionListW(var hKL: Pointer; hIMC: LongWord; pSrc: PWideChar; + uBufLen: SYSUINT; uFlag: SYSUINT; out pDst: CANDIDATELIST; + out puCopied: SYSUINT): HResult; +begin + Result := DefaultInterface.GetConversionListW(hKL, hIMC, pSrc, uBufLen, uFlag, pDst, puCopied); +end; + +function TCActiveIMM.GetConversionStatus(hIMC: LongWord; out pfdwConversion: LongWord; + out pfdwSentence: LongWord): HResult; +begin + Result := DefaultInterface.GetConversionStatus(hIMC, pfdwConversion, pfdwSentence); +end; + +function TCActiveIMM.GetDefaultIMEWnd(var hWnd: _RemotableHandle; out phDefWnd: wireHWND): HResult; +begin + Result := DefaultInterface.GetDefaultIMEWnd(hWnd, phDefWnd); +end; + +function TCActiveIMM.GetDescriptionA(var hKL: Pointer; uBufLen: SYSUINT; szDescription: PAnsiChar; + out puCopied: SYSUINT): HResult; +begin + Result := DefaultInterface.GetDescriptionA(hKL, uBufLen, szDescription, puCopied); +end; + +function TCActiveIMM.GetDescriptionW(var hKL: Pointer; uBufLen: SYSUINT; szDescription: PWideChar; + out puCopied: SYSUINT): HResult; +begin + Result := DefaultInterface.GetDescriptionW(hKL, uBufLen, szDescription, puCopied); +end; + +function TCActiveIMM.GetGuideLineA(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord; + pBuf: PAnsiChar; out pdwResult: LongWord): HResult; +begin + Result := DefaultInterface.GetGuideLineA(hIMC, dwIndex, dwBufLen, pBuf, pdwResult); +end; + +function TCActiveIMM.GetGuideLineW(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord; + pBuf: PWideChar; out pdwResult: LongWord): HResult; +begin + Result := DefaultInterface.GetGuideLineW(hIMC, dwIndex, dwBufLen, pBuf, pdwResult); +end; + +function TCActiveIMM.GetIMEFileNameA(var hKL: Pointer; uBufLen: SYSUINT; szFileName: PAnsiChar; + out puCopied: SYSUINT): HResult; +begin + Result := DefaultInterface.GetIMEFileNameA(hKL, uBufLen, szFileName, puCopied); +end; + +function TCActiveIMM.GetIMEFileNameW(var hKL: Pointer; uBufLen: SYSUINT; szFileName: PWideChar; + out puCopied: SYSUINT): HResult; +begin + Result := DefaultInterface.GetIMEFileNameW(hKL, uBufLen, szFileName, puCopied); +end; + +function TCActiveIMM.GetOpenStatus(hIMC: LongWord): HResult; +begin + Result := DefaultInterface.GetOpenStatus(hIMC); +end; + +function TCActiveIMM.GetProperty(var hKL: Pointer; fdwIndex: LongWord; out pdwProperty: LongWord): HResult; +begin + Result := DefaultInterface.GetProperty(hKL, fdwIndex, pdwProperty); +end; + +function TCActiveIMM.GetRegisterWordStyleA(var hKL: Pointer; nItem: SYSUINT; + out pStyleBuf: STYLEBUFA; out puCopied: SYSUINT): HResult; +begin + Result := DefaultInterface.GetRegisterWordStyleA(hKL, nItem, pStyleBuf, puCopied); +end; + +function TCActiveIMM.GetRegisterWordStyleW(var hKL: Pointer; nItem: SYSUINT; + out pStyleBuf: STYLEBUFW; out puCopied: SYSUINT): HResult; +begin + Result := DefaultInterface.GetRegisterWordStyleW(hKL, nItem, pStyleBuf, puCopied); +end; + +function TCActiveIMM.GetStatusWindowPos(hIMC: LongWord; out pptPos: tagPOINT): HResult; +begin + Result := DefaultInterface.GetStatusWindowPos(hIMC, pptPos); +end; + +function TCActiveIMM.GetVirtualKey(var hWnd: _RemotableHandle; out puVirtualKey: SYSUINT): HResult; +begin + Result := DefaultInterface.GetVirtualKey(hWnd, puVirtualKey); +end; + +function TCActiveIMM.InstallIMEA(szIMEFileName: PAnsiChar; szLayoutText: PAnsiChar; out phKL: Pointer): HResult; +begin + Result := DefaultInterface.InstallIMEA(szIMEFileName, szLayoutText, phKL); +end; + +function TCActiveIMM.InstallIMEW(szIMEFileName: PWideChar; szLayoutText: PWideChar; + out phKL: Pointer): HResult; +begin + Result := DefaultInterface.InstallIMEW(szIMEFileName, szLayoutText, phKL); +end; + +function TCActiveIMM.IsIME(var hKL: Pointer): HResult; +begin + Result := DefaultInterface.IsIME(hKL); +end; + +function TCActiveIMM.IsUIMessageA(var hWndIME: _RemotableHandle; msg: SYSUINT; wParam: UINT_PTR; + lParam: LONG_PTR): HResult; +begin + Result := DefaultInterface.IsUIMessageA(hWndIME, msg, wParam, lParam); +end; + +function TCActiveIMM.IsUIMessageW(var hWndIME: _RemotableHandle; msg: SYSUINT; wParam: UINT_PTR; + lParam: LONG_PTR): HResult; +begin + Result := DefaultInterface.IsUIMessageW(hWndIME, msg, wParam, lParam); +end; + +function TCActiveIMM.NotifyIME(hIMC: LongWord; dwAction: LongWord; dwIndex: LongWord; + dwValue: LongWord): HResult; +begin + Result := DefaultInterface.NotifyIME(hIMC, dwAction, dwIndex, dwValue); +end; + +function TCActiveIMM.REGISTERWORDA(var hKL: Pointer; szReading: PAnsiChar; dwStyle: LongWord; + szRegister: PAnsiChar): HResult; +begin + Result := DefaultInterface.REGISTERWORDA(hKL, szReading, dwStyle, szRegister); +end; + +function TCActiveIMM.REGISTERWORDW(var hKL: Pointer; szReading: PWideChar; dwStyle: LongWord; + szRegister: PWideChar): HResult; +begin + Result := DefaultInterface.REGISTERWORDW(hKL, szReading, dwStyle, szRegister); +end; + +function TCActiveIMM.ReleaseContext(var hWnd: _RemotableHandle; hIMC: LongWord): HResult; +begin + Result := DefaultInterface.ReleaseContext(hWnd, hIMC); +end; + +function TCActiveIMM.SetCandidateWindow(hIMC: LongWord; var pCandidate: CANDIDATEFORM): HResult; +begin + Result := DefaultInterface.SetCandidateWindow(hIMC, pCandidate); +end; + +function TCActiveIMM.SetCompositionFontA(hIMC: LongWord; var plf: LOGFONTA): HResult; +begin + Result := DefaultInterface.SetCompositionFontA(hIMC, plf); +end; + +function TCActiveIMM.SetCompositionFontW(hIMC: LongWord; var plf: LOGFONTW): HResult; +begin + Result := DefaultInterface.SetCompositionFontW(hIMC, plf); +end; + +function TCActiveIMM.SetCompositionStringA(hIMC: LongWord; dwIndex: LongWord; var pComp: Pointer; + dwCompLen: LongWord; var pRead: Pointer; + dwReadLen: LongWord): HResult; +begin + Result := DefaultInterface.SetCompositionStringA(hIMC, dwIndex, pComp, dwCompLen, pRead, dwReadLen); +end; + +function TCActiveIMM.SetCompositionStringW(hIMC: LongWord; dwIndex: LongWord; var pComp: Pointer; + dwCompLen: LongWord; var pRead: Pointer; + dwReadLen: LongWord): HResult; +begin + Result := DefaultInterface.SetCompositionStringW(hIMC, dwIndex, pComp, dwCompLen, pRead, dwReadLen); +end; + +function TCActiveIMM.SetCompositionWindow(hIMC: LongWord; var pCompForm: COMPOSITIONFORM): HResult; +begin + Result := DefaultInterface.SetCompositionWindow(hIMC, pCompForm); +end; + +function TCActiveIMM.SetConversionStatus(hIMC: LongWord; fdwConversion: LongWord; + fdwSentence: LongWord): HResult; +begin + Result := DefaultInterface.SetConversionStatus(hIMC, fdwConversion, fdwSentence); +end; + +function TCActiveIMM.SetOpenStatus(hIMC: LongWord; fOpen: Integer): HResult; +begin + Result := DefaultInterface.SetOpenStatus(hIMC, fOpen); +end; + +function TCActiveIMM.SetStatusWindowPos(hIMC: LongWord; var pptPos: tagPOINT): HResult; +begin + Result := DefaultInterface.SetStatusWindowPos(hIMC, pptPos); +end; + +function TCActiveIMM.SimulateHotKey(var hWnd: _RemotableHandle; dwHotKeyID: LongWord): HResult; +begin + Result := DefaultInterface.SimulateHotKey(hWnd, dwHotKeyID); +end; + +function TCActiveIMM.UnregisterWordA(var hKL: Pointer; szReading: PAnsiChar; dwStyle: LongWord; + szUnregister: PAnsiChar): HResult; +begin + Result := DefaultInterface.UnregisterWordA(hKL, szReading, dwStyle, szUnregister); +end; + +function TCActiveIMM.UnregisterWordW(var hKL: Pointer; szReading: PWideChar; dwStyle: LongWord; + szUnregister: PWideChar): HResult; +begin + Result := DefaultInterface.UnregisterWordW(hKL, szReading, dwStyle, szUnregister); +end; + +function TCActiveIMM.Activate(fRestoreLayout: Integer): HResult; +begin + Result := DefaultInterface.Activate(fRestoreLayout); +end; + +function TCActiveIMM.Deactivate: HResult; +begin + Result := DefaultInterface.Deactivate; +end; + +function TCActiveIMM.OnDefWindowProc(var hWnd: _RemotableHandle; msg: SYSUINT; wParam: UINT_PTR; + lParam: LONG_PTR; out plResult: LONG_PTR): HResult; +begin + Result := DefaultInterface.OnDefWindowProc(hWnd, msg, wParam, lParam, plResult); +end; + +function TCActiveIMM.FilterClientWindows(var aaClassList: Word; uSize: SYSUINT): HResult; +begin + Result := DefaultInterface.FilterClientWindows(aaClassList, uSize); +end; + +function TCActiveIMM.GetCodePageA(var hKL: Pointer; out uCodePage: SYSUINT): HResult; +begin + Result := DefaultInterface.GetCodePageA(hKL, uCodePage); +end; + +function TCActiveIMM.GetLangId(var hKL: Pointer; out plid: Word): HResult; +begin + Result := DefaultInterface.GetLangId(hKL, plid); +end; + +function TCActiveIMM.AssociateContextEx(var hWnd: _RemotableHandle; hIMC: LongWord; + dwFlags: LongWord): HResult; +begin + Result := DefaultInterface.AssociateContextEx(hWnd, hIMC, dwFlags); +end; + +function TCActiveIMM.DisableIME(idThread: LongWord): HResult; +begin + Result := DefaultInterface.DisableIME(idThread); +end; + +function TCActiveIMM.GetImeMenuItemsA(hIMC: LongWord; dwFlags: LongWord; dwType: LongWord; + var pImeParentMenu: IMEMENUITEMINFOA; + out pImeMenu: IMEMENUITEMINFOA; dwSize: LongWord; + out pdwResult: LongWord): HResult; +begin + Result := DefaultInterface.GetImeMenuItemsA(hIMC, dwFlags, dwType, pImeParentMenu, pImeMenu, + dwSize, pdwResult); +end; + +function TCActiveIMM.GetImeMenuItemsW(hIMC: LongWord; dwFlags: LongWord; dwType: LongWord; + var pImeParentMenu: IMEMENUITEMINFOW; + out pImeMenu: IMEMENUITEMINFOW; dwSize: LongWord; + out pdwResult: LongWord): HResult; +begin + Result := DefaultInterface.GetImeMenuItemsW(hIMC, dwFlags, dwType, pImeParentMenu, pImeMenu, + dwSize, pdwResult); +end; + +function TCActiveIMM.EnumInputContext(idThread: LongWord; out ppEnum: IEnumInputContext): HResult; +begin + Result := DefaultInterface.EnumInputContext(idThread, ppEnum); +end; + +{$IFDEF LIVE_SERVER_AT_DESIGN_TIME} +constructor TCActiveIMMProperties.Create(AServer: TCActiveIMM); +begin + inherited Create; + FServer := AServer; +end; + +function TCActiveIMMProperties.GetDefaultInterface: IActiveIMMApp; +begin + Result := FServer.DefaultInterface; +end; + +{$ENDIF} + +end. -- cgit v1.2.3