Files

1375 lines
68 KiB
ObjectPascal

{*****************************************************************************}
{ }
{ 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 compilers.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.88.1.0.1.0 $
// 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.