source: cprs/branches/tmg-cprs/TMG_Extra/tntUniCode/Source/ActiveIMM_TLB.pas

Last change on this file was 672, checked in by Kevin Toppenberg, 9 years ago

Adding source to tntControls for compilation

File size: 68.1 KB
Line 
1
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{*****************************************************************************}
11
12unit ActiveIMM_TLB;
13
14{$INCLUDE TntCompilers.inc}
15
16{TNT-IGNORE-UNIT}
17
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// ************************************************************************ //
28
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.
31
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.
54interface
55
56uses
57  Windows, ActiveX, Classes, OleServer;
58
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// *********************************************************************//
66const
67  // TypeLibrary Major and minor versions
68  ActiveIMMMajorVersion = 0;
69  ActiveIMMMinorVersion = 1;
70
71  LIBID_ActiveIMM: TGUID = '{4955DD30-B159-11D0-8FCF-00AA006BCC59}';
72
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}';
83type
84
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;
97
98// *********************************************************************//
99// Declaration of CoClasses defined in Type Library                       
100// (NOTE: Here we map each CoClass to its Default Interface)             
101// *********************************************************************//
102  CActiveIMM = IActiveIMMApp;
103
104
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; {*}
124
125  __MIDL___MIDL_itf_dimm_0000_0001 = packed record
126    lpReading: PAnsiChar;
127    lpWord: PAnsiChar;
128  end;
129
130  REGISTERWORDA = __MIDL___MIDL_itf_dimm_0000_0001; 
131
132  __MIDL___MIDL_itf_dimm_0000_0002 = packed record
133    lpReading: PWideChar;
134    lpWord: PWideChar;
135  end;
136
137  REGISTERWORDW = __MIDL___MIDL_itf_dimm_0000_0002; 
138
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;
155
156  LOGFONTA = __MIDL___MIDL_itf_dimm_0000_0003; 
157
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;
174
175  LOGFONTW = __MIDL___MIDL_itf_dimm_0000_0004; 
176
177  tagPOINT = packed record
178    x: Integer;
179    y: Integer;
180  end;
181
182  tagRECT = packed record
183    left: Integer;
184    top: Integer;
185    right: Integer;
186    bottom: Integer;
187  end;
188
189  __MIDL___MIDL_itf_dimm_0000_0005 = packed record
190    dwIndex: LongWord;
191    dwStyle: LongWord;
192    ptCurrentPos: tagPOINT;
193    rcArea: tagRECT;
194  end;
195
196  CANDIDATEFORM = __MIDL___MIDL_itf_dimm_0000_0005; 
197
198  __MIDL___MIDL_itf_dimm_0000_0006 = packed record
199    dwStyle: LongWord;
200    ptCurrentPos: tagPOINT;
201    rcArea: tagRECT;
202  end;
203
204  COMPOSITIONFORM = __MIDL___MIDL_itf_dimm_0000_0006; 
205
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;
215
216  CANDIDATELIST = __MIDL___MIDL_itf_dimm_0000_0007; 
217
218  __MIDL___MIDL_itf_dimm_0000_0008 = packed record
219    dwStyle: LongWord;
220    szDescription: array[0..31] of Shortint;
221  end;
222
223  STYLEBUFA = __MIDL___MIDL_itf_dimm_0000_0008; 
224
225  __MIDL___MIDL_itf_dimm_0000_0009 = packed record
226    dwStyle: LongWord;
227    szDescription: array[0..31] of Word;
228  end;
229
230  STYLEBUFW = __MIDL___MIDL_itf_dimm_0000_0009; 
231
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;
243
244  IMEMENUITEMINFOA = __MIDL___MIDL_itf_dimm_0000_0010; 
245
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;
256
257  __MIDL_IWinTypes_0007 = record
258    case Integer of
259      0: (hInproc: Integer);
260      1: (hRemote: ^_userBITMAP);
261  end;
262
263  _userHBITMAP = packed record
264    fContext: Integer;
265    u: __MIDL_IWinTypes_0007;
266  end;
267
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;
279
280  IMEMENUITEMINFOW = __MIDL___MIDL_itf_dimm_0000_0011; 
281
282  __MIDL___MIDL_itf_dimm_0000_0013 = record
283    case Integer of
284      0: (A: LOGFONTA);
285      1: (W: LOGFONTW);
286  end;
287
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;
307
308  __MIDL_IWinTypes_0009 = record
309    case Integer of
310      0: (hInproc: Integer);
311      1: (hRemote: Integer);
312  end;
313
314  _RemotableHandle = packed record
315    fContext: Integer;
316    u: __MIDL_IWinTypes_0009;
317  end;
318
319  INPUTCONTEXT = __MIDL___MIDL_itf_dimm_0000_0012; 
320
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;
330
331  IMEINFO = __MIDL___MIDL_itf_dimm_0000_0014;
332  UINT_PTR = LongWord; 
333  LONG_PTR = Integer; 
334
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;
343
344
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;
357
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;
370
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;
383
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;
394
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;
408
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;
524
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;
666
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;
699
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;
710
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;
722
723
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;
865
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}
884
885implementation
886
887uses
888  ComObj;
889
890class function CoCActiveIMM.Create: IActiveIMMApp;
891begin
892  Result := CreateComObject(CLASS_CActiveIMM) as IActiveIMMApp;
893end;
894
895class function CoCActiveIMM.CreateRemote(const MachineName: AnsiString): IActiveIMMApp;
896begin
897  Result := CreateRemoteComObject(MachineName, CLASS_CActiveIMM) as IActiveIMMApp;
898end;
899
900procedure TCActiveIMM.InitServerData;
901const
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);
908begin
909  ServerData := @CServerData;
910end;
911
912procedure TCActiveIMM.Connect;
913var
914  punk: IUnknown;
915begin
916  if FIntf = nil then
917  begin
918    punk := GetServer;
919    Fintf:= punk as IActiveIMMApp;
920  end;
921end;
922
923procedure TCActiveIMM.ConnectTo(svrIntf: IActiveIMMApp);
924begin
925  Disconnect;
926  FIntf := svrIntf;
927end;
928
929procedure TCActiveIMM.DisConnect;
930begin
931  if Fintf <> nil then
932  begin
933    FIntf := nil;
934  end;
935end;
936
937function TCActiveIMM.GetDefaultInterface: IActiveIMMApp;
938begin
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;
943end;
944
945constructor TCActiveIMM.Create(AOwner: TComponent);
946begin
947  inherited Create(AOwner);
948{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
949  FProps := TCActiveIMMProperties.Create(Self);
950{$ENDIF}
951end;
952
953destructor TCActiveIMM.Destroy;
954begin
955{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
956  FProps.Free;
957{$ENDIF}
958  inherited Destroy;
959end;
960
961{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
962function TCActiveIMM.GetServerProperties: TCActiveIMMProperties;
963begin
964  Result := FProps;
965end;
966{$ENDIF}
967
968function  TCActiveIMM.AssociateContext(var hWnd: _RemotableHandle; hIME: LongWord; 
969                                       out phPrev: LongWord): HResult;
970begin
971  Result := DefaultInterface.AssociateContext(hWnd, hIME, phPrev);
972end;
973
974function  TCActiveIMM.ConfigureIMEA(var hKL: Pointer; var hWnd: _RemotableHandle; dwMode: LongWord; 
975                                    var pData: REGISTERWORDA): HResult;
976begin
977  Result := DefaultInterface.ConfigureIMEA(hKL, hWnd, dwMode, pData);
978end;
979
980function  TCActiveIMM.ConfigureIMEW(var hKL: Pointer; var hWnd: _RemotableHandle; dwMode: LongWord; 
981                                    var pData: REGISTERWORDW): HResult;
982begin
983  Result := DefaultInterface.ConfigureIMEW(hKL, hWnd, dwMode, pData);
984end;
985
986function  TCActiveIMM.CreateContext(out phIMC: LongWord): HResult;
987begin
988  Result := DefaultInterface.CreateContext(phIMC);
989end;
990
991function  TCActiveIMM.DestroyContext(hIME: LongWord): HResult;
992begin
993  Result := DefaultInterface.DestroyContext(hIME);
994end;
995
996function  TCActiveIMM.EnumRegisterWordA(var hKL: Pointer; szReading: PAnsiChar; dwStyle: LongWord; 
997                                        szRegister: PAnsiChar; var pData: Pointer; 
998                                        out pEnum: IEnumRegisterWordA): HResult;
999begin
1000  Result := DefaultInterface.EnumRegisterWordA(hKL, szReading, dwStyle, szRegister, pData, pEnum);
1001end;
1002
1003function  TCActiveIMM.EnumRegisterWordW(var hKL: Pointer; szReading: PWideChar; dwStyle: LongWord; 
1004                                        szRegister: PWideChar; var pData: Pointer; 
1005                                        out pEnum: IEnumRegisterWordW): HResult;
1006begin
1007  Result := DefaultInterface.EnumRegisterWordW(hKL, szReading, dwStyle, szRegister, pData, pEnum);
1008end;
1009
1010function  TCActiveIMM.EscapeA(var hKL: Pointer; hIMC: LongWord; uEscape: SYSUINT; 
1011                              var pData: Pointer; out plResult: LONG_PTR): HResult;
1012begin
1013  Result := DefaultInterface.EscapeA(hKL, hIMC, uEscape, pData, plResult);
1014end;
1015
1016function  TCActiveIMM.EscapeW(var hKL: Pointer; hIMC: LongWord; uEscape: SYSUINT; 
1017                              var pData: Pointer; out plResult: LONG_PTR): HResult;
1018begin
1019  Result := DefaultInterface.EscapeW(hKL, hIMC, uEscape, pData, plResult);
1020end;
1021
1022function  TCActiveIMM.GetCandidateListA(hIMC: LongWord; dwIndex: LongWord; uBufLen: SYSUINT; 
1023                                        out pCandList: CANDIDATELIST; out puCopied: SYSUINT): HResult;
1024begin
1025  Result := DefaultInterface.GetCandidateListA(hIMC, dwIndex, uBufLen, pCandList, puCopied);
1026end;
1027
1028function  TCActiveIMM.GetCandidateListW(hIMC: LongWord; dwIndex: LongWord; uBufLen: SYSUINT; 
1029                                        out pCandList: CANDIDATELIST; out puCopied: SYSUINT): HResult;
1030begin
1031  Result := DefaultInterface.GetCandidateListW(hIMC, dwIndex, uBufLen, pCandList, puCopied);
1032end;
1033
1034function  TCActiveIMM.GetCandidateListCountA(hIMC: LongWord; out pdwListSize: LongWord; 
1035                                             out pdwBufLen: LongWord): HResult;
1036begin
1037  Result := DefaultInterface.GetCandidateListCountA(hIMC, pdwListSize, pdwBufLen);
1038end;
1039
1040function  TCActiveIMM.GetCandidateListCountW(hIMC: LongWord; out pdwListSize: LongWord; 
1041                                             out pdwBufLen: LongWord): HResult;
1042begin
1043  Result := DefaultInterface.GetCandidateListCountW(hIMC, pdwListSize, pdwBufLen);
1044end;
1045
1046function  TCActiveIMM.GetCandidateWindow(hIMC: LongWord; dwIndex: LongWord; 
1047                                         out pCandidate: CANDIDATEFORM): HResult;
1048begin
1049  Result := DefaultInterface.GetCandidateWindow(hIMC, dwIndex, pCandidate);
1050end;
1051
1052function  TCActiveIMM.GetCompositionFontA(hIMC: LongWord; out plf: LOGFONTA): HResult;
1053begin
1054  Result := DefaultInterface.GetCompositionFontA(hIMC, plf);
1055end;
1056
1057function  TCActiveIMM.GetCompositionFontW(hIMC: LongWord; out plf: LOGFONTW): HResult;
1058begin
1059  Result := DefaultInterface.GetCompositionFontW(hIMC, plf);
1060end;
1061
1062function  TCActiveIMM.GetCompositionStringA(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord; 
1063                                            out plCopied: Integer; out pBuf: Pointer): HResult;
1064begin
1065  Result := DefaultInterface.GetCompositionStringA(hIMC, dwIndex, dwBufLen, plCopied, pBuf);
1066end;
1067
1068function  TCActiveIMM.GetCompositionStringW(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord; 
1069                                            out plCopied: Integer; out pBuf: Pointer): HResult;
1070begin
1071  Result := DefaultInterface.GetCompositionStringW(hIMC, dwIndex, dwBufLen, plCopied, pBuf);
1072end;
1073
1074function  TCActiveIMM.GetCompositionWindow(hIMC: LongWord; out pCompForm: COMPOSITIONFORM): HResult;
1075begin
1076  Result := DefaultInterface.GetCompositionWindow(hIMC, pCompForm);
1077end;
1078
1079function  TCActiveIMM.GetContext(var hWnd: _RemotableHandle; out phIMC: LongWord): HResult;
1080begin
1081  Result := DefaultInterface.GetContext(hWnd, phIMC);
1082end;
1083
1084function  TCActiveIMM.GetConversionListA(var hKL: Pointer; hIMC: LongWord; pSrc: PAnsiChar; 
1085                                         uBufLen: SYSUINT; uFlag: SYSUINT; out pDst: CANDIDATELIST; 
1086                                         out puCopied: SYSUINT): HResult;
1087begin
1088  Result := DefaultInterface.GetConversionListA(hKL, hIMC, pSrc, uBufLen, uFlag, pDst, puCopied);
1089end;
1090
1091function  TCActiveIMM.GetConversionListW(var hKL: Pointer; hIMC: LongWord; pSrc: PWideChar; 
1092                                         uBufLen: SYSUINT; uFlag: SYSUINT; out pDst: CANDIDATELIST; 
1093                                         out puCopied: SYSUINT): HResult;
1094begin
1095  Result := DefaultInterface.GetConversionListW(hKL, hIMC, pSrc, uBufLen, uFlag, pDst, puCopied);
1096end;
1097
1098function  TCActiveIMM.GetConversionStatus(hIMC: LongWord; out pfdwConversion: LongWord; 
1099                                          out pfdwSentence: LongWord): HResult;
1100begin
1101  Result := DefaultInterface.GetConversionStatus(hIMC, pfdwConversion, pfdwSentence);
1102end;
1103
1104function  TCActiveIMM.GetDefaultIMEWnd(var hWnd: _RemotableHandle; out phDefWnd: wireHWND): HResult;
1105begin
1106  Result := DefaultInterface.GetDefaultIMEWnd(hWnd, phDefWnd);
1107end;
1108
1109function  TCActiveIMM.GetDescriptionA(var hKL: Pointer; uBufLen: SYSUINT; szDescription: PAnsiChar; 
1110                                      out puCopied: SYSUINT): HResult;
1111begin
1112  Result := DefaultInterface.GetDescriptionA(hKL, uBufLen, szDescription, puCopied);
1113end;
1114
1115function  TCActiveIMM.GetDescriptionW(var hKL: Pointer; uBufLen: SYSUINT; szDescription: PWideChar; 
1116                                      out puCopied: SYSUINT): HResult;
1117begin
1118  Result := DefaultInterface.GetDescriptionW(hKL, uBufLen, szDescription, puCopied);
1119end;
1120
1121function  TCActiveIMM.GetGuideLineA(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord; 
1122                                    pBuf: PAnsiChar; out pdwResult: LongWord): HResult;
1123begin
1124  Result := DefaultInterface.GetGuideLineA(hIMC, dwIndex, dwBufLen, pBuf, pdwResult);
1125end;
1126
1127function  TCActiveIMM.GetGuideLineW(hIMC: LongWord; dwIndex: LongWord; dwBufLen: LongWord; 
1128                                    pBuf: PWideChar; out pdwResult: LongWord): HResult;
1129begin
1130  Result := DefaultInterface.GetGuideLineW(hIMC, dwIndex, dwBufLen, pBuf, pdwResult);
1131end;
1132
1133function  TCActiveIMM.GetIMEFileNameA(var hKL: Pointer; uBufLen: SYSUINT; szFileName: PAnsiChar; 
1134                                      out puCopied: SYSUINT): HResult;
1135begin
1136  Result := DefaultInterface.GetIMEFileNameA(hKL, uBufLen, szFileName, puCopied);
1137end;
1138
1139function  TCActiveIMM.GetIMEFileNameW(var hKL: Pointer; uBufLen: SYSUINT; szFileName: PWideChar; 
1140                                      out puCopied: SYSUINT): HResult;
1141begin
1142  Result := DefaultInterface.GetIMEFileNameW(hKL, uBufLen, szFileName, puCopied);
1143end;
1144
1145function  TCActiveIMM.GetOpenStatus(hIMC: LongWord): HResult;
1146begin
1147  Result := DefaultInterface.GetOpenStatus(hIMC);
1148end;
1149
1150function  TCActiveIMM.GetProperty(var hKL: Pointer; fdwIndex: LongWord; out pdwProperty: LongWord): HResult;
1151begin
1152  Result := DefaultInterface.GetProperty(hKL, fdwIndex, pdwProperty);
1153end;
1154
1155function  TCActiveIMM.GetRegisterWordStyleA(var hKL: Pointer; nItem: SYSUINT; 
1156                                            out pStyleBuf: STYLEBUFA; out puCopied: SYSUINT): HResult;
1157begin
1158  Result := DefaultInterface.GetRegisterWordStyleA(hKL, nItem, pStyleBuf, puCopied);
1159end;
1160
1161function  TCActiveIMM.GetRegisterWordStyleW(var hKL: Pointer; nItem: SYSUINT; 
1162                                            out pStyleBuf: STYLEBUFW; out puCopied: SYSUINT): HResult;
1163begin
1164  Result := DefaultInterface.GetRegisterWordStyleW(hKL, nItem, pStyleBuf, puCopied);
1165end;
1166
1167function  TCActiveIMM.GetStatusWindowPos(hIMC: LongWord; out pptPos: tagPOINT): HResult;
1168begin
1169  Result := DefaultInterface.GetStatusWindowPos(hIMC, pptPos);
1170end;
1171
1172function  TCActiveIMM.GetVirtualKey(var hWnd: _RemotableHandle; out puVirtualKey: SYSUINT): HResult;
1173begin
1174  Result := DefaultInterface.GetVirtualKey(hWnd, puVirtualKey);
1175end;
1176
1177function  TCActiveIMM.InstallIMEA(szIMEFileName: PAnsiChar; szLayoutText: PAnsiChar; out phKL: Pointer): HResult;
1178begin
1179  Result := DefaultInterface.InstallIMEA(szIMEFileName, szLayoutText, phKL);
1180end;
1181
1182function  TCActiveIMM.InstallIMEW(szIMEFileName: PWideChar; szLayoutText: PWideChar; 
1183                                  out phKL: Pointer): HResult;
1184begin
1185  Result := DefaultInterface.InstallIMEW(szIMEFileName, szLayoutText, phKL);
1186end;
1187
1188function  TCActiveIMM.IsIME(var hKL: Pointer): HResult;
1189begin
1190  Result := DefaultInterface.IsIME(hKL);
1191end;
1192
1193function  TCActiveIMM.IsUIMessageA(var hWndIME: _RemotableHandle; msg: SYSUINT; wParam: UINT_PTR; 
1194                                   lParam: LONG_PTR): HResult;
1195begin
1196  Result := DefaultInterface.IsUIMessageA(hWndIME, msg, wParam, lParam);
1197end;
1198
1199function  TCActiveIMM.IsUIMessageW(var hWndIME: _RemotableHandle; msg: SYSUINT; wParam: UINT_PTR; 
1200                                   lParam: LONG_PTR): HResult;
1201begin
1202  Result := DefaultInterface.IsUIMessageW(hWndIME, msg, wParam, lParam);
1203end;
1204
1205function  TCActiveIMM.NotifyIME(hIMC: LongWord; dwAction: LongWord; dwIndex: LongWord; 
1206                                dwValue: LongWord): HResult;
1207begin
1208  Result := DefaultInterface.NotifyIME(hIMC, dwAction, dwIndex, dwValue);
1209end;
1210
1211function  TCActiveIMM.REGISTERWORDA(var hKL: Pointer; szReading: PAnsiChar; dwStyle: LongWord; 
1212                                    szRegister: PAnsiChar): HResult;
1213begin
1214  Result := DefaultInterface.REGISTERWORDA(hKL, szReading, dwStyle, szRegister);
1215end;
1216
1217function  TCActiveIMM.REGISTERWORDW(var hKL: Pointer; szReading: PWideChar; dwStyle: LongWord; 
1218                                    szRegister: PWideChar): HResult;
1219begin
1220  Result := DefaultInterface.REGISTERWORDW(hKL, szReading, dwStyle, szRegister);
1221end;
1222
1223function  TCActiveIMM.ReleaseContext(var hWnd: _RemotableHandle; hIMC: LongWord): HResult;
1224begin
1225  Result := DefaultInterface.ReleaseContext(hWnd, hIMC);
1226end;
1227
1228function  TCActiveIMM.SetCandidateWindow(hIMC: LongWord; var pCandidate: CANDIDATEFORM): HResult;
1229begin
1230  Result := DefaultInterface.SetCandidateWindow(hIMC, pCandidate);
1231end;
1232
1233function  TCActiveIMM.SetCompositionFontA(hIMC: LongWord; var plf: LOGFONTA): HResult;
1234begin
1235  Result := DefaultInterface.SetCompositionFontA(hIMC, plf);
1236end;
1237
1238function  TCActiveIMM.SetCompositionFontW(hIMC: LongWord; var plf: LOGFONTW): HResult;
1239begin
1240  Result := DefaultInterface.SetCompositionFontW(hIMC, plf);
1241end;
1242
1243function  TCActiveIMM.SetCompositionStringA(hIMC: LongWord; dwIndex: LongWord; var pComp: Pointer; 
1244                                            dwCompLen: LongWord; var pRead: Pointer; 
1245                                            dwReadLen: LongWord): HResult;
1246begin
1247  Result := DefaultInterface.SetCompositionStringA(hIMC, dwIndex, pComp, dwCompLen, pRead, dwReadLen);
1248end;
1249
1250function  TCActiveIMM.SetCompositionStringW(hIMC: LongWord; dwIndex: LongWord; var pComp: Pointer; 
1251                                            dwCompLen: LongWord; var pRead: Pointer; 
1252                                            dwReadLen: LongWord): HResult;
1253begin
1254  Result := DefaultInterface.SetCompositionStringW(hIMC, dwIndex, pComp, dwCompLen, pRead, dwReadLen);
1255end;
1256
1257function  TCActiveIMM.SetCompositionWindow(hIMC: LongWord; var pCompForm: COMPOSITIONFORM): HResult;
1258begin
1259  Result := DefaultInterface.SetCompositionWindow(hIMC, pCompForm);
1260end;
1261
1262function  TCActiveIMM.SetConversionStatus(hIMC: LongWord; fdwConversion: LongWord; 
1263                                          fdwSentence: LongWord): HResult;
1264begin
1265  Result := DefaultInterface.SetConversionStatus(hIMC, fdwConversion, fdwSentence);
1266end;
1267
1268function  TCActiveIMM.SetOpenStatus(hIMC: LongWord; fOpen: Integer): HResult;
1269begin
1270  Result := DefaultInterface.SetOpenStatus(hIMC, fOpen);
1271end;
1272
1273function  TCActiveIMM.SetStatusWindowPos(hIMC: LongWord; var pptPos: tagPOINT): HResult;
1274begin
1275  Result := DefaultInterface.SetStatusWindowPos(hIMC, pptPos);
1276end;
1277
1278function  TCActiveIMM.SimulateHotKey(var hWnd: _RemotableHandle; dwHotKeyID: LongWord): HResult;
1279begin
1280  Result := DefaultInterface.SimulateHotKey(hWnd, dwHotKeyID);
1281end;
1282
1283function  TCActiveIMM.UnregisterWordA(var hKL: Pointer; szReading: PAnsiChar; dwStyle: LongWord; 
1284                                      szUnregister: PAnsiChar): HResult;
1285begin
1286  Result := DefaultInterface.UnregisterWordA(hKL, szReading, dwStyle, szUnregister);
1287end;
1288
1289function  TCActiveIMM.UnregisterWordW(var hKL: Pointer; szReading: PWideChar; dwStyle: LongWord; 
1290                                      szUnregister: PWideChar): HResult;
1291begin
1292  Result := DefaultInterface.UnregisterWordW(hKL, szReading, dwStyle, szUnregister);
1293end;
1294
1295function  TCActiveIMM.Activate(fRestoreLayout: Integer): HResult;
1296begin
1297  Result := DefaultInterface.Activate(fRestoreLayout);
1298end;
1299
1300function  TCActiveIMM.Deactivate: HResult;
1301begin
1302  Result := DefaultInterface.Deactivate;
1303end;
1304
1305function  TCActiveIMM.OnDefWindowProc(var hWnd: _RemotableHandle; msg: SYSUINT; wParam: UINT_PTR; 
1306                                      lParam: LONG_PTR; out plResult: LONG_PTR): HResult;
1307begin
1308  Result := DefaultInterface.OnDefWindowProc(hWnd, msg, wParam, lParam, plResult);
1309end;
1310
1311function  TCActiveIMM.FilterClientWindows(var aaClassList: Word; uSize: SYSUINT): HResult;
1312begin
1313  Result := DefaultInterface.FilterClientWindows(aaClassList, uSize);
1314end;
1315
1316function  TCActiveIMM.GetCodePageA(var hKL: Pointer; out uCodePage: SYSUINT): HResult;
1317begin
1318  Result := DefaultInterface.GetCodePageA(hKL, uCodePage);
1319end;
1320
1321function  TCActiveIMM.GetLangId(var hKL: Pointer; out plid: Word): HResult;
1322begin
1323  Result := DefaultInterface.GetLangId(hKL, plid);
1324end;
1325
1326function  TCActiveIMM.AssociateContextEx(var hWnd: _RemotableHandle; hIMC: LongWord; 
1327                                         dwFlags: LongWord): HResult;
1328begin
1329  Result := DefaultInterface.AssociateContextEx(hWnd, hIMC, dwFlags);
1330end;
1331
1332function  TCActiveIMM.DisableIME(idThread: LongWord): HResult;
1333begin
1334  Result := DefaultInterface.DisableIME(idThread);
1335end;
1336
1337function  TCActiveIMM.GetImeMenuItemsA(hIMC: LongWord; dwFlags: LongWord; dwType: LongWord; 
1338                                       var pImeParentMenu: IMEMENUITEMINFOA; 
1339                                       out pImeMenu: IMEMENUITEMINFOA; dwSize: LongWord; 
1340                                       out pdwResult: LongWord): HResult;
1341begin
1342  Result := DefaultInterface.GetImeMenuItemsA(hIMC, dwFlags, dwType, pImeParentMenu, pImeMenu, 
1343                                              dwSize, pdwResult);
1344end;
1345
1346function  TCActiveIMM.GetImeMenuItemsW(hIMC: LongWord; dwFlags: LongWord; dwType: LongWord; 
1347                                       var pImeParentMenu: IMEMENUITEMINFOW; 
1348                                       out pImeMenu: IMEMENUITEMINFOW; dwSize: LongWord; 
1349                                       out pdwResult: LongWord): HResult;
1350begin
1351  Result := DefaultInterface.GetImeMenuItemsW(hIMC, dwFlags, dwType, pImeParentMenu, pImeMenu, 
1352                                              dwSize, pdwResult);
1353end;
1354
1355function  TCActiveIMM.EnumInputContext(idThread: LongWord; out ppEnum: IEnumInputContext): HResult;
1356begin
1357  Result := DefaultInterface.EnumInputContext(idThread, ppEnum);
1358end;
1359
1360{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
1361constructor TCActiveIMMProperties.Create(AServer: TCActiveIMM);
1362begin
1363  inherited Create;
1364  FServer := AServer;
1365end;
1366
1367function TCActiveIMMProperties.GetDefaultInterface: IActiveIMMApp;
1368begin
1369  Result := FServer.DefaultInterface;
1370end;
1371
1372{$ENDIF}
1373
1374end.
Note: See TracBrowser for help on using the repository browser.