initial commit
[rofl0r-TntUnicode.git] / Source / ActiveIMM_TLB.pas
blobd8a31e7ab907dfd71bbbd0a56e20444367495ef4
2 {*****************************************************************************}
3 { }
4 { Tnt Delphi Unicode Controls }
5 { http://www.tntware.com/delphicontrols/unicode/ }
6 { Version: 2.3.0 }
7 { }
8 { Copyright (c) 2002-2007, Troy Wolbrink (troy.wolbrink@tntware.com) }
9 { }
10 {*****************************************************************************}
12 unit ActiveIMM_TLB;
14 {$INCLUDE TntCompilers.inc}
16 {TNT-IGNORE-UNIT}
18 // ************************************************************************ //
19 // WARNING
20 // -------
21 // The types declared in this file were generated from data read from a
22 // Type Library. If this type library is explicitly or indirectly (via
23 // another type library referring to this type library) re-imported, or the
24 // 'Refresh' command of the Type Library Editor activated while editing the
25 // Type Library, the contents of this file will be regenerated and all
26 // manual modifications will be lost.
27 // ************************************************************************ //
29 // PASTLWTR : $Revision: 1.88.1.0.1.0 $
30 // File generated on 04/03/2001 11:32:13 PM from Type Library described below.
32 // *************************************************************************//
33 // NOTE:
34 // Items guarded by $IFDEF_LIVE_SERVER_AT_DESIGN_TIME are used by properties
35 // which return objects that may need to be explicitly created via a function
36 // call prior to any access via the property. These items have been disabled
37 // in order to prevent accidental use from within the object inspector. You
38 // may enable them by defining LIVE_SERVER_AT_DESIGN_TIME or by selectively
39 // removing them from the $IFDEF blocks. However, such items must still be
40 // programmatically created via a method of the appropriate CoClass before
41 // they can be used.
42 // ************************************************************************ //
43 // Type Lib: C:\Program Files\Microsoft Platform SDK\Include\dimm.tlb (1)
44 // IID\LCID: {4955DD30-B159-11D0-8FCF-00AA006BCC59}\0
45 // Helpfile:
46 // DepndLst:
47 // (1) v2.0 stdole, (C:\WINNT\System32\Stdole2.tlb)
48 // (2) v4.0 StdVCL, (C:\WINNT\System32\STDVCL40.DLL)
49 // Errors:
50 // Hint: Member 'End' of 'IActiveIMMMessagePumpOwner' changed to 'End_'
51 // Error creating palette bitmap of (TCActiveIMM) : Server D:\D5Addons\Dimm\dimm.dll contains no icons
52 // ************************************************************************ //
53 {$TYPEDADDRESS OFF} // Unit must be compiled without type-checked pointers.
54 interface
56 uses
57 Windows, ActiveX, Classes, OleServer;
59 // *********************************************************************//
60 // GUIDS declared in the TypeLibrary. Following prefixes are used:
61 // Type Libraries : LIBID_xxxx
62 // CoClasses : CLASS_xxxx
63 // DISPInterfaces : DIID_xxxx
64 // Non-DISP interfaces: IID_xxxx
65 // *********************************************************************//
66 const
67 // TypeLibrary Major and minor versions
68 ActiveIMMMajorVersion = 0;
69 ActiveIMMMinorVersion = 1;
71 LIBID_ActiveIMM: TGUID = '{4955DD30-B159-11D0-8FCF-00AA006BCC59}';
73 IID_IEnumRegisterWordA: TGUID = '{08C03412-F96B-11D0-A475-00AA006BCC59}';
74 IID_IEnumRegisterWordW: TGUID = '{4955DD31-B159-11D0-8FCF-00AA006BCC59}';
75 IID_IEnumInputContext: TGUID = '{09B5EAB0-F997-11D1-93D4-0060B067B86E}';
76 IID_IActiveIMMRegistrar: TGUID = '{B3458082-BD00-11D1-939B-0060B067B86E}';
77 IID_IActiveIMMMessagePumpOwner: TGUID = '{B5CF2CFA-8AEB-11D1-9364-0060B067B86E}';
78 IID_IActiveIMMApp: TGUID = '{08C0E040-62D1-11D1-9326-0060B067B86E}';
79 IID_IActiveIMMIME: TGUID = '{08C03411-F96B-11D0-A475-00AA006BCC59}';
80 IID_IActiveIME: TGUID = '{6FE20962-D077-11D0-8FE7-00AA006BCC59}';
81 IID_IActiveIME2: TGUID = '{E1C4BF0E-2D53-11D2-93E1-0060B067B86E}';
82 CLASS_CActiveIMM: TGUID = '{4955DD33-B159-11D0-8FCF-00AA006BCC59}';
83 type
85 // *********************************************************************//
86 // Forward declaration of types defined in TypeLibrary
87 // *********************************************************************//
88 IEnumRegisterWordA = interface;
89 IEnumRegisterWordW = interface;
90 IEnumInputContext = interface;
91 IActiveIMMRegistrar = interface;
92 IActiveIMMMessagePumpOwner = interface;
93 IActiveIMMApp = interface;
94 IActiveIMMIME = interface;
95 IActiveIME = interface;
96 IActiveIME2 = interface;
98 // *********************************************************************//
99 // Declaration of CoClasses defined in Type Library
100 // (NOTE: Here we map each CoClass to its Default Interface)
101 // *********************************************************************//
102 CActiveIMM = IActiveIMMApp;
105 // *********************************************************************//
106 // Declaration of structures, unions and aliases.
107 // *********************************************************************//
108 wireHBITMAP = ^_userHBITMAP;
109 wireHWND = ^_RemotableHandle;
110 PUserType1 = ^TGUID; {*}
111 PUserType2 = ^tagMSG; {*}
112 PUserType3 = ^REGISTERWORDA; {*}
113 PUserType4 = ^REGISTERWORDW; {*}
114 PUserType5 = ^CANDIDATEFORM; {*}
115 PUserType6 = ^LOGFONTA; {*}
116 PUserType7 = ^LOGFONTW; {*}
117 PUserType8 = ^COMPOSITIONFORM; {*}
118 PUserType9 = ^tagPOINT; {*}
119 PWord1 = ^Word; {*}
120 PUserType10 = ^IMEMENUITEMINFOA; {*}
121 PUserType11 = ^IMEMENUITEMINFOW; {*}
122 PUserType12 = ^INPUTCONTEXT; {*}
123 PByte1 = ^Byte; {*}
125 __MIDL___MIDL_itf_dimm_0000_0001 = packed record
126 lpReading: PAnsiChar;
127 lpWord: PAnsiChar;
128 end;
130 REGISTERWORDA = __MIDL___MIDL_itf_dimm_0000_0001;
132 __MIDL___MIDL_itf_dimm_0000_0002 = packed record
133 lpReading: PWideChar;
134 lpWord: PWideChar;
135 end;
137 REGISTERWORDW = __MIDL___MIDL_itf_dimm_0000_0002;
139 __MIDL___MIDL_itf_dimm_0000_0003 = packed record
140 lfHeight: Integer;
141 lfWidth: Integer;
142 lfEscapement: Integer;
143 lfOrientation: Integer;
144 lfWeight: Integer;
145 lfItalic: Byte;
146 lfUnderline: Byte;
147 lfStrikeOut: Byte;
148 lfCharSet: Byte;
149 lfOutPrecision: Byte;
150 lfClipPrecision: Byte;
151 lfQuality: Byte;
152 lfPitchAndFamily: Byte;
153 lfFaceName: array[0..31] of Shortint;
154 end;
156 LOGFONTA = __MIDL___MIDL_itf_dimm_0000_0003;
158 __MIDL___MIDL_itf_dimm_0000_0004 = packed record
159 lfHeight: Integer;
160 lfWidth: Integer;
161 lfEscapement: Integer;
162 lfOrientation: Integer;
163 lfWeight: Integer;
164 lfItalic: Byte;
165 lfUnderline: Byte;
166 lfStrikeOut: Byte;
167 lfCharSet: Byte;
168 lfOutPrecision: Byte;
169 lfClipPrecision: Byte;
170 lfQuality: Byte;
171 lfPitchAndFamily: Byte;
172 lfFaceName: array[0..31] of Word;
173 end;
175 LOGFONTW = __MIDL___MIDL_itf_dimm_0000_0004;
177 tagPOINT = packed record
178 x: Integer;
179 y: Integer;
180 end;
182 tagRECT = packed record
183 left: Integer;
184 top: Integer;
185 right: Integer;
186 bottom: Integer;
187 end;
189 __MIDL___MIDL_itf_dimm_0000_0005 = packed record
190 dwIndex: LongWord;
191 dwStyle: LongWord;
192 ptCurrentPos: tagPOINT;
193 rcArea: tagRECT;
194 end;
196 CANDIDATEFORM = __MIDL___MIDL_itf_dimm_0000_0005;
198 __MIDL___MIDL_itf_dimm_0000_0006 = packed record
199 dwStyle: LongWord;
200 ptCurrentPos: tagPOINT;
201 rcArea: tagRECT;
202 end;
204 COMPOSITIONFORM = __MIDL___MIDL_itf_dimm_0000_0006;
206 __MIDL___MIDL_itf_dimm_0000_0007 = packed record
207 dwSize: LongWord;
208 dwStyle: LongWord;
209 dwCount: LongWord;
210 dwSelection: LongWord;
211 dwPageStart: LongWord;
212 dwPageSize: LongWord;
213 dwOffset: array[0..0] of LongWord;
214 end;
216 CANDIDATELIST = __MIDL___MIDL_itf_dimm_0000_0007;
218 __MIDL___MIDL_itf_dimm_0000_0008 = packed record
219 dwStyle: LongWord;
220 szDescription: array[0..31] of Shortint;
221 end;
223 STYLEBUFA = __MIDL___MIDL_itf_dimm_0000_0008;
225 __MIDL___MIDL_itf_dimm_0000_0009 = packed record
226 dwStyle: LongWord;
227 szDescription: array[0..31] of Word;
228 end;
230 STYLEBUFW = __MIDL___MIDL_itf_dimm_0000_0009;
232 __MIDL___MIDL_itf_dimm_0000_0010 = packed record
233 cbSize: SYSUINT;
234 fType: SYSUINT;
235 fState: SYSUINT;
236 wID: SYSUINT;
237 hbmpChecked: wireHBITMAP;
238 hbmpUnchecked: wireHBITMAP;
239 dwItemData: LongWord;
240 szString: array[0..79] of Shortint;
241 hbmpItem: wireHBITMAP;
242 end;
244 IMEMENUITEMINFOA = __MIDL___MIDL_itf_dimm_0000_0010;
246 _userBITMAP = packed record
247 bmType: Integer;
248 bmWidth: Integer;
249 bmHeight: Integer;
250 bmWidthBytes: Integer;
251 bmPlanes: Word;
252 bmBitsPixel: Word;
253 cbSize: LongWord;
254 pBuffer: ^Byte;
255 end;
257 __MIDL_IWinTypes_0007 = record
258 case Integer of
259 0: (hInproc: Integer);
260 1: (hRemote: ^_userBITMAP);
261 end;
263 _userHBITMAP = packed record
264 fContext: Integer;
265 u: __MIDL_IWinTypes_0007;
266 end;
268 __MIDL___MIDL_itf_dimm_0000_0011 = packed record
269 cbSize: SYSUINT;
270 fType: SYSUINT;
271 fState: SYSUINT;
272 wID: SYSUINT;
273 hbmpChecked: wireHBITMAP;
274 hbmpUnchecked: wireHBITMAP;
275 dwItemData: LongWord;
276 szString: array[0..79] of Word;
277 hbmpItem: wireHBITMAP;
278 end;
280 IMEMENUITEMINFOW = __MIDL___MIDL_itf_dimm_0000_0011;
282 __MIDL___MIDL_itf_dimm_0000_0013 = record
283 case Integer of
284 0: (A: LOGFONTA);
285 1: (W: LOGFONTW);
286 end;
288 __MIDL___MIDL_itf_dimm_0000_0012 = packed record
289 hWnd: wireHWND;
290 fOpen: Integer;
291 ptStatusWndPos: tagPOINT;
292 ptSoftKbdPos: tagPOINT;
293 fdwConversion: LongWord;
294 fdwSentence: LongWord;
295 lfFont: __MIDL___MIDL_itf_dimm_0000_0013;
296 cfCompForm: COMPOSITIONFORM;
297 cfCandForm: array[0..3] of CANDIDATEFORM;
298 hCompStr: LongWord;
299 hCandInfo: LongWord;
300 hGuideLine: LongWord;
301 hPrivate: LongWord;
302 dwNumMsgBuf: LongWord;
303 hMsgBuf: LongWord;
304 fdwInit: LongWord;
305 dwReserve: array[0..2] of LongWord;
306 end;
308 __MIDL_IWinTypes_0009 = record
309 case Integer of
310 0: (hInproc: Integer);
311 1: (hRemote: Integer);
312 end;
314 _RemotableHandle = packed record
315 fContext: Integer;
316 u: __MIDL_IWinTypes_0009;
317 end;
319 INPUTCONTEXT = __MIDL___MIDL_itf_dimm_0000_0012;
321 __MIDL___MIDL_itf_dimm_0000_0014 = packed record
322 dwPrivateDataSize: LongWord;
323 fdwProperty: LongWord;
324 fdwConversionCaps: LongWord;
325 fdwSentenceCaps: LongWord;
326 fdwUICaps: LongWord;
327 fdwSCSCaps: LongWord;
328 fdwSelectCaps: LongWord;
329 end;
331 IMEINFO = __MIDL___MIDL_itf_dimm_0000_0014;
332 UINT_PTR = LongWord;
333 LONG_PTR = Integer;
335 tagMSG = packed record
336 hWnd: wireHWND;
337 message: SYSUINT;
338 wParam: UINT_PTR;
339 lParam: LONG_PTR;
340 time: LongWord;
341 pt: tagPOINT;
342 end;
345 // *********************************************************************//
346 // Interface: IEnumRegisterWordA
347 // Flags: (0)
348 // GUID: {08C03412-F96B-11D0-A475-00AA006BCC59}
349 // *********************************************************************//
350 IEnumRegisterWordA = interface(IUnknown)
351 ['{08C03412-F96B-11D0-A475-00AA006BCC59}']
352 function Clone(out ppEnum: IEnumRegisterWordA): HResult; stdcall;
353 function Next(ulCount: LongWord; out rgRegisterWord: REGISTERWORDA; out pcFetched: LongWord): HResult; stdcall;
354 function Reset: HResult; stdcall;
355 function Skip(ulCount: LongWord): HResult; stdcall;
356 end;
358 // *********************************************************************//
359 // Interface: IEnumRegisterWordW
360 // Flags: (0)
361 // GUID: {4955DD31-B159-11D0-8FCF-00AA006BCC59}
362 // *********************************************************************//
363 IEnumRegisterWordW = interface(IUnknown)
364 ['{4955DD31-B159-11D0-8FCF-00AA006BCC59}']
365 function Clone(out ppEnum: IEnumRegisterWordW): HResult; stdcall;
366 function Next(ulCount: LongWord; out rgRegisterWord: REGISTERWORDW; out pcFetched: LongWord): HResult; stdcall;
367 function Reset: HResult; stdcall;
368 function Skip(ulCount: LongWord): HResult; stdcall;
369 end;
371 // *********************************************************************//
372 // Interface: IEnumInputContext
373 // Flags: (0)
374 // GUID: {09B5EAB0-F997-11D1-93D4-0060B067B86E}
375 // *********************************************************************//
376 IEnumInputContext = interface(IUnknown)
377 ['{09B5EAB0-F997-11D1-93D4-0060B067B86E}']
378 function Clone(out ppEnum: IEnumInputContext): HResult; stdcall;
379 function Next(ulCount: LongWord; out rgInputContext: LongWord; out pcFetched: LongWord): HResult; stdcall;
380 function Reset: HResult; stdcall;
381 function Skip(ulCount: LongWord): HResult; stdcall;
382 end;
384 // *********************************************************************//
385 // Interface: IActiveIMMRegistrar
386 // Flags: (0)
387 // GUID: {B3458082-BD00-11D1-939B-0060B067B86E}
388 // *********************************************************************//
389 IActiveIMMRegistrar = interface(IUnknown)
390 ['{B3458082-BD00-11D1-939B-0060B067B86E}']
391 function RegisterIME(var rclsid: TGUID; lgid: Word; pszIconFile: PWideChar; pszDesc: PWideChar): HResult; stdcall;
392 function UnregisterIME(var rclsid: TGUID): HResult; stdcall;
393 end;
395 // *********************************************************************//
396 // Interface: IActiveIMMMessagePumpOwner
397 // Flags: (0)
398 // GUID: {B5CF2CFA-8AEB-11D1-9364-0060B067B86E}
399 // *********************************************************************//
400 IActiveIMMMessagePumpOwner = interface(IUnknown)
401 ['{B5CF2CFA-8AEB-11D1-9364-0060B067B86E}']
402 function Start: HResult; stdcall;
403 function End_: HResult; stdcall;
404 function OnTranslateMessage(var pMsg: tagMSG): HResult; stdcall;
405 function Pause(out pdwCookie: LongWord): HResult; stdcall;
406 function Resume(dwCookie: LongWord): HResult; stdcall;
407 end;
409 // *********************************************************************//
410 // Interface: IActiveIMMApp
411 // Flags: (0)
412 // GUID: {08C0E040-62D1-11D1-9326-0060B067B86E}
413 // *********************************************************************//
414 IActiveIMMApp = interface(IUnknown)
415 ['{08C0E040-62D1-11D1-9326-0060B067B86E}']
416 function AssociateContext(var hWnd: _RemotableHandle; hIME: LongWord; out phPrev: LongWord): HResult; stdcall;
417 function ConfigureIMEA(var hKL: Pointer; var hWnd: _RemotableHandle; dwMode: LongWord;
418 var pData: REGISTERWORDA): HResult; stdcall;
419 function ConfigureIMEW(var hKL: Pointer; var hWnd: _RemotableHandle; dwMode: LongWord;
420 var pData: REGISTERWORDW): HResult; stdcall;
421 function CreateContext(out phIMC: LongWord): HResult; stdcall;
422 function DestroyContext(hIME: LongWord): HResult; stdcall;
423 function EnumRegisterWordA(var hKL: Pointer; szReading: PAnsiChar; dwStyle: LongWord;
424 szRegister: PAnsiChar; var pData: Pointer; out pEnum: IEnumRegisterWordA): HResult; stdcall;
425 function EnumRegisterWordW(var hKL: Pointer; szReading: PWideChar; dwStyle: LongWord;
426 szRegister: PWideChar; var pData: Pointer;
427 out pEnum: IEnumRegisterWordW): HResult; stdcall;
428 function EscapeA(var hKL: Pointer; hIMC: LongWord; uEscape: SYSUINT; var pData: Pointer;
429 out plResult: LONG_PTR): HResult; stdcall;
430 function EscapeW(var hKL: Pointer; hIMC: LongWord; uEscape: SYSUINT; var pData: Pointer;
431 out plResult: LONG_PTR): HResult; stdcall;
432 function GetCandidateListA(hIMC: LongWord; dwIndex: LongWord; uBufLen: SYSUINT;
433 out pCandList: CANDIDATELIST; out puCopied: SYSUINT): HResult; stdcall;
434 function GetCandidateListW(hIMC: LongWord; dwIndex: LongWord; uBufLen: SYSUINT;
435 out pCandList: CANDIDATELIST; out puCopied: SYSUINT): HResult; stdcall;
436 function GetCandidateListCountA(hIMC: LongWord; out pdwListSize: LongWord;
437 out pdwBufLen: LongWord): HResult; stdcall;
438 function GetCandidateListCountW(hIMC: LongWord; out pdwListSize: LongWord;
439 out pdwBufLen: LongWord): HResult; stdcall;
440 function GetCandidateWindow(hIMC: LongWord; dwIndex: LongWord; out pCandidate: CANDIDATEFORM): HResult; stdcall;
441 function GetCompositionFontA(hIMC: LongWord; out plf: LOGFONTA): HResult; stdcall;
442 function GetCompositionFontW(hIMC: LongWord; out plf: LOGFONTW): HResult; stdcall;
443 function GetCompositionStringA(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord;
444 out plCopied: Integer; out pBuf: Pointer): HResult; stdcall;
445 function GetCompositionStringW(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord;
446 out plCopied: Integer; out pBuf: Pointer): HResult; stdcall;
447 function GetCompositionWindow(hIMC: LongWord; out pCompForm: COMPOSITIONFORM): HResult; stdcall;
448 function GetContext(var hWnd: _RemotableHandle; out phIMC: LongWord): HResult; stdcall;
449 function GetConversionListA(var hKL: Pointer; hIMC: LongWord; pSrc: PAnsiChar; uBufLen: SYSUINT;
450 uFlag: SYSUINT; out pDst: CANDIDATELIST; out puCopied: SYSUINT): HResult; stdcall;
451 function GetConversionListW(var hKL: Pointer; hIMC: LongWord; pSrc: PWideChar;
452 uBufLen: SYSUINT; uFlag: SYSUINT; out pDst: CANDIDATELIST;
453 out puCopied: SYSUINT): HResult; stdcall;
454 function GetConversionStatus(hIMC: LongWord; out pfdwConversion: LongWord;
455 out pfdwSentence: LongWord): HResult; stdcall;
456 function GetDefaultIMEWnd(var hWnd: _RemotableHandle; out phDefWnd: wireHWND): HResult; stdcall;
457 function GetDescriptionA(var hKL: Pointer; uBufLen: SYSUINT; szDescription: PAnsiChar;
458 out puCopied: SYSUINT): HResult; stdcall;
459 function GetDescriptionW(var hKL: Pointer; uBufLen: SYSUINT; szDescription: PWideChar;
460 out puCopied: SYSUINT): HResult; stdcall;
461 function GetGuideLineA(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord; pBuf: PAnsiChar;
462 out pdwResult: LongWord): HResult; stdcall;
463 function GetGuideLineW(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord; pBuf: PWideChar;
464 out pdwResult: LongWord): HResult; stdcall;
465 function GetIMEFileNameA(var hKL: Pointer; uBufLen: SYSUINT; szFileName: PAnsiChar;
466 out puCopied: SYSUINT): HResult; stdcall;
467 function GetIMEFileNameW(var hKL: Pointer; uBufLen: SYSUINT; szFileName: PWideChar;
468 out puCopied: SYSUINT): HResult; stdcall;
469 function GetOpenStatus(hIMC: LongWord): HResult; stdcall;
470 function GetProperty(var hKL: Pointer; fdwIndex: LongWord; out pdwProperty: LongWord): HResult; stdcall;
471 function GetRegisterWordStyleA(var hKL: Pointer; nItem: SYSUINT; out pStyleBuf: STYLEBUFA;
472 out puCopied: SYSUINT): HResult; stdcall;
473 function GetRegisterWordStyleW(var hKL: Pointer; nItem: SYSUINT; out pStyleBuf: STYLEBUFW;
474 out puCopied: SYSUINT): HResult; stdcall;
475 function GetStatusWindowPos(hIMC: LongWord; out pptPos: tagPOINT): HResult; stdcall;
476 function GetVirtualKey(var hWnd: _RemotableHandle; out puVirtualKey: SYSUINT): HResult; stdcall;
477 function InstallIMEA(szIMEFileName: PAnsiChar; szLayoutText: PAnsiChar; out phKL: Pointer): HResult; stdcall;
478 function InstallIMEW(szIMEFileName: PWideChar; szLayoutText: PWideChar; out phKL: Pointer): HResult; stdcall;
479 function IsIME(var hKL: Pointer): HResult; stdcall;
480 function IsUIMessageA(var hWndIME: _RemotableHandle; msg: SYSUINT; wParam: UINT_PTR;
481 lParam: LONG_PTR): HResult; stdcall;
482 function IsUIMessageW(var hWndIME: _RemotableHandle; msg: SYSUINT; wParam: UINT_PTR;
483 lParam: LONG_PTR): HResult; stdcall;
484 function NotifyIME(hIMC: LongWord; dwAction: LongWord; dwIndex: LongWord; dwValue: LongWord): HResult; stdcall;
485 function REGISTERWORDA(var hKL: Pointer; szReading: PAnsiChar; dwStyle: LongWord; szRegister: PAnsiChar): HResult; stdcall;
486 function REGISTERWORDW(var hKL: Pointer; szReading: PWideChar; dwStyle: LongWord;
487 szRegister: PWideChar): HResult; stdcall;
488 function ReleaseContext(var hWnd: _RemotableHandle; hIMC: LongWord): HResult; stdcall;
489 function SetCandidateWindow(hIMC: LongWord; var pCandidate: CANDIDATEFORM): HResult; stdcall;
490 function SetCompositionFontA(hIMC: LongWord; var plf: LOGFONTA): HResult; stdcall;
491 function SetCompositionFontW(hIMC: LongWord; var plf: LOGFONTW): HResult; stdcall;
492 function SetCompositionStringA(hIMC: LongWord; dwIndex: LongWord; var pComp: Pointer;
493 dwCompLen: LongWord; var pRead: Pointer; dwReadLen: LongWord): HResult; stdcall;
494 function SetCompositionStringW(hIMC: LongWord; dwIndex: LongWord; var pComp: Pointer;
495 dwCompLen: LongWord; var pRead: Pointer; dwReadLen: LongWord): HResult; stdcall;
496 function SetCompositionWindow(hIMC: LongWord; var pCompForm: COMPOSITIONFORM): HResult; stdcall;
497 function SetConversionStatus(hIMC: LongWord; fdwConversion: LongWord; fdwSentence: LongWord): HResult; stdcall;
498 function SetOpenStatus(hIMC: LongWord; fOpen: Integer): HResult; stdcall;
499 function SetStatusWindowPos(hIMC: LongWord; var pptPos: tagPOINT): HResult; stdcall;
500 function SimulateHotKey(var hWnd: _RemotableHandle; dwHotKeyID: LongWord): HResult; stdcall;
501 function UnregisterWordA(var hKL: Pointer; szReading: PAnsiChar; dwStyle: LongWord;
502 szUnregister: PAnsiChar): HResult; stdcall;
503 function UnregisterWordW(var hKL: Pointer; szReading: PWideChar; dwStyle: LongWord;
504 szUnregister: PWideChar): HResult; stdcall;
505 function Activate(fRestoreLayout: Integer): HResult; stdcall;
506 function Deactivate: HResult; stdcall;
507 function OnDefWindowProc(var hWnd: _RemotableHandle; msg: SYSUINT; wParam: UINT_PTR;
508 lParam: LONG_PTR; out plResult: LONG_PTR): HResult; stdcall;
509 function FilterClientWindows(var aaClassList: Word; uSize: SYSUINT): HResult; stdcall;
510 function GetCodePageA(var hKL: Pointer; out uCodePage: SYSUINT): HResult; stdcall;
511 function GetLangId(var hKL: Pointer; out plid: Word): HResult; stdcall;
512 function AssociateContextEx(var hWnd: _RemotableHandle; hIMC: LongWord; dwFlags: LongWord): HResult; stdcall;
513 function DisableIME(idThread: LongWord): HResult; stdcall;
514 function GetImeMenuItemsA(hIMC: LongWord; dwFlags: LongWord; dwType: LongWord;
515 var pImeParentMenu: IMEMENUITEMINFOA;
516 out pImeMenu: IMEMENUITEMINFOA; dwSize: LongWord;
517 out pdwResult: LongWord): HResult; stdcall;
518 function GetImeMenuItemsW(hIMC: LongWord; dwFlags: LongWord; dwType: LongWord;
519 var pImeParentMenu: IMEMENUITEMINFOW;
520 out pImeMenu: IMEMENUITEMINFOW; dwSize: LongWord;
521 out pdwResult: LongWord): HResult; stdcall;
522 function EnumInputContext(idThread: LongWord; out ppEnum: IEnumInputContext): HResult; stdcall;
523 end;
525 // *********************************************************************//
526 // Interface: IActiveIMMIME
527 // Flags: (0)
528 // GUID: {08C03411-F96B-11D0-A475-00AA006BCC59}
529 // *********************************************************************//
530 IActiveIMMIME = interface(IUnknown)
531 ['{08C03411-F96B-11D0-A475-00AA006BCC59}']
532 function AssociateContext(var hWnd: _RemotableHandle; hIME: LongWord; out phPrev: LongWord): HResult; stdcall;
533 function ConfigureIMEA(var hKL: Pointer; var hWnd: _RemotableHandle; dwMode: LongWord;
534 var pData: REGISTERWORDA): HResult; stdcall;
535 function ConfigureIMEW(var hKL: Pointer; var hWnd: _RemotableHandle; dwMode: LongWord;
536 var pData: REGISTERWORDW): HResult; stdcall;
537 function CreateContext(out phIMC: LongWord): HResult; stdcall;
538 function DestroyContext(hIME: LongWord): HResult; stdcall;
539 function EnumRegisterWordA(var hKL: Pointer; szReading: PAnsiChar; dwStyle: LongWord;
540 szRegister: PAnsiChar; var pData: Pointer; out pEnum: IEnumRegisterWordA): HResult; stdcall;
541 function EnumRegisterWordW(var hKL: Pointer; szReading: PWideChar; dwStyle: LongWord;
542 szRegister: PWideChar; var pData: Pointer;
543 out pEnum: IEnumRegisterWordW): HResult; stdcall;
544 function EscapeA(var hKL: Pointer; hIMC: LongWord; uEscape: SYSUINT; var pData: Pointer;
545 out plResult: LONG_PTR): HResult; stdcall;
546 function EscapeW(var hKL: Pointer; hIMC: LongWord; uEscape: SYSUINT; var pData: Pointer;
547 out plResult: LONG_PTR): HResult; stdcall;
548 function GetCandidateListA(hIMC: LongWord; dwIndex: LongWord; uBufLen: SYSUINT;
549 out pCandList: CANDIDATELIST; out puCopied: SYSUINT): HResult; stdcall;
550 function GetCandidateListW(hIMC: LongWord; dwIndex: LongWord; uBufLen: SYSUINT;
551 out pCandList: CANDIDATELIST; out puCopied: SYSUINT): HResult; stdcall;
552 function GetCandidateListCountA(hIMC: LongWord; out pdwListSize: LongWord;
553 out pdwBufLen: LongWord): HResult; stdcall;
554 function GetCandidateListCountW(hIMC: LongWord; out pdwListSize: LongWord;
555 out pdwBufLen: LongWord): HResult; stdcall;
556 function GetCandidateWindow(hIMC: LongWord; dwIndex: LongWord; out pCandidate: CANDIDATEFORM): HResult; stdcall;
557 function GetCompositionFontA(hIMC: LongWord; out plf: LOGFONTA): HResult; stdcall;
558 function GetCompositionFontW(hIMC: LongWord; out plf: LOGFONTW): HResult; stdcall;
559 function GetCompositionStringA(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord;
560 out plCopied: Integer; out pBuf: Pointer): HResult; stdcall;
561 function GetCompositionStringW(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord;
562 out plCopied: Integer; out pBuf: Pointer): HResult; stdcall;
563 function GetCompositionWindow(hIMC: LongWord; out pCompForm: COMPOSITIONFORM): HResult; stdcall;
564 function GetContext(var hWnd: _RemotableHandle; out phIMC: LongWord): HResult; stdcall;
565 function GetConversionListA(var hKL: Pointer; hIMC: LongWord; pSrc: PAnsiChar; uBufLen: SYSUINT;
566 uFlag: SYSUINT; out pDst: CANDIDATELIST; out puCopied: SYSUINT): HResult; stdcall;
567 function GetConversionListW(var hKL: Pointer; hIMC: LongWord; pSrc: PWideChar;
568 uBufLen: SYSUINT; uFlag: SYSUINT; out pDst: CANDIDATELIST;
569 out puCopied: SYSUINT): HResult; stdcall;
570 function GetConversionStatus(hIMC: LongWord; out pfdwConversion: LongWord;
571 out pfdwSentence: LongWord): HResult; stdcall;
572 function GetDefaultIMEWnd(var hWnd: _RemotableHandle; out phDefWnd: wireHWND): HResult; stdcall;
573 function GetDescriptionA(var hKL: Pointer; uBufLen: SYSUINT; szDescription: PAnsiChar;
574 out puCopied: SYSUINT): HResult; stdcall;
575 function GetDescriptionW(var hKL: Pointer; uBufLen: SYSUINT; szDescription: PWideChar;
576 out puCopied: SYSUINT): HResult; stdcall;
577 function GetGuideLineA(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord; pBuf: PAnsiChar;
578 out pdwResult: LongWord): HResult; stdcall;
579 function GetGuideLineW(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord; pBuf: PWideChar;
580 out pdwResult: LongWord): HResult; stdcall;
581 function GetIMEFileNameA(var hKL: Pointer; uBufLen: SYSUINT; szFileName: PAnsiChar;
582 out puCopied: SYSUINT): HResult; stdcall;
583 function GetIMEFileNameW(var hKL: Pointer; uBufLen: SYSUINT; szFileName: PWideChar;
584 out puCopied: SYSUINT): HResult; stdcall;
585 function GetOpenStatus(hIMC: LongWord): HResult; stdcall;
586 function GetProperty(var hKL: Pointer; fdwIndex: LongWord; out pdwProperty: LongWord): HResult; stdcall;
587 function GetRegisterWordStyleA(var hKL: Pointer; nItem: SYSUINT; out pStyleBuf: STYLEBUFA;
588 out puCopied: SYSUINT): HResult; stdcall;
589 function GetRegisterWordStyleW(var hKL: Pointer; nItem: SYSUINT; out pStyleBuf: STYLEBUFW;
590 out puCopied: SYSUINT): HResult; stdcall;
591 function GetStatusWindowPos(hIMC: LongWord; out pptPos: tagPOINT): HResult; stdcall;
592 function GetVirtualKey(var hWnd: _RemotableHandle; out puVirtualKey: SYSUINT): HResult; stdcall;
593 function InstallIMEA(szIMEFileName: PAnsiChar; szLayoutText: PAnsiChar; out phKL: Pointer): HResult; stdcall;
594 function InstallIMEW(szIMEFileName: PWideChar; szLayoutText: PWideChar; out phKL: Pointer): HResult; stdcall;
595 function IsIME(var hKL: Pointer): HResult; stdcall;
596 function IsUIMessageA(var hWndIME: _RemotableHandle; msg: SYSUINT; wParam: UINT_PTR;
597 lParam: LONG_PTR): HResult; stdcall;
598 function IsUIMessageW(var hWndIME: _RemotableHandle; msg: SYSUINT; wParam: UINT_PTR;
599 lParam: LONG_PTR): HResult; stdcall;
600 function NotifyIME(hIMC: LongWord; dwAction: LongWord; dwIndex: LongWord; dwValue: LongWord): HResult; stdcall;
601 function REGISTERWORDA(var hKL: Pointer; szReading: PAnsiChar; dwStyle: LongWord; szRegister: PAnsiChar): HResult; stdcall;
602 function REGISTERWORDW(var hKL: Pointer; szReading: PWideChar; dwStyle: LongWord;
603 szRegister: PWideChar): HResult; stdcall;
604 function ReleaseContext(var hWnd: _RemotableHandle; hIMC: LongWord): HResult; stdcall;
605 function SetCandidateWindow(hIMC: LongWord; var pCandidate: CANDIDATEFORM): HResult; stdcall;
606 function SetCompositionFontA(hIMC: LongWord; var plf: LOGFONTA): HResult; stdcall;
607 function SetCompositionFontW(hIMC: LongWord; var plf: LOGFONTW): HResult; stdcall;
608 function SetCompositionStringA(hIMC: LongWord; dwIndex: LongWord; var pComp: Pointer;
609 dwCompLen: LongWord; var pRead: Pointer; dwReadLen: LongWord): HResult; stdcall;
610 function SetCompositionStringW(hIMC: LongWord; dwIndex: LongWord; var pComp: Pointer;
611 dwCompLen: LongWord; var pRead: Pointer; dwReadLen: LongWord): HResult; stdcall;
612 function SetCompositionWindow(hIMC: LongWord; var pCompForm: COMPOSITIONFORM): HResult; stdcall;
613 function SetConversionStatus(hIMC: LongWord; fdwConversion: LongWord; fdwSentence: LongWord): HResult; stdcall;
614 function SetOpenStatus(hIMC: LongWord; fOpen: Integer): HResult; stdcall;
615 function SetStatusWindowPos(hIMC: LongWord; var pptPos: tagPOINT): HResult; stdcall;
616 function SimulateHotKey(var hWnd: _RemotableHandle; dwHotKeyID: LongWord): HResult; stdcall;
617 function UnregisterWordA(var hKL: Pointer; szReading: PAnsiChar; dwStyle: LongWord;
618 szUnregister: PAnsiChar): HResult; stdcall;
619 function UnregisterWordW(var hKL: Pointer; szReading: PWideChar; dwStyle: LongWord;
620 szUnregister: PWideChar): HResult; stdcall;
621 function GenerateMessage(hIMC: LongWord): HResult; stdcall;
622 function LockIMC(hIMC: LongWord; out ppIMC: PUserType12): HResult; stdcall;
623 function UnlockIMC(hIMC: LongWord): HResult; stdcall;
624 function GetIMCLockCount(hIMC: LongWord; out pdwLockCount: LongWord): HResult; stdcall;
625 function CreateIMCC(dwSize: LongWord; out phIMCC: LongWord): HResult; stdcall;
626 function DestroyIMCC(hIMCC: LongWord): HResult; stdcall;
627 function LockIMCC(hIMCC: LongWord; out ppv: Pointer): HResult; stdcall;
628 function UnlockIMCC(hIMCC: LongWord): HResult; stdcall;
629 function ReSizeIMCC(hIMCC: LongWord; dwSize: LongWord; out phIMCC: LongWord): HResult; stdcall;
630 function GetIMCCSize(hIMCC: LongWord; out pdwSize: LongWord): HResult; stdcall;
631 function GetIMCCLockCount(hIMCC: LongWord; out pdwLockCount: LongWord): HResult; stdcall;
632 function GetHotKey(dwHotKeyID: LongWord; out puModifiers: SYSUINT; out puVKey: SYSUINT;
633 out phKL: Pointer): HResult; stdcall;
634 function SetHotKey(dwHotKeyID: LongWord; uModifiers: SYSUINT; uVKey: SYSUINT; var hKL: Pointer): HResult; stdcall;
635 function CreateSoftKeyboard(uType: SYSUINT; var hOwner: _RemotableHandle; x: SYSINT;
636 y: SYSINT; out phSoftKbdWnd: wireHWND): HResult; stdcall;
637 function DestroySoftKeyboard(var hSoftKbdWnd: _RemotableHandle): HResult; stdcall;
638 function ShowSoftKeyboard(var hSoftKbdWnd: _RemotableHandle; nCmdShow: SYSINT): HResult; stdcall;
639 function GetCodePageA(var hKL: Pointer; out uCodePage: SYSUINT): HResult; stdcall;
640 function GetLangId(var hKL: Pointer; out plid: Word): HResult; stdcall;
641 function KeybdEvent(lgidIME: Word; bVk: Byte; bScan: Byte; dwFlags: LongWord;
642 dwExtraInfo: LongWord): HResult; stdcall;
643 function LockModal: HResult; stdcall;
644 function UnlockModal: HResult; stdcall;
645 function AssociateContextEx(var hWnd: _RemotableHandle; hIMC: LongWord; dwFlags: LongWord): HResult; stdcall;
646 function DisableIME(idThread: LongWord): HResult; stdcall;
647 function GetImeMenuItemsA(hIMC: LongWord; dwFlags: LongWord; dwType: LongWord;
648 var pImeParentMenu: IMEMENUITEMINFOA;
649 out pImeMenu: IMEMENUITEMINFOA; dwSize: LongWord;
650 out pdwResult: LongWord): HResult; stdcall;
651 function GetImeMenuItemsW(hIMC: LongWord; dwFlags: LongWord; dwType: LongWord;
652 var pImeParentMenu: IMEMENUITEMINFOW;
653 out pImeMenu: IMEMENUITEMINFOW; dwSize: LongWord;
654 out pdwResult: LongWord): HResult; stdcall;
655 function EnumInputContext(idThread: LongWord; out ppEnum: IEnumInputContext): HResult; stdcall;
656 function RequestMessageA(hIMC: LongWord; wParam: UINT_PTR; lParam: LONG_PTR;
657 out plResult: LONG_PTR): HResult; stdcall;
658 function RequestMessageW(hIMC: LongWord; wParam: UINT_PTR; lParam: LONG_PTR;
659 out plResult: LONG_PTR): HResult; stdcall;
660 function SendIMCA(var hWnd: _RemotableHandle; uMsg: SYSUINT; wParam: UINT_PTR;
661 lParam: LONG_PTR; out plResult: LONG_PTR): HResult; stdcall;
662 function SendIMCW(var hWnd: _RemotableHandle; uMsg: SYSUINT; wParam: UINT_PTR;
663 lParam: LONG_PTR; out plResult: LONG_PTR): HResult; stdcall;
664 function IsSleeping: HResult; stdcall;
665 end;
667 // *********************************************************************//
668 // Interface: IActiveIME
669 // Flags: (0)
670 // GUID: {6FE20962-D077-11D0-8FE7-00AA006BCC59}
671 // *********************************************************************//
672 IActiveIME = interface(IUnknown)
673 ['{6FE20962-D077-11D0-8FE7-00AA006BCC59}']
674 function Inquire(dwSystemInfoFlags: LongWord; out pIMEInfo: IMEINFO; szWndClass: PWideChar;
675 out pdwPrivate: LongWord): HResult; stdcall;
676 function ConversionList(hIMC: LongWord; szSource: PWideChar; uFlag: SYSUINT; uBufLen: SYSUINT;
677 out pDest: CANDIDATELIST; out puCopied: SYSUINT): HResult; stdcall;
678 function Configure(var hKL: Pointer; var hWnd: _RemotableHandle; dwMode: LongWord;
679 var pRegisterWord: REGISTERWORDW): HResult; stdcall;
680 function Destroy(uReserved: SYSUINT): HResult; stdcall;
681 function Escape(hIMC: LongWord; uEscape: SYSUINT; var pData: Pointer; out plResult: LONG_PTR): HResult; stdcall;
682 function SetActiveContext(hIMC: LongWord; fFlag: Integer): HResult; stdcall;
683 function ProcessKey(hIMC: LongWord; uVirKey: SYSUINT; lParam: LongWord; var pbKeyState: Byte): HResult; stdcall;
684 function Notify(hIMC: LongWord; dwAction: LongWord; dwIndex: LongWord; dwValue: LongWord): HResult; stdcall;
685 function Select(hIMC: LongWord; fSelect: Integer): HResult; stdcall;
686 function SetCompositionString(hIMC: LongWord; dwIndex: LongWord; var pComp: Pointer;
687 dwCompLen: LongWord; var pRead: Pointer; dwReadLen: LongWord): HResult; stdcall;
688 function ToAsciiEx(uVirKey: SYSUINT; uScanCode: SYSUINT; var pbKeyState: Byte;
689 fuState: SYSUINT; hIMC: LongWord; out pdwTransBuf: LongWord;
690 out puSize: SYSUINT): HResult; stdcall;
691 function RegisterWord(szReading: PWideChar; dwStyle: LongWord; szString: PWideChar): HResult; stdcall;
692 function UnregisterWord(szReading: PWideChar; dwStyle: LongWord; szString: PWideChar): HResult; stdcall;
693 function GetRegisterWordStyle(nItem: SYSUINT; out pStyleBuf: STYLEBUFW; out puBufSize: SYSUINT): HResult; stdcall;
694 function EnumRegisterWord(szReading: PWideChar; dwStyle: LongWord; szRegister: PWideChar;
695 var pData: Pointer; out ppEnum: IEnumRegisterWordW): HResult; stdcall;
696 function GetCodePageA(out uCodePage: SYSUINT): HResult; stdcall;
697 function GetLangId(out plid: Word): HResult; stdcall;
698 end;
700 // *********************************************************************//
701 // Interface: IActiveIME2
702 // Flags: (0)
703 // GUID: {E1C4BF0E-2D53-11D2-93E1-0060B067B86E}
704 // *********************************************************************//
705 IActiveIME2 = interface(IActiveIME)
706 ['{E1C4BF0E-2D53-11D2-93E1-0060B067B86E}']
707 function Sleep: HResult; stdcall;
708 function Unsleep(fDead: Integer): HResult; stdcall;
709 end;
711 // *********************************************************************//
712 // The Class CoCActiveIMM provides a Create and CreateRemote method to
713 // create instances of the default interface IActiveIMMApp exposed by
714 // the CoClass CActiveIMM. The functions are intended to be used by
715 // clients wishing to automate the CoClass objects exposed by the
716 // server of this typelibrary.
717 // *********************************************************************//
718 CoCActiveIMM = class
719 class function Create: IActiveIMMApp;
720 class function CreateRemote(const MachineName: AnsiString): IActiveIMMApp;
721 end;
724 // *********************************************************************//
725 // OLE Server Proxy class declaration
726 // Server Object : TCActiveIMM
727 // Help String :
728 // Default Interface: IActiveIMMApp
729 // Def. Intf. DISP? : No
730 // Event Interface:
731 // TypeFlags : (2) CanCreate
732 // *********************************************************************//
733 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
734 TCActiveIMMProperties= class;
735 {$ENDIF}
736 TCActiveIMM = class(TOleServer)
737 private
738 FIntf: IActiveIMMApp;
739 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
740 FProps: TCActiveIMMProperties;
741 function GetServerProperties: TCActiveIMMProperties;
742 {$ENDIF}
743 function GetDefaultInterface: IActiveIMMApp;
744 protected
745 procedure InitServerData; override;
746 public
747 constructor Create(AOwner: TComponent); override;
748 destructor Destroy; override;
749 procedure Connect; override;
750 procedure ConnectTo(svrIntf: IActiveIMMApp);
751 procedure Disconnect; override;
752 function AssociateContext(var hWnd: _RemotableHandle; hIME: LongWord; out phPrev: LongWord): HResult;
753 function ConfigureIMEA(var hKL: Pointer; var hWnd: _RemotableHandle; dwMode: LongWord;
754 var pData: REGISTERWORDA): HResult;
755 function ConfigureIMEW(var hKL: Pointer; var hWnd: _RemotableHandle; dwMode: LongWord;
756 var pData: REGISTERWORDW): HResult;
757 function CreateContext(out phIMC: LongWord): HResult;
758 function DestroyContext(hIME: LongWord): HResult;
759 function EnumRegisterWordA(var hKL: Pointer; szReading: PAnsiChar; dwStyle: LongWord;
760 szRegister: PAnsiChar; var pData: Pointer; out pEnum: IEnumRegisterWordA): HResult;
761 function EnumRegisterWordW(var hKL: Pointer; szReading: PWideChar; dwStyle: LongWord;
762 szRegister: PWideChar; var pData: Pointer;
763 out pEnum: IEnumRegisterWordW): HResult;
764 function EscapeA(var hKL: Pointer; hIMC: LongWord; uEscape: SYSUINT; var pData: Pointer;
765 out plResult: LONG_PTR): HResult;
766 function EscapeW(var hKL: Pointer; hIMC: LongWord; uEscape: SYSUINT; var pData: Pointer;
767 out plResult: LONG_PTR): HResult;
768 function GetCandidateListA(hIMC: LongWord; dwIndex: LongWord; uBufLen: SYSUINT;
769 out pCandList: CANDIDATELIST; out puCopied: SYSUINT): HResult;
770 function GetCandidateListW(hIMC: LongWord; dwIndex: LongWord; uBufLen: SYSUINT;
771 out pCandList: CANDIDATELIST; out puCopied: SYSUINT): HResult;
772 function GetCandidateListCountA(hIMC: LongWord; out pdwListSize: LongWord;
773 out pdwBufLen: LongWord): HResult;
774 function GetCandidateListCountW(hIMC: LongWord; out pdwListSize: LongWord;
775 out pdwBufLen: LongWord): HResult;
776 function GetCandidateWindow(hIMC: LongWord; dwIndex: LongWord; out pCandidate: CANDIDATEFORM): HResult;
777 function GetCompositionFontA(hIMC: LongWord; out plf: LOGFONTA): HResult;
778 function GetCompositionFontW(hIMC: LongWord; out plf: LOGFONTW): HResult;
779 function GetCompositionStringA(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord;
780 out plCopied: Integer; out pBuf: Pointer): HResult;
781 function GetCompositionStringW(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord;
782 out plCopied: Integer; out pBuf: Pointer): HResult;
783 function GetCompositionWindow(hIMC: LongWord; out pCompForm: COMPOSITIONFORM): HResult;
784 function GetContext(var hWnd: _RemotableHandle; out phIMC: LongWord): HResult;
785 function GetConversionListA(var hKL: Pointer; hIMC: LongWord; pSrc: PAnsiChar; uBufLen: SYSUINT;
786 uFlag: SYSUINT; out pDst: CANDIDATELIST; out puCopied: SYSUINT): HResult;
787 function GetConversionListW(var hKL: Pointer; hIMC: LongWord; pSrc: PWideChar;
788 uBufLen: SYSUINT; uFlag: SYSUINT; out pDst: CANDIDATELIST;
789 out puCopied: SYSUINT): HResult;
790 function GetConversionStatus(hIMC: LongWord; out pfdwConversion: LongWord;
791 out pfdwSentence: LongWord): HResult;
792 function GetDefaultIMEWnd(var hWnd: _RemotableHandle; out phDefWnd: wireHWND): HResult;
793 function GetDescriptionA(var hKL: Pointer; uBufLen: SYSUINT; szDescription: PAnsiChar;
794 out puCopied: SYSUINT): HResult;
795 function GetDescriptionW(var hKL: Pointer; uBufLen: SYSUINT; szDescription: PWideChar;
796 out puCopied: SYSUINT): HResult;
797 function GetGuideLineA(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord; pBuf: PAnsiChar;
798 out pdwResult: LongWord): HResult;
799 function GetGuideLineW(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord; pBuf: PWideChar;
800 out pdwResult: LongWord): HResult;
801 function GetIMEFileNameA(var hKL: Pointer; uBufLen: SYSUINT; szFileName: PAnsiChar;
802 out puCopied: SYSUINT): HResult;
803 function GetIMEFileNameW(var hKL: Pointer; uBufLen: SYSUINT; szFileName: PWideChar;
804 out puCopied: SYSUINT): HResult;
805 function GetOpenStatus(hIMC: LongWord): HResult;
806 function GetProperty(var hKL: Pointer; fdwIndex: LongWord; out pdwProperty: LongWord): HResult;
807 function GetRegisterWordStyleA(var hKL: Pointer; nItem: SYSUINT; out pStyleBuf: STYLEBUFA;
808 out puCopied: SYSUINT): HResult;
809 function GetRegisterWordStyleW(var hKL: Pointer; nItem: SYSUINT; out pStyleBuf: STYLEBUFW;
810 out puCopied: SYSUINT): HResult;
811 function GetStatusWindowPos(hIMC: LongWord; out pptPos: tagPOINT): HResult;
812 function GetVirtualKey(var hWnd: _RemotableHandle; out puVirtualKey: SYSUINT): HResult;
813 function InstallIMEA(szIMEFileName: PAnsiChar; szLayoutText: PAnsiChar; out phKL: Pointer): HResult;
814 function InstallIMEW(szIMEFileName: PWideChar; szLayoutText: PWideChar; out phKL: Pointer): HResult;
815 function IsIME(var hKL: Pointer): HResult;
816 function IsUIMessageA(var hWndIME: _RemotableHandle; msg: SYSUINT; wParam: UINT_PTR;
817 lParam: LONG_PTR): HResult;
818 function IsUIMessageW(var hWndIME: _RemotableHandle; msg: SYSUINT; wParam: UINT_PTR;
819 lParam: LONG_PTR): HResult;
820 function NotifyIME(hIMC: LongWord; dwAction: LongWord; dwIndex: LongWord; dwValue: LongWord): HResult;
821 function REGISTERWORDA(var hKL: Pointer; szReading: PAnsiChar; dwStyle: LongWord; szRegister: PAnsiChar): HResult;
822 function REGISTERWORDW(var hKL: Pointer; szReading: PWideChar; dwStyle: LongWord;
823 szRegister: PWideChar): HResult;
824 function ReleaseContext(var hWnd: _RemotableHandle; hIMC: LongWord): HResult;
825 function SetCandidateWindow(hIMC: LongWord; var pCandidate: CANDIDATEFORM): HResult;
826 function SetCompositionFontA(hIMC: LongWord; var plf: LOGFONTA): HResult;
827 function SetCompositionFontW(hIMC: LongWord; var plf: LOGFONTW): HResult;
828 function SetCompositionStringA(hIMC: LongWord; dwIndex: LongWord; var pComp: Pointer;
829 dwCompLen: LongWord; var pRead: Pointer; dwReadLen: LongWord): HResult;
830 function SetCompositionStringW(hIMC: LongWord; dwIndex: LongWord; var pComp: Pointer;
831 dwCompLen: LongWord; var pRead: Pointer; dwReadLen: LongWord): HResult;
832 function SetCompositionWindow(hIMC: LongWord; var pCompForm: COMPOSITIONFORM): HResult;
833 function SetConversionStatus(hIMC: LongWord; fdwConversion: LongWord; fdwSentence: LongWord): HResult;
834 function SetOpenStatus(hIMC: LongWord; fOpen: Integer): HResult;
835 function SetStatusWindowPos(hIMC: LongWord; var pptPos: tagPOINT): HResult;
836 function SimulateHotKey(var hWnd: _RemotableHandle; dwHotKeyID: LongWord): HResult;
837 function UnregisterWordA(var hKL: Pointer; szReading: PAnsiChar; dwStyle: LongWord;
838 szUnregister: PAnsiChar): HResult;
839 function UnregisterWordW(var hKL: Pointer; szReading: PWideChar; dwStyle: LongWord;
840 szUnregister: PWideChar): HResult;
841 function Activate(fRestoreLayout: Integer): HResult;
842 function Deactivate: HResult;
843 function OnDefWindowProc(var hWnd: _RemotableHandle; msg: SYSUINT; wParam: UINT_PTR;
844 lParam: LONG_PTR; out plResult: LONG_PTR): HResult;
845 function FilterClientWindows(var aaClassList: Word; uSize: SYSUINT): HResult;
846 function GetCodePageA(var hKL: Pointer; out uCodePage: SYSUINT): HResult;
847 function GetLangId(var hKL: Pointer; out plid: Word): HResult;
848 function AssociateContextEx(var hWnd: _RemotableHandle; hIMC: LongWord; dwFlags: LongWord): HResult;
849 function DisableIME(idThread: LongWord): HResult;
850 function GetImeMenuItemsA(hIMC: LongWord; dwFlags: LongWord; dwType: LongWord;
851 var pImeParentMenu: IMEMENUITEMINFOA;
852 out pImeMenu: IMEMENUITEMINFOA; dwSize: LongWord;
853 out pdwResult: LongWord): HResult;
854 function GetImeMenuItemsW(hIMC: LongWord; dwFlags: LongWord; dwType: LongWord;
855 var pImeParentMenu: IMEMENUITEMINFOW;
856 out pImeMenu: IMEMENUITEMINFOW; dwSize: LongWord;
857 out pdwResult: LongWord): HResult;
858 function EnumInputContext(idThread: LongWord; out ppEnum: IEnumInputContext): HResult;
859 property DefaultInterface: IActiveIMMApp read GetDefaultInterface;
860 published
861 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
862 property Server: TCActiveIMMProperties read GetServerProperties;
863 {$ENDIF}
864 end;
866 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
867 // *********************************************************************//
868 // OLE Server Properties Proxy Class
869 // Server Object : TCActiveIMM
870 // (This object is used by the IDE's Property Inspector to allow editing
871 // of the properties of this server)
872 // *********************************************************************//
873 TCActiveIMMProperties = class(TPersistent)
874 private
875 FServer: TCActiveIMM;
876 function GetDefaultInterface: IActiveIMMApp;
877 constructor Create(AServer: TCActiveIMM);
878 protected
879 public
880 property DefaultInterface: IActiveIMMApp read GetDefaultInterface;
881 published
882 end;
883 {$ENDIF}
885 implementation
887 uses
888 ComObj;
890 class function CoCActiveIMM.Create: IActiveIMMApp;
891 begin
892 Result := CreateComObject(CLASS_CActiveIMM) as IActiveIMMApp;
893 end;
895 class function CoCActiveIMM.CreateRemote(const MachineName: AnsiString): IActiveIMMApp;
896 begin
897 Result := CreateRemoteComObject(MachineName, CLASS_CActiveIMM) as IActiveIMMApp;
898 end;
900 procedure TCActiveIMM.InitServerData;
901 const
902 CServerData: TServerData = (
903 ClassID: '{4955DD33-B159-11D0-8FCF-00AA006BCC59}';
904 IntfIID: '{08C0E040-62D1-11D1-9326-0060B067B86E}';
905 EventIID: '';
906 LicenseKey: nil;
907 Version: 500);
908 begin
909 ServerData := @CServerData;
910 end;
912 procedure TCActiveIMM.Connect;
914 punk: IUnknown;
915 begin
916 if FIntf = nil then
917 begin
918 punk := GetServer;
919 Fintf:= punk as IActiveIMMApp;
920 end;
921 end;
923 procedure TCActiveIMM.ConnectTo(svrIntf: IActiveIMMApp);
924 begin
925 Disconnect;
926 FIntf := svrIntf;
927 end;
929 procedure TCActiveIMM.DisConnect;
930 begin
931 if Fintf <> nil then
932 begin
933 FIntf := nil;
934 end;
935 end;
937 function TCActiveIMM.GetDefaultInterface: IActiveIMMApp;
938 begin
939 if FIntf = nil then
940 Connect;
941 Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation');
942 Result := FIntf;
943 end;
945 constructor TCActiveIMM.Create(AOwner: TComponent);
946 begin
947 inherited Create(AOwner);
948 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
949 FProps := TCActiveIMMProperties.Create(Self);
950 {$ENDIF}
951 end;
953 destructor TCActiveIMM.Destroy;
954 begin
955 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
956 FProps.Free;
957 {$ENDIF}
958 inherited Destroy;
959 end;
961 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
962 function TCActiveIMM.GetServerProperties: TCActiveIMMProperties;
963 begin
964 Result := FProps;
965 end;
966 {$ENDIF}
968 function TCActiveIMM.AssociateContext(var hWnd: _RemotableHandle; hIME: LongWord;
969 out phPrev: LongWord): HResult;
970 begin
971 Result := DefaultInterface.AssociateContext(hWnd, hIME, phPrev);
972 end;
974 function TCActiveIMM.ConfigureIMEA(var hKL: Pointer; var hWnd: _RemotableHandle; dwMode: LongWord;
975 var pData: REGISTERWORDA): HResult;
976 begin
977 Result := DefaultInterface.ConfigureIMEA(hKL, hWnd, dwMode, pData);
978 end;
980 function TCActiveIMM.ConfigureIMEW(var hKL: Pointer; var hWnd: _RemotableHandle; dwMode: LongWord;
981 var pData: REGISTERWORDW): HResult;
982 begin
983 Result := DefaultInterface.ConfigureIMEW(hKL, hWnd, dwMode, pData);
984 end;
986 function TCActiveIMM.CreateContext(out phIMC: LongWord): HResult;
987 begin
988 Result := DefaultInterface.CreateContext(phIMC);
989 end;
991 function TCActiveIMM.DestroyContext(hIME: LongWord): HResult;
992 begin
993 Result := DefaultInterface.DestroyContext(hIME);
994 end;
996 function TCActiveIMM.EnumRegisterWordA(var hKL: Pointer; szReading: PAnsiChar; dwStyle: LongWord;
997 szRegister: PAnsiChar; var pData: Pointer;
998 out pEnum: IEnumRegisterWordA): HResult;
999 begin
1000 Result := DefaultInterface.EnumRegisterWordA(hKL, szReading, dwStyle, szRegister, pData, pEnum);
1001 end;
1003 function TCActiveIMM.EnumRegisterWordW(var hKL: Pointer; szReading: PWideChar; dwStyle: LongWord;
1004 szRegister: PWideChar; var pData: Pointer;
1005 out pEnum: IEnumRegisterWordW): HResult;
1006 begin
1007 Result := DefaultInterface.EnumRegisterWordW(hKL, szReading, dwStyle, szRegister, pData, pEnum);
1008 end;
1010 function TCActiveIMM.EscapeA(var hKL: Pointer; hIMC: LongWord; uEscape: SYSUINT;
1011 var pData: Pointer; out plResult: LONG_PTR): HResult;
1012 begin
1013 Result := DefaultInterface.EscapeA(hKL, hIMC, uEscape, pData, plResult);
1014 end;
1016 function TCActiveIMM.EscapeW(var hKL: Pointer; hIMC: LongWord; uEscape: SYSUINT;
1017 var pData: Pointer; out plResult: LONG_PTR): HResult;
1018 begin
1019 Result := DefaultInterface.EscapeW(hKL, hIMC, uEscape, pData, plResult);
1020 end;
1022 function TCActiveIMM.GetCandidateListA(hIMC: LongWord; dwIndex: LongWord; uBufLen: SYSUINT;
1023 out pCandList: CANDIDATELIST; out puCopied: SYSUINT): HResult;
1024 begin
1025 Result := DefaultInterface.GetCandidateListA(hIMC, dwIndex, uBufLen, pCandList, puCopied);
1026 end;
1028 function TCActiveIMM.GetCandidateListW(hIMC: LongWord; dwIndex: LongWord; uBufLen: SYSUINT;
1029 out pCandList: CANDIDATELIST; out puCopied: SYSUINT): HResult;
1030 begin
1031 Result := DefaultInterface.GetCandidateListW(hIMC, dwIndex, uBufLen, pCandList, puCopied);
1032 end;
1034 function TCActiveIMM.GetCandidateListCountA(hIMC: LongWord; out pdwListSize: LongWord;
1035 out pdwBufLen: LongWord): HResult;
1036 begin
1037 Result := DefaultInterface.GetCandidateListCountA(hIMC, pdwListSize, pdwBufLen);
1038 end;
1040 function TCActiveIMM.GetCandidateListCountW(hIMC: LongWord; out pdwListSize: LongWord;
1041 out pdwBufLen: LongWord): HResult;
1042 begin
1043 Result := DefaultInterface.GetCandidateListCountW(hIMC, pdwListSize, pdwBufLen);
1044 end;
1046 function TCActiveIMM.GetCandidateWindow(hIMC: LongWord; dwIndex: LongWord;
1047 out pCandidate: CANDIDATEFORM): HResult;
1048 begin
1049 Result := DefaultInterface.GetCandidateWindow(hIMC, dwIndex, pCandidate);
1050 end;
1052 function TCActiveIMM.GetCompositionFontA(hIMC: LongWord; out plf: LOGFONTA): HResult;
1053 begin
1054 Result := DefaultInterface.GetCompositionFontA(hIMC, plf);
1055 end;
1057 function TCActiveIMM.GetCompositionFontW(hIMC: LongWord; out plf: LOGFONTW): HResult;
1058 begin
1059 Result := DefaultInterface.GetCompositionFontW(hIMC, plf);
1060 end;
1062 function TCActiveIMM.GetCompositionStringA(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord;
1063 out plCopied: Integer; out pBuf: Pointer): HResult;
1064 begin
1065 Result := DefaultInterface.GetCompositionStringA(hIMC, dwIndex, dwBufLen, plCopied, pBuf);
1066 end;
1068 function TCActiveIMM.GetCompositionStringW(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord;
1069 out plCopied: Integer; out pBuf: Pointer): HResult;
1070 begin
1071 Result := DefaultInterface.GetCompositionStringW(hIMC, dwIndex, dwBufLen, plCopied, pBuf);
1072 end;
1074 function TCActiveIMM.GetCompositionWindow(hIMC: LongWord; out pCompForm: COMPOSITIONFORM): HResult;
1075 begin
1076 Result := DefaultInterface.GetCompositionWindow(hIMC, pCompForm);
1077 end;
1079 function TCActiveIMM.GetContext(var hWnd: _RemotableHandle; out phIMC: LongWord): HResult;
1080 begin
1081 Result := DefaultInterface.GetContext(hWnd, phIMC);
1082 end;
1084 function TCActiveIMM.GetConversionListA(var hKL: Pointer; hIMC: LongWord; pSrc: PAnsiChar;
1085 uBufLen: SYSUINT; uFlag: SYSUINT; out pDst: CANDIDATELIST;
1086 out puCopied: SYSUINT): HResult;
1087 begin
1088 Result := DefaultInterface.GetConversionListA(hKL, hIMC, pSrc, uBufLen, uFlag, pDst, puCopied);
1089 end;
1091 function TCActiveIMM.GetConversionListW(var hKL: Pointer; hIMC: LongWord; pSrc: PWideChar;
1092 uBufLen: SYSUINT; uFlag: SYSUINT; out pDst: CANDIDATELIST;
1093 out puCopied: SYSUINT): HResult;
1094 begin
1095 Result := DefaultInterface.GetConversionListW(hKL, hIMC, pSrc, uBufLen, uFlag, pDst, puCopied);
1096 end;
1098 function TCActiveIMM.GetConversionStatus(hIMC: LongWord; out pfdwConversion: LongWord;
1099 out pfdwSentence: LongWord): HResult;
1100 begin
1101 Result := DefaultInterface.GetConversionStatus(hIMC, pfdwConversion, pfdwSentence);
1102 end;
1104 function TCActiveIMM.GetDefaultIMEWnd(var hWnd: _RemotableHandle; out phDefWnd: wireHWND): HResult;
1105 begin
1106 Result := DefaultInterface.GetDefaultIMEWnd(hWnd, phDefWnd);
1107 end;
1109 function TCActiveIMM.GetDescriptionA(var hKL: Pointer; uBufLen: SYSUINT; szDescription: PAnsiChar;
1110 out puCopied: SYSUINT): HResult;
1111 begin
1112 Result := DefaultInterface.GetDescriptionA(hKL, uBufLen, szDescription, puCopied);
1113 end;
1115 function TCActiveIMM.GetDescriptionW(var hKL: Pointer; uBufLen: SYSUINT; szDescription: PWideChar;
1116 out puCopied: SYSUINT): HResult;
1117 begin
1118 Result := DefaultInterface.GetDescriptionW(hKL, uBufLen, szDescription, puCopied);
1119 end;
1121 function TCActiveIMM.GetGuideLineA(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord;
1122 pBuf: PAnsiChar; out pdwResult: LongWord): HResult;
1123 begin
1124 Result := DefaultInterface.GetGuideLineA(hIMC, dwIndex, dwBufLen, pBuf, pdwResult);
1125 end;
1127 function TCActiveIMM.GetGuideLineW(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord;
1128 pBuf: PWideChar; out pdwResult: LongWord): HResult;
1129 begin
1130 Result := DefaultInterface.GetGuideLineW(hIMC, dwIndex, dwBufLen, pBuf, pdwResult);
1131 end;
1133 function TCActiveIMM.GetIMEFileNameA(var hKL: Pointer; uBufLen: SYSUINT; szFileName: PAnsiChar;
1134 out puCopied: SYSUINT): HResult;
1135 begin
1136 Result := DefaultInterface.GetIMEFileNameA(hKL, uBufLen, szFileName, puCopied);
1137 end;
1139 function TCActiveIMM.GetIMEFileNameW(var hKL: Pointer; uBufLen: SYSUINT; szFileName: PWideChar;
1140 out puCopied: SYSUINT): HResult;
1141 begin
1142 Result := DefaultInterface.GetIMEFileNameW(hKL, uBufLen, szFileName, puCopied);
1143 end;
1145 function TCActiveIMM.GetOpenStatus(hIMC: LongWord): HResult;
1146 begin
1147 Result := DefaultInterface.GetOpenStatus(hIMC);
1148 end;
1150 function TCActiveIMM.GetProperty(var hKL: Pointer; fdwIndex: LongWord; out pdwProperty: LongWord): HResult;
1151 begin
1152 Result := DefaultInterface.GetProperty(hKL, fdwIndex, pdwProperty);
1153 end;
1155 function TCActiveIMM.GetRegisterWordStyleA(var hKL: Pointer; nItem: SYSUINT;
1156 out pStyleBuf: STYLEBUFA; out puCopied: SYSUINT): HResult;
1157 begin
1158 Result := DefaultInterface.GetRegisterWordStyleA(hKL, nItem, pStyleBuf, puCopied);
1159 end;
1161 function TCActiveIMM.GetRegisterWordStyleW(var hKL: Pointer; nItem: SYSUINT;
1162 out pStyleBuf: STYLEBUFW; out puCopied: SYSUINT): HResult;
1163 begin
1164 Result := DefaultInterface.GetRegisterWordStyleW(hKL, nItem, pStyleBuf, puCopied);
1165 end;
1167 function TCActiveIMM.GetStatusWindowPos(hIMC: LongWord; out pptPos: tagPOINT): HResult;
1168 begin
1169 Result := DefaultInterface.GetStatusWindowPos(hIMC, pptPos);
1170 end;
1172 function TCActiveIMM.GetVirtualKey(var hWnd: _RemotableHandle; out puVirtualKey: SYSUINT): HResult;
1173 begin
1174 Result := DefaultInterface.GetVirtualKey(hWnd, puVirtualKey);
1175 end;
1177 function TCActiveIMM.InstallIMEA(szIMEFileName: PAnsiChar; szLayoutText: PAnsiChar; out phKL: Pointer): HResult;
1178 begin
1179 Result := DefaultInterface.InstallIMEA(szIMEFileName, szLayoutText, phKL);
1180 end;
1182 function TCActiveIMM.InstallIMEW(szIMEFileName: PWideChar; szLayoutText: PWideChar;
1183 out phKL: Pointer): HResult;
1184 begin
1185 Result := DefaultInterface.InstallIMEW(szIMEFileName, szLayoutText, phKL);
1186 end;
1188 function TCActiveIMM.IsIME(var hKL: Pointer): HResult;
1189 begin
1190 Result := DefaultInterface.IsIME(hKL);
1191 end;
1193 function TCActiveIMM.IsUIMessageA(var hWndIME: _RemotableHandle; msg: SYSUINT; wParam: UINT_PTR;
1194 lParam: LONG_PTR): HResult;
1195 begin
1196 Result := DefaultInterface.IsUIMessageA(hWndIME, msg, wParam, lParam);
1197 end;
1199 function TCActiveIMM.IsUIMessageW(var hWndIME: _RemotableHandle; msg: SYSUINT; wParam: UINT_PTR;
1200 lParam: LONG_PTR): HResult;
1201 begin
1202 Result := DefaultInterface.IsUIMessageW(hWndIME, msg, wParam, lParam);
1203 end;
1205 function TCActiveIMM.NotifyIME(hIMC: LongWord; dwAction: LongWord; dwIndex: LongWord;
1206 dwValue: LongWord): HResult;
1207 begin
1208 Result := DefaultInterface.NotifyIME(hIMC, dwAction, dwIndex, dwValue);
1209 end;
1211 function TCActiveIMM.REGISTERWORDA(var hKL: Pointer; szReading: PAnsiChar; dwStyle: LongWord;
1212 szRegister: PAnsiChar): HResult;
1213 begin
1214 Result := DefaultInterface.REGISTERWORDA(hKL, szReading, dwStyle, szRegister);
1215 end;
1217 function TCActiveIMM.REGISTERWORDW(var hKL: Pointer; szReading: PWideChar; dwStyle: LongWord;
1218 szRegister: PWideChar): HResult;
1219 begin
1220 Result := DefaultInterface.REGISTERWORDW(hKL, szReading, dwStyle, szRegister);
1221 end;
1223 function TCActiveIMM.ReleaseContext(var hWnd: _RemotableHandle; hIMC: LongWord): HResult;
1224 begin
1225 Result := DefaultInterface.ReleaseContext(hWnd, hIMC);
1226 end;
1228 function TCActiveIMM.SetCandidateWindow(hIMC: LongWord; var pCandidate: CANDIDATEFORM): HResult;
1229 begin
1230 Result := DefaultInterface.SetCandidateWindow(hIMC, pCandidate);
1231 end;
1233 function TCActiveIMM.SetCompositionFontA(hIMC: LongWord; var plf: LOGFONTA): HResult;
1234 begin
1235 Result := DefaultInterface.SetCompositionFontA(hIMC, plf);
1236 end;
1238 function TCActiveIMM.SetCompositionFontW(hIMC: LongWord; var plf: LOGFONTW): HResult;
1239 begin
1240 Result := DefaultInterface.SetCompositionFontW(hIMC, plf);
1241 end;
1243 function TCActiveIMM.SetCompositionStringA(hIMC: LongWord; dwIndex: LongWord; var pComp: Pointer;
1244 dwCompLen: LongWord; var pRead: Pointer;
1245 dwReadLen: LongWord): HResult;
1246 begin
1247 Result := DefaultInterface.SetCompositionStringA(hIMC, dwIndex, pComp, dwCompLen, pRead, dwReadLen);
1248 end;
1250 function TCActiveIMM.SetCompositionStringW(hIMC: LongWord; dwIndex: LongWord; var pComp: Pointer;
1251 dwCompLen: LongWord; var pRead: Pointer;
1252 dwReadLen: LongWord): HResult;
1253 begin
1254 Result := DefaultInterface.SetCompositionStringW(hIMC, dwIndex, pComp, dwCompLen, pRead, dwReadLen);
1255 end;
1257 function TCActiveIMM.SetCompositionWindow(hIMC: LongWord; var pCompForm: COMPOSITIONFORM): HResult;
1258 begin
1259 Result := DefaultInterface.SetCompositionWindow(hIMC, pCompForm);
1260 end;
1262 function TCActiveIMM.SetConversionStatus(hIMC: LongWord; fdwConversion: LongWord;
1263 fdwSentence: LongWord): HResult;
1264 begin
1265 Result := DefaultInterface.SetConversionStatus(hIMC, fdwConversion, fdwSentence);
1266 end;
1268 function TCActiveIMM.SetOpenStatus(hIMC: LongWord; fOpen: Integer): HResult;
1269 begin
1270 Result := DefaultInterface.SetOpenStatus(hIMC, fOpen);
1271 end;
1273 function TCActiveIMM.SetStatusWindowPos(hIMC: LongWord; var pptPos: tagPOINT): HResult;
1274 begin
1275 Result := DefaultInterface.SetStatusWindowPos(hIMC, pptPos);
1276 end;
1278 function TCActiveIMM.SimulateHotKey(var hWnd: _RemotableHandle; dwHotKeyID: LongWord): HResult;
1279 begin
1280 Result := DefaultInterface.SimulateHotKey(hWnd, dwHotKeyID);
1281 end;
1283 function TCActiveIMM.UnregisterWordA(var hKL: Pointer; szReading: PAnsiChar; dwStyle: LongWord;
1284 szUnregister: PAnsiChar): HResult;
1285 begin
1286 Result := DefaultInterface.UnregisterWordA(hKL, szReading, dwStyle, szUnregister);
1287 end;
1289 function TCActiveIMM.UnregisterWordW(var hKL: Pointer; szReading: PWideChar; dwStyle: LongWord;
1290 szUnregister: PWideChar): HResult;
1291 begin
1292 Result := DefaultInterface.UnregisterWordW(hKL, szReading, dwStyle, szUnregister);
1293 end;
1295 function TCActiveIMM.Activate(fRestoreLayout: Integer): HResult;
1296 begin
1297 Result := DefaultInterface.Activate(fRestoreLayout);
1298 end;
1300 function TCActiveIMM.Deactivate: HResult;
1301 begin
1302 Result := DefaultInterface.Deactivate;
1303 end;
1305 function TCActiveIMM.OnDefWindowProc(var hWnd: _RemotableHandle; msg: SYSUINT; wParam: UINT_PTR;
1306 lParam: LONG_PTR; out plResult: LONG_PTR): HResult;
1307 begin
1308 Result := DefaultInterface.OnDefWindowProc(hWnd, msg, wParam, lParam, plResult);
1309 end;
1311 function TCActiveIMM.FilterClientWindows(var aaClassList: Word; uSize: SYSUINT): HResult;
1312 begin
1313 Result := DefaultInterface.FilterClientWindows(aaClassList, uSize);
1314 end;
1316 function TCActiveIMM.GetCodePageA(var hKL: Pointer; out uCodePage: SYSUINT): HResult;
1317 begin
1318 Result := DefaultInterface.GetCodePageA(hKL, uCodePage);
1319 end;
1321 function TCActiveIMM.GetLangId(var hKL: Pointer; out plid: Word): HResult;
1322 begin
1323 Result := DefaultInterface.GetLangId(hKL, plid);
1324 end;
1326 function TCActiveIMM.AssociateContextEx(var hWnd: _RemotableHandle; hIMC: LongWord;
1327 dwFlags: LongWord): HResult;
1328 begin
1329 Result := DefaultInterface.AssociateContextEx(hWnd, hIMC, dwFlags);
1330 end;
1332 function TCActiveIMM.DisableIME(idThread: LongWord): HResult;
1333 begin
1334 Result := DefaultInterface.DisableIME(idThread);
1335 end;
1337 function TCActiveIMM.GetImeMenuItemsA(hIMC: LongWord; dwFlags: LongWord; dwType: LongWord;
1338 var pImeParentMenu: IMEMENUITEMINFOA;
1339 out pImeMenu: IMEMENUITEMINFOA; dwSize: LongWord;
1340 out pdwResult: LongWord): HResult;
1341 begin
1342 Result := DefaultInterface.GetImeMenuItemsA(hIMC, dwFlags, dwType, pImeParentMenu, pImeMenu,
1343 dwSize, pdwResult);
1344 end;
1346 function TCActiveIMM.GetImeMenuItemsW(hIMC: LongWord; dwFlags: LongWord; dwType: LongWord;
1347 var pImeParentMenu: IMEMENUITEMINFOW;
1348 out pImeMenu: IMEMENUITEMINFOW; dwSize: LongWord;
1349 out pdwResult: LongWord): HResult;
1350 begin
1351 Result := DefaultInterface.GetImeMenuItemsW(hIMC, dwFlags, dwType, pImeParentMenu, pImeMenu,
1352 dwSize, pdwResult);
1353 end;
1355 function TCActiveIMM.EnumInputContext(idThread: LongWord; out ppEnum: IEnumInputContext): HResult;
1356 begin
1357 Result := DefaultInterface.EnumInputContext(idThread, ppEnum);
1358 end;
1360 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
1361 constructor TCActiveIMMProperties.Create(AServer: TCActiveIMM);
1362 begin
1363 inherited Create;
1364 FServer := AServer;
1365 end;
1367 function TCActiveIMMProperties.GetDefaultInterface: IActiveIMMApp;
1368 begin
1369 Result := FServer.DefaultInterface;
1370 end;
1372 {$ENDIF}
1374 end.