• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*** Autogenerated by WIDL 4.12.1 from include/dimm.idl - Do not edit ***/
2 
3 #ifdef _WIN32
4 #ifndef __REQUIRED_RPCNDR_H_VERSION__
5 #define __REQUIRED_RPCNDR_H_VERSION__ 475
6 #endif
7 #include <rpc.h>
8 #include <rpcndr.h>
9 #endif
10 
11 #ifndef COM_NO_WINDOWS_H
12 #include <windows.h>
13 #include <ole2.h>
14 #endif
15 
16 #ifndef __dimm_h__
17 #define __dimm_h__
18 
19 /* Forward declarations */
20 
21 #ifndef __IEnumInputContext_FWD_DEFINED__
22 #define __IEnumInputContext_FWD_DEFINED__
23 typedef interface IEnumInputContext IEnumInputContext;
24 #ifdef __cplusplus
25 interface IEnumInputContext;
26 #endif /* __cplusplus */
27 #endif
28 
29 #ifndef __IActiveIMMRegistrar_FWD_DEFINED__
30 #define __IActiveIMMRegistrar_FWD_DEFINED__
31 typedef interface IActiveIMMRegistrar IActiveIMMRegistrar;
32 #ifdef __cplusplus
33 interface IActiveIMMRegistrar;
34 #endif /* __cplusplus */
35 #endif
36 
37 #ifndef __IActiveIMMMessagePumpOwner_FWD_DEFINED__
38 #define __IActiveIMMMessagePumpOwner_FWD_DEFINED__
39 typedef interface IActiveIMMMessagePumpOwner IActiveIMMMessagePumpOwner;
40 #ifdef __cplusplus
41 interface IActiveIMMMessagePumpOwner;
42 #endif /* __cplusplus */
43 #endif
44 
45 #ifndef __IActiveIMMApp_FWD_DEFINED__
46 #define __IActiveIMMApp_FWD_DEFINED__
47 typedef interface IActiveIMMApp IActiveIMMApp;
48 #ifdef __cplusplus
49 interface IActiveIMMApp;
50 #endif /* __cplusplus */
51 #endif
52 
53 #ifndef __IActiveIMMIME_FWD_DEFINED__
54 #define __IActiveIMMIME_FWD_DEFINED__
55 typedef interface IActiveIMMIME IActiveIMMIME;
56 #ifdef __cplusplus
57 interface IActiveIMMIME;
58 #endif /* __cplusplus */
59 #endif
60 
61 #ifndef __IActiveIME_FWD_DEFINED__
62 #define __IActiveIME_FWD_DEFINED__
63 typedef interface IActiveIME IActiveIME;
64 #ifdef __cplusplus
65 interface IActiveIME;
66 #endif /* __cplusplus */
67 #endif
68 
69 #ifndef __IActiveIME2_FWD_DEFINED__
70 #define __IActiveIME2_FWD_DEFINED__
71 typedef interface IActiveIME2 IActiveIME2;
72 #ifdef __cplusplus
73 interface IActiveIME2;
74 #endif /* __cplusplus */
75 #endif
76 
77 #ifndef __IEnumRegisterWordA_FWD_DEFINED__
78 #define __IEnumRegisterWordA_FWD_DEFINED__
79 typedef interface IEnumRegisterWordA IEnumRegisterWordA;
80 #ifdef __cplusplus
81 interface IEnumRegisterWordA;
82 #endif /* __cplusplus */
83 #endif
84 
85 #ifndef __IEnumRegisterWordW_FWD_DEFINED__
86 #define __IEnumRegisterWordW_FWD_DEFINED__
87 typedef interface IEnumRegisterWordW IEnumRegisterWordW;
88 #ifdef __cplusplus
89 interface IEnumRegisterWordW;
90 #endif /* __cplusplus */
91 #endif
92 
93 #ifndef __CActiveIMM_FWD_DEFINED__
94 #define __CActiveIMM_FWD_DEFINED__
95 #ifdef __cplusplus
96 typedef class CActiveIMM CActiveIMM;
97 #else
98 typedef struct CActiveIMM CActiveIMM;
99 #endif /* defined __cplusplus */
100 #endif /* defined __CActiveIMM_FWD_DEFINED__ */
101 
102 /* Headers for imported files */
103 
104 #include <unknwn.h>
105 
106 #ifdef __cplusplus
107 extern "C" {
108 #endif
109 
110 /**
111  * This file is part of the mingw-w64 runtime package.
112  * No warranty is given; refer to the file DISCLAIMER within this package.
113  */
114 
115 #ifndef __IEnumRegisterWordA_FWD_DEFINED__
116 #define __IEnumRegisterWordA_FWD_DEFINED__
117 typedef interface IEnumRegisterWordA IEnumRegisterWordA;
118 #ifdef __cplusplus
119 interface IEnumRegisterWordA;
120 #endif /* __cplusplus */
121 #endif
122 
123 #ifndef __IEnumRegisterWordW_FWD_DEFINED__
124 #define __IEnumRegisterWordW_FWD_DEFINED__
125 typedef interface IEnumRegisterWordW IEnumRegisterWordW;
126 #ifdef __cplusplus
127 interface IEnumRegisterWordW;
128 #endif /* __cplusplus */
129 #endif
130 
131 #include <winapifamily.h>
132 
133 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
134 
135 DEFINE_GUID(LIBID_ActiveIMM, 0x4955dd30, 0xb159, 0x11d0, 0x8f,0xcf, 0x00,0xaa,0x00,0x6b,0xcc,0x59);
136 
137 #include <imm.h>
138 #if 0
139 typedef WORD LANGID;
140 typedef struct __WIDL_dimm_generated_name_00000002 {
141     LPSTR lpReading;
142     LPSTR lpWord;
143 } REGISTERWORDA;
144 typedef struct __WIDL_dimm_generated_name_00000003 {
145     LPWSTR lpReading;
146     LPWSTR lpWord;
147 } REGISTERWORDW;
148 typedef struct __WIDL_dimm_generated_name_00000004 {
149     LONG lfHeight;
150     LONG lfWidth;
151     LONG lfEscapement;
152     LONG lfOrientation;
153     LONG lfWeight;
154     BYTE lfItalic;
155     BYTE lfUnderline;
156     BYTE lfStrikeOut;
157     BYTE lfCharSet;
158     BYTE lfOutPrecision;
159     BYTE lfClipPrecision;
160     BYTE lfQuality;
161     BYTE lfPitchAndFamily;
162     CHAR lfFaceName[32];
163 } LOGFONTA;
164 typedef struct __WIDL_dimm_generated_name_00000005 {
165     LONG lfHeight;
166     LONG lfWidth;
167     LONG lfEscapement;
168     LONG lfOrientation;
169     LONG lfWeight;
170     BYTE lfItalic;
171     BYTE lfUnderline;
172     BYTE lfStrikeOut;
173     BYTE lfCharSet;
174     BYTE lfOutPrecision;
175     BYTE lfClipPrecision;
176     BYTE lfQuality;
177     BYTE lfPitchAndFamily;
178     WCHAR lfFaceName[32];
179 } LOGFONTW;
180 typedef DWORD HIMC;
181 typedef DWORD HIMCC;
182 typedef struct __WIDL_dimm_generated_name_00000006 {
183     DWORD dwIndex;
184     DWORD dwStyle;
185     POINT ptCurrentPos;
186     RECT rcArea;
187 } CANDIDATEFORM;
188 typedef struct __WIDL_dimm_generated_name_00000007 {
189     DWORD dwStyle;
190     POINT ptCurrentPos;
191     RECT rcArea;
192 } COMPOSITIONFORM;
193 typedef struct __WIDL_dimm_generated_name_00000008 {
194     DWORD dwSize;
195     DWORD dwStyle;
196     DWORD dwCount;
197     DWORD dwSelection;
198     DWORD dwPageStart;
199     DWORD dwPageSize;
200     DWORD dwOffset[1];
201 } CANDIDATELIST;
202 typedef struct __WIDL_dimm_generated_name_00000009 {
203     DWORD dwStyle;
204     CHAR szDescription[32];
205 } STYLEBUFA;
206 typedef struct __WIDL_dimm_generated_name_0000000A {
207     DWORD dwStyle;
208     WCHAR szDescription[32];
209 } STYLEBUFW;
210 typedef WORD ATOM;
211 typedef struct __WIDL_dimm_generated_name_0000000B {
212     UINT cbSize;
213     UINT fType;
214     UINT fState;
215     UINT wID;
216     HBITMAP hbmpChecked;
217     HBITMAP hbmpUnchecked;
218     DWORD dwItemData;
219     CHAR szString[80];
220     HBITMAP hbmpItem;
221 } IMEMENUITEMINFOA;
222 typedef struct __WIDL_dimm_generated_name_0000000C {
223     UINT cbSize;
224     UINT fType;
225     UINT fState;
226     UINT wID;
227     HBITMAP hbmpChecked;
228     HBITMAP hbmpUnchecked;
229     DWORD dwItemData;
230     WCHAR szString[80];
231     HBITMAP hbmpItem;
232 } IMEMENUITEMINFOW;
233 #endif
234 #ifndef _DDKIMM_H_
235 typedef struct __WIDL_dimm_generated_name_0000000D {
236     HWND hWnd;
237     WINBOOL fOpen;
238     POINT ptStatusWndPos;
239     POINT ptSoftKbdPos;
240     DWORD fdwConversion;
241     DWORD fdwSentence;
242     union {
243         LOGFONTA A;
244         LOGFONTW W;
245     } lfFont;
246     COMPOSITIONFORM cfCompForm;
247     CANDIDATEFORM cfCandForm[4];
248     HIMCC hCompStr;
249     HIMCC hCandInfo;
250     HIMCC hGuideLine;
251     HIMCC hPrivate;
252     DWORD dwNumMsgBuf;
253     HIMCC hMsgBuf;
254     DWORD fdwInit;
255     DWORD dwReserve[3];
256 } INPUTCONTEXT;
257 typedef struct __WIDL_dimm_generated_name_0000000E {
258     DWORD dwPrivateDataSize;
259     DWORD fdwProperty;
260     DWORD fdwConversionCaps;
261     DWORD fdwSentenceCaps;
262     DWORD fdwUICaps;
263     DWORD fdwSCSCaps;
264     DWORD fdwSelectCaps;
265 } IMEINFO;
266 #endif
267 /*****************************************************************************
268  * IEnumInputContext interface
269  */
270 #ifndef __IEnumInputContext_INTERFACE_DEFINED__
271 #define __IEnumInputContext_INTERFACE_DEFINED__
272 
273 DEFINE_GUID(IID_IEnumInputContext, 0x09b5eab0, 0xf997, 0x11d1, 0x93,0xd4, 0x00,0x60,0xb0,0x67,0xb8,0x6e);
274 #if defined(__cplusplus) && !defined(CINTERFACE)
275 MIDL_INTERFACE("09b5eab0-f997-11d1-93d4-0060b067b86e")
276 IEnumInputContext : public IUnknown
277 {
278     virtual HRESULT STDMETHODCALLTYPE Clone(
279         IEnumInputContext **ppEnum) = 0;
280 
281     virtual HRESULT STDMETHODCALLTYPE Next(
282         ULONG ulCount,
283         HIMC *rgInputContext,
284         ULONG *pcFetched) = 0;
285 
286     virtual HRESULT STDMETHODCALLTYPE Reset(
287         ) = 0;
288 
289     virtual HRESULT STDMETHODCALLTYPE Skip(
290         ULONG ulCount) = 0;
291 
292 };
293 #ifdef __CRT_UUID_DECL
294 __CRT_UUID_DECL(IEnumInputContext, 0x09b5eab0, 0xf997, 0x11d1, 0x93,0xd4, 0x00,0x60,0xb0,0x67,0xb8,0x6e)
295 #endif
296 #else
297 typedef struct IEnumInputContextVtbl {
298     BEGIN_INTERFACE
299 
300     /*** IUnknown methods ***/
301     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
302         IEnumInputContext *This,
303         REFIID riid,
304         void **ppvObject);
305 
306     ULONG (STDMETHODCALLTYPE *AddRef)(
307         IEnumInputContext *This);
308 
309     ULONG (STDMETHODCALLTYPE *Release)(
310         IEnumInputContext *This);
311 
312     /*** IEnumInputContext methods ***/
313     HRESULT (STDMETHODCALLTYPE *Clone)(
314         IEnumInputContext *This,
315         IEnumInputContext **ppEnum);
316 
317     HRESULT (STDMETHODCALLTYPE *Next)(
318         IEnumInputContext *This,
319         ULONG ulCount,
320         HIMC *rgInputContext,
321         ULONG *pcFetched);
322 
323     HRESULT (STDMETHODCALLTYPE *Reset)(
324         IEnumInputContext *This);
325 
326     HRESULT (STDMETHODCALLTYPE *Skip)(
327         IEnumInputContext *This,
328         ULONG ulCount);
329 
330     END_INTERFACE
331 } IEnumInputContextVtbl;
332 
333 interface IEnumInputContext {
334     CONST_VTBL IEnumInputContextVtbl* lpVtbl;
335 };
336 
337 #ifdef COBJMACROS
338 #ifndef WIDL_C_INLINE_WRAPPERS
339 /*** IUnknown methods ***/
340 #define IEnumInputContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
341 #define IEnumInputContext_AddRef(This) (This)->lpVtbl->AddRef(This)
342 #define IEnumInputContext_Release(This) (This)->lpVtbl->Release(This)
343 /*** IEnumInputContext methods ***/
344 #define IEnumInputContext_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
345 #define IEnumInputContext_Next(This,ulCount,rgInputContext,pcFetched) (This)->lpVtbl->Next(This,ulCount,rgInputContext,pcFetched)
346 #define IEnumInputContext_Reset(This) (This)->lpVtbl->Reset(This)
347 #define IEnumInputContext_Skip(This,ulCount) (This)->lpVtbl->Skip(This,ulCount)
348 #else
349 /*** IUnknown methods ***/
350 static FORCEINLINE HRESULT IEnumInputContext_QueryInterface(IEnumInputContext* This,REFIID riid,void **ppvObject) {
351     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
352 }
353 static FORCEINLINE ULONG IEnumInputContext_AddRef(IEnumInputContext* This) {
354     return This->lpVtbl->AddRef(This);
355 }
356 static FORCEINLINE ULONG IEnumInputContext_Release(IEnumInputContext* This) {
357     return This->lpVtbl->Release(This);
358 }
359 /*** IEnumInputContext methods ***/
360 static FORCEINLINE HRESULT IEnumInputContext_Clone(IEnumInputContext* This,IEnumInputContext **ppEnum) {
361     return This->lpVtbl->Clone(This,ppEnum);
362 }
363 static FORCEINLINE HRESULT IEnumInputContext_Next(IEnumInputContext* This,ULONG ulCount,HIMC *rgInputContext,ULONG *pcFetched) {
364     return This->lpVtbl->Next(This,ulCount,rgInputContext,pcFetched);
365 }
366 static FORCEINLINE HRESULT IEnumInputContext_Reset(IEnumInputContext* This) {
367     return This->lpVtbl->Reset(This);
368 }
369 static FORCEINLINE HRESULT IEnumInputContext_Skip(IEnumInputContext* This,ULONG ulCount) {
370     return This->lpVtbl->Skip(This,ulCount);
371 }
372 #endif
373 #endif
374 
375 #endif
376 
377 
378 #endif  /* __IEnumInputContext_INTERFACE_DEFINED__ */
379 
380 /*****************************************************************************
381  * IActiveIMMRegistrar interface
382  */
383 #ifndef __IActiveIMMRegistrar_INTERFACE_DEFINED__
384 #define __IActiveIMMRegistrar_INTERFACE_DEFINED__
385 
386 DEFINE_GUID(IID_IActiveIMMRegistrar, 0xb3458082, 0xbd00, 0x11d1, 0x93,0x9b, 0x00,0x60,0xb0,0x67,0xb8,0x6e);
387 #if defined(__cplusplus) && !defined(CINTERFACE)
388 MIDL_INTERFACE("b3458082-bd00-11d1-939b-0060b067b86e")
389 IActiveIMMRegistrar : public IUnknown
390 {
391     virtual HRESULT STDMETHODCALLTYPE RegisterIME(
392         REFCLSID rclsid,
393         LANGID lgid,
394         LPCWSTR pszIconFile,
395         LPCWSTR pszDesc) = 0;
396 
397     virtual HRESULT STDMETHODCALLTYPE UnregisterIME(
398         REFCLSID rclsid) = 0;
399 
400 };
401 #ifdef __CRT_UUID_DECL
402 __CRT_UUID_DECL(IActiveIMMRegistrar, 0xb3458082, 0xbd00, 0x11d1, 0x93,0x9b, 0x00,0x60,0xb0,0x67,0xb8,0x6e)
403 #endif
404 #else
405 typedef struct IActiveIMMRegistrarVtbl {
406     BEGIN_INTERFACE
407 
408     /*** IUnknown methods ***/
409     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
410         IActiveIMMRegistrar *This,
411         REFIID riid,
412         void **ppvObject);
413 
414     ULONG (STDMETHODCALLTYPE *AddRef)(
415         IActiveIMMRegistrar *This);
416 
417     ULONG (STDMETHODCALLTYPE *Release)(
418         IActiveIMMRegistrar *This);
419 
420     /*** IActiveIMMRegistrar methods ***/
421     HRESULT (STDMETHODCALLTYPE *RegisterIME)(
422         IActiveIMMRegistrar *This,
423         REFCLSID rclsid,
424         LANGID lgid,
425         LPCWSTR pszIconFile,
426         LPCWSTR pszDesc);
427 
428     HRESULT (STDMETHODCALLTYPE *UnregisterIME)(
429         IActiveIMMRegistrar *This,
430         REFCLSID rclsid);
431 
432     END_INTERFACE
433 } IActiveIMMRegistrarVtbl;
434 
435 interface IActiveIMMRegistrar {
436     CONST_VTBL IActiveIMMRegistrarVtbl* lpVtbl;
437 };
438 
439 #ifdef COBJMACROS
440 #ifndef WIDL_C_INLINE_WRAPPERS
441 /*** IUnknown methods ***/
442 #define IActiveIMMRegistrar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
443 #define IActiveIMMRegistrar_AddRef(This) (This)->lpVtbl->AddRef(This)
444 #define IActiveIMMRegistrar_Release(This) (This)->lpVtbl->Release(This)
445 /*** IActiveIMMRegistrar methods ***/
446 #define IActiveIMMRegistrar_RegisterIME(This,rclsid,lgid,pszIconFile,pszDesc) (This)->lpVtbl->RegisterIME(This,rclsid,lgid,pszIconFile,pszDesc)
447 #define IActiveIMMRegistrar_UnregisterIME(This,rclsid) (This)->lpVtbl->UnregisterIME(This,rclsid)
448 #else
449 /*** IUnknown methods ***/
450 static FORCEINLINE HRESULT IActiveIMMRegistrar_QueryInterface(IActiveIMMRegistrar* This,REFIID riid,void **ppvObject) {
451     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
452 }
453 static FORCEINLINE ULONG IActiveIMMRegistrar_AddRef(IActiveIMMRegistrar* This) {
454     return This->lpVtbl->AddRef(This);
455 }
456 static FORCEINLINE ULONG IActiveIMMRegistrar_Release(IActiveIMMRegistrar* This) {
457     return This->lpVtbl->Release(This);
458 }
459 /*** IActiveIMMRegistrar methods ***/
460 static FORCEINLINE HRESULT IActiveIMMRegistrar_RegisterIME(IActiveIMMRegistrar* This,REFCLSID rclsid,LANGID lgid,LPCWSTR pszIconFile,LPCWSTR pszDesc) {
461     return This->lpVtbl->RegisterIME(This,rclsid,lgid,pszIconFile,pszDesc);
462 }
463 static FORCEINLINE HRESULT IActiveIMMRegistrar_UnregisterIME(IActiveIMMRegistrar* This,REFCLSID rclsid) {
464     return This->lpVtbl->UnregisterIME(This,rclsid);
465 }
466 #endif
467 #endif
468 
469 #endif
470 
471 
472 #endif  /* __IActiveIMMRegistrar_INTERFACE_DEFINED__ */
473 
474 /*****************************************************************************
475  * IActiveIMMMessagePumpOwner interface
476  */
477 #ifndef __IActiveIMMMessagePumpOwner_INTERFACE_DEFINED__
478 #define __IActiveIMMMessagePumpOwner_INTERFACE_DEFINED__
479 
480 DEFINE_GUID(IID_IActiveIMMMessagePumpOwner, 0xb5cf2cfa, 0x8aeb, 0x11d1, 0x93,0x64, 0x00,0x60,0xb0,0x67,0xb8,0x6e);
481 #if defined(__cplusplus) && !defined(CINTERFACE)
482 MIDL_INTERFACE("b5cf2cfa-8aeb-11d1-9364-0060b067b86e")
483 IActiveIMMMessagePumpOwner : public IUnknown
484 {
485     virtual HRESULT STDMETHODCALLTYPE Start(
486         ) = 0;
487 
488     virtual HRESULT STDMETHODCALLTYPE End(
489         ) = 0;
490 
491     virtual HRESULT STDMETHODCALLTYPE OnTranslateMessage(
492         const MSG *pMsg) = 0;
493 
494     virtual HRESULT STDMETHODCALLTYPE Pause(
495         DWORD *pdwCookie) = 0;
496 
497     virtual HRESULT STDMETHODCALLTYPE Resume(
498         DWORD dwCookie) = 0;
499 
500 };
501 #ifdef __CRT_UUID_DECL
502 __CRT_UUID_DECL(IActiveIMMMessagePumpOwner, 0xb5cf2cfa, 0x8aeb, 0x11d1, 0x93,0x64, 0x00,0x60,0xb0,0x67,0xb8,0x6e)
503 #endif
504 #else
505 typedef struct IActiveIMMMessagePumpOwnerVtbl {
506     BEGIN_INTERFACE
507 
508     /*** IUnknown methods ***/
509     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
510         IActiveIMMMessagePumpOwner *This,
511         REFIID riid,
512         void **ppvObject);
513 
514     ULONG (STDMETHODCALLTYPE *AddRef)(
515         IActiveIMMMessagePumpOwner *This);
516 
517     ULONG (STDMETHODCALLTYPE *Release)(
518         IActiveIMMMessagePumpOwner *This);
519 
520     /*** IActiveIMMMessagePumpOwner methods ***/
521     HRESULT (STDMETHODCALLTYPE *Start)(
522         IActiveIMMMessagePumpOwner *This);
523 
524     HRESULT (STDMETHODCALLTYPE *End)(
525         IActiveIMMMessagePumpOwner *This);
526 
527     HRESULT (STDMETHODCALLTYPE *OnTranslateMessage)(
528         IActiveIMMMessagePumpOwner *This,
529         const MSG *pMsg);
530 
531     HRESULT (STDMETHODCALLTYPE *Pause)(
532         IActiveIMMMessagePumpOwner *This,
533         DWORD *pdwCookie);
534 
535     HRESULT (STDMETHODCALLTYPE *Resume)(
536         IActiveIMMMessagePumpOwner *This,
537         DWORD dwCookie);
538 
539     END_INTERFACE
540 } IActiveIMMMessagePumpOwnerVtbl;
541 
542 interface IActiveIMMMessagePumpOwner {
543     CONST_VTBL IActiveIMMMessagePumpOwnerVtbl* lpVtbl;
544 };
545 
546 #ifdef COBJMACROS
547 #ifndef WIDL_C_INLINE_WRAPPERS
548 /*** IUnknown methods ***/
549 #define IActiveIMMMessagePumpOwner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
550 #define IActiveIMMMessagePumpOwner_AddRef(This) (This)->lpVtbl->AddRef(This)
551 #define IActiveIMMMessagePumpOwner_Release(This) (This)->lpVtbl->Release(This)
552 /*** IActiveIMMMessagePumpOwner methods ***/
553 #define IActiveIMMMessagePumpOwner_Start(This) (This)->lpVtbl->Start(This)
554 #define IActiveIMMMessagePumpOwner_End(This) (This)->lpVtbl->End(This)
555 #define IActiveIMMMessagePumpOwner_OnTranslateMessage(This,pMsg) (This)->lpVtbl->OnTranslateMessage(This,pMsg)
556 #define IActiveIMMMessagePumpOwner_Pause(This,pdwCookie) (This)->lpVtbl->Pause(This,pdwCookie)
557 #define IActiveIMMMessagePumpOwner_Resume(This,dwCookie) (This)->lpVtbl->Resume(This,dwCookie)
558 #else
559 /*** IUnknown methods ***/
560 static FORCEINLINE HRESULT IActiveIMMMessagePumpOwner_QueryInterface(IActiveIMMMessagePumpOwner* This,REFIID riid,void **ppvObject) {
561     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
562 }
563 static FORCEINLINE ULONG IActiveIMMMessagePumpOwner_AddRef(IActiveIMMMessagePumpOwner* This) {
564     return This->lpVtbl->AddRef(This);
565 }
566 static FORCEINLINE ULONG IActiveIMMMessagePumpOwner_Release(IActiveIMMMessagePumpOwner* This) {
567     return This->lpVtbl->Release(This);
568 }
569 /*** IActiveIMMMessagePumpOwner methods ***/
570 static FORCEINLINE HRESULT IActiveIMMMessagePumpOwner_Start(IActiveIMMMessagePumpOwner* This) {
571     return This->lpVtbl->Start(This);
572 }
573 static FORCEINLINE HRESULT IActiveIMMMessagePumpOwner_End(IActiveIMMMessagePumpOwner* This) {
574     return This->lpVtbl->End(This);
575 }
576 static FORCEINLINE HRESULT IActiveIMMMessagePumpOwner_OnTranslateMessage(IActiveIMMMessagePumpOwner* This,const MSG *pMsg) {
577     return This->lpVtbl->OnTranslateMessage(This,pMsg);
578 }
579 static FORCEINLINE HRESULT IActiveIMMMessagePumpOwner_Pause(IActiveIMMMessagePumpOwner* This,DWORD *pdwCookie) {
580     return This->lpVtbl->Pause(This,pdwCookie);
581 }
582 static FORCEINLINE HRESULT IActiveIMMMessagePumpOwner_Resume(IActiveIMMMessagePumpOwner* This,DWORD dwCookie) {
583     return This->lpVtbl->Resume(This,dwCookie);
584 }
585 #endif
586 #endif
587 
588 #endif
589 
590 
591 #endif  /* __IActiveIMMMessagePumpOwner_INTERFACE_DEFINED__ */
592 
593 /*****************************************************************************
594  * IActiveIMMApp interface
595  */
596 #ifndef __IActiveIMMApp_INTERFACE_DEFINED__
597 #define __IActiveIMMApp_INTERFACE_DEFINED__
598 
599 DEFINE_GUID(IID_IActiveIMMApp, 0x08c0e040, 0x62d1, 0x11d1, 0x93,0x26, 0x00,0x60,0xb0,0x67,0xb8,0x6e);
600 #if defined(__cplusplus) && !defined(CINTERFACE)
601 MIDL_INTERFACE("08c0e040-62d1-11d1-9326-0060b067b86e")
602 IActiveIMMApp : public IUnknown
603 {
604     virtual HRESULT STDMETHODCALLTYPE AssociateContext(
605         HWND hWnd,
606         HIMC hIME,
607         HIMC *phPrev) = 0;
608 
609     virtual HRESULT STDMETHODCALLTYPE ConfigureIMEA(
610         HKL hKL,
611         HWND hWnd,
612         DWORD dwMode,
613         REGISTERWORDA *pData) = 0;
614 
615     virtual HRESULT STDMETHODCALLTYPE ConfigureIMEW(
616         HKL hKL,
617         HWND hWnd,
618         DWORD dwMode,
619         REGISTERWORDW *pData) = 0;
620 
621     virtual HRESULT STDMETHODCALLTYPE CreateContext(
622         HIMC *phIMC) = 0;
623 
624     virtual HRESULT STDMETHODCALLTYPE DestroyContext(
625         HIMC hIME) = 0;
626 
627     virtual HRESULT STDMETHODCALLTYPE EnumRegisterWordA(
628         HKL hKL,
629         LPSTR szReading,
630         DWORD dwStyle,
631         LPSTR szRegister,
632         LPVOID pData,
633         IEnumRegisterWordA **pEnum) = 0;
634 
635     virtual HRESULT STDMETHODCALLTYPE EnumRegisterWordW(
636         HKL hKL,
637         LPWSTR szReading,
638         DWORD dwStyle,
639         LPWSTR szRegister,
640         LPVOID pData,
641         IEnumRegisterWordW **pEnum) = 0;
642 
643     virtual HRESULT STDMETHODCALLTYPE EscapeA(
644         HKL hKL,
645         HIMC hIMC,
646         UINT uEscape,
647         LPVOID pData,
648         LRESULT *plResult) = 0;
649 
650     virtual HRESULT STDMETHODCALLTYPE EscapeW(
651         HKL hKL,
652         HIMC hIMC,
653         UINT uEscape,
654         LPVOID pData,
655         LRESULT *plResult) = 0;
656 
657     virtual HRESULT STDMETHODCALLTYPE GetCandidateListA(
658         HIMC hIMC,
659         DWORD dwIndex,
660         UINT uBufLen,
661         CANDIDATELIST *pCandList,
662         UINT *puCopied) = 0;
663 
664     virtual HRESULT STDMETHODCALLTYPE GetCandidateListW(
665         HIMC hIMC,
666         DWORD dwIndex,
667         UINT uBufLen,
668         CANDIDATELIST *pCandList,
669         UINT *puCopied) = 0;
670 
671     virtual HRESULT STDMETHODCALLTYPE GetCandidateListCountA(
672         HIMC hIMC,
673         DWORD *pdwListSize,
674         DWORD *pdwBufLen) = 0;
675 
676     virtual HRESULT STDMETHODCALLTYPE GetCandidateListCountW(
677         HIMC hIMC,
678         DWORD *pdwListSize,
679         DWORD *pdwBufLen) = 0;
680 
681     virtual HRESULT STDMETHODCALLTYPE GetCandidateWindow(
682         HIMC hIMC,
683         DWORD dwIndex,
684         CANDIDATEFORM *pCandidate) = 0;
685 
686     virtual HRESULT STDMETHODCALLTYPE GetCompositionFontA(
687         HIMC hIMC,
688         LOGFONTA *plf) = 0;
689 
690     virtual HRESULT STDMETHODCALLTYPE GetCompositionFontW(
691         HIMC hIMC,
692         LOGFONTW *plf) = 0;
693 
694     virtual HRESULT STDMETHODCALLTYPE GetCompositionStringA(
695         HIMC hIMC,
696         DWORD dwIndex,
697         DWORD dwBufLen,
698         LONG *plCopied,
699         LPVOID pBuf) = 0;
700 
701     virtual HRESULT STDMETHODCALLTYPE GetCompositionStringW(
702         HIMC hIMC,
703         DWORD dwIndex,
704         DWORD dwBufLen,
705         LONG *plCopied,
706         LPVOID pBuf) = 0;
707 
708     virtual HRESULT STDMETHODCALLTYPE GetCompositionWindow(
709         HIMC hIMC,
710         COMPOSITIONFORM *pCompForm) = 0;
711 
712     virtual HRESULT STDMETHODCALLTYPE GetContext(
713         HWND hWnd,
714         HIMC *phIMC) = 0;
715 
716     virtual HRESULT STDMETHODCALLTYPE GetConversionListA(
717         HKL hKL,
718         HIMC hIMC,
719         LPSTR pSrc,
720         UINT uBufLen,
721         UINT uFlag,
722         CANDIDATELIST *pDst,
723         UINT *puCopied) = 0;
724 
725     virtual HRESULT STDMETHODCALLTYPE GetConversionListW(
726         HKL hKL,
727         HIMC hIMC,
728         LPWSTR pSrc,
729         UINT uBufLen,
730         UINT uFlag,
731         CANDIDATELIST *pDst,
732         UINT *puCopied) = 0;
733 
734     virtual HRESULT STDMETHODCALLTYPE GetConversionStatus(
735         HIMC hIMC,
736         DWORD *pfdwConversion,
737         DWORD *pfdwSentence) = 0;
738 
739     virtual HRESULT STDMETHODCALLTYPE GetDefaultIMEWnd(
740         HWND hWnd,
741         HWND *phDefWnd) = 0;
742 
743     virtual HRESULT STDMETHODCALLTYPE GetDescriptionA(
744         HKL hKL,
745         UINT uBufLen,
746         LPSTR szDescription,
747         UINT *puCopied) = 0;
748 
749     virtual HRESULT STDMETHODCALLTYPE GetDescriptionW(
750         HKL hKL,
751         UINT uBufLen,
752         LPWSTR szDescription,
753         UINT *puCopied) = 0;
754 
755     virtual HRESULT STDMETHODCALLTYPE GetGuideLineA(
756         HIMC hIMC,
757         DWORD dwIndex,
758         DWORD dwBufLen,
759         LPSTR pBuf,
760         DWORD *pdwResult) = 0;
761 
762     virtual HRESULT STDMETHODCALLTYPE GetGuideLineW(
763         HIMC hIMC,
764         DWORD dwIndex,
765         DWORD dwBufLen,
766         LPWSTR pBuf,
767         DWORD *pdwResult) = 0;
768 
769     virtual HRESULT STDMETHODCALLTYPE GetIMEFileNameA(
770         HKL hKL,
771         UINT uBufLen,
772         LPSTR szFileName,
773         UINT *puCopied) = 0;
774 
775     virtual HRESULT STDMETHODCALLTYPE GetIMEFileNameW(
776         HKL hKL,
777         UINT uBufLen,
778         LPWSTR szFileName,
779         UINT *puCopied) = 0;
780 
781     virtual HRESULT STDMETHODCALLTYPE GetOpenStatus(
782         HIMC hIMC) = 0;
783 
784     virtual HRESULT STDMETHODCALLTYPE GetProperty(
785         HKL hKL,
786         DWORD fdwIndex,
787         DWORD *pdwProperty) = 0;
788 
789     virtual HRESULT STDMETHODCALLTYPE GetRegisterWordStyleA(
790         HKL hKL,
791         UINT nItem,
792         STYLEBUFA *pStyleBuf,
793         UINT *puCopied) = 0;
794 
795     virtual HRESULT STDMETHODCALLTYPE GetRegisterWordStyleW(
796         HKL hKL,
797         UINT nItem,
798         STYLEBUFW *pStyleBuf,
799         UINT *puCopied) = 0;
800 
801     virtual HRESULT STDMETHODCALLTYPE GetStatusWindowPos(
802         HIMC hIMC,
803         POINT *pptPos) = 0;
804 
805     virtual HRESULT STDMETHODCALLTYPE GetVirtualKey(
806         HWND hWnd,
807         UINT *puVirtualKey) = 0;
808 
809     virtual HRESULT STDMETHODCALLTYPE InstallIMEA(
810         LPSTR szIMEFileName,
811         LPSTR szLayoutText,
812         HKL *phKL) = 0;
813 
814     virtual HRESULT STDMETHODCALLTYPE InstallIMEW(
815         LPWSTR szIMEFileName,
816         LPWSTR szLayoutText,
817         HKL *phKL) = 0;
818 
819     virtual HRESULT STDMETHODCALLTYPE IsIME(
820         HKL hKL) = 0;
821 
822     virtual HRESULT STDMETHODCALLTYPE IsUIMessageA(
823         HWND hWndIME,
824         UINT msg,
825         WPARAM wParam,
826         LPARAM lParam) = 0;
827 
828     virtual HRESULT STDMETHODCALLTYPE IsUIMessageW(
829         HWND hWndIME,
830         UINT msg,
831         WPARAM wParam,
832         LPARAM lParam) = 0;
833 
834     virtual HRESULT STDMETHODCALLTYPE NotifyIME(
835         HIMC hIMC,
836         DWORD dwAction,
837         DWORD dwIndex,
838         DWORD dwValue) = 0;
839 
840     virtual HRESULT STDMETHODCALLTYPE RegisterWordA(
841         HKL hKL,
842         LPSTR szReading,
843         DWORD dwStyle,
844         LPSTR szRegister) = 0;
845 
846     virtual HRESULT STDMETHODCALLTYPE RegisterWordW(
847         HKL hKL,
848         LPWSTR szReading,
849         DWORD dwStyle,
850         LPWSTR szRegister) = 0;
851 
852     virtual HRESULT STDMETHODCALLTYPE ReleaseContext(
853         HWND hWnd,
854         HIMC hIMC) = 0;
855 
856     virtual HRESULT STDMETHODCALLTYPE SetCandidateWindow(
857         HIMC hIMC,
858         CANDIDATEFORM *pCandidate) = 0;
859 
860     virtual HRESULT STDMETHODCALLTYPE SetCompositionFontA(
861         HIMC hIMC,
862         LOGFONTA *plf) = 0;
863 
864     virtual HRESULT STDMETHODCALLTYPE SetCompositionFontW(
865         HIMC hIMC,
866         LOGFONTW *plf) = 0;
867 
868     virtual HRESULT STDMETHODCALLTYPE SetCompositionStringA(
869         HIMC hIMC,
870         DWORD dwIndex,
871         LPVOID pComp,
872         DWORD dwCompLen,
873         LPVOID pRead,
874         DWORD dwReadLen) = 0;
875 
876     virtual HRESULT STDMETHODCALLTYPE SetCompositionStringW(
877         HIMC hIMC,
878         DWORD dwIndex,
879         LPVOID pComp,
880         DWORD dwCompLen,
881         LPVOID pRead,
882         DWORD dwReadLen) = 0;
883 
884     virtual HRESULT STDMETHODCALLTYPE SetCompositionWindow(
885         HIMC hIMC,
886         COMPOSITIONFORM *pCompForm) = 0;
887 
888     virtual HRESULT STDMETHODCALLTYPE SetConversionStatus(
889         HIMC hIMC,
890         DWORD fdwConversion,
891         DWORD fdwSentence) = 0;
892 
893     virtual HRESULT STDMETHODCALLTYPE SetOpenStatus(
894         HIMC hIMC,
895         WINBOOL fOpen) = 0;
896 
897     virtual HRESULT STDMETHODCALLTYPE SetStatusWindowPos(
898         HIMC hIMC,
899         POINT *pptPos) = 0;
900 
901     virtual HRESULT STDMETHODCALLTYPE SimulateHotKey(
902         HWND hWnd,
903         DWORD dwHotKeyID) = 0;
904 
905     virtual HRESULT STDMETHODCALLTYPE UnregisterWordA(
906         HKL hKL,
907         LPSTR szReading,
908         DWORD dwStyle,
909         LPSTR szUnregister) = 0;
910 
911     virtual HRESULT STDMETHODCALLTYPE UnregisterWordW(
912         HKL hKL,
913         LPWSTR szReading,
914         DWORD dwStyle,
915         LPWSTR szUnregister) = 0;
916 
917     virtual HRESULT STDMETHODCALLTYPE Activate(
918         WINBOOL fRestoreLayout) = 0;
919 
920     virtual HRESULT STDMETHODCALLTYPE Deactivate(
921         ) = 0;
922 
923     virtual HRESULT STDMETHODCALLTYPE OnDefWindowProc(
924         HWND hWnd,
925         UINT Msg,
926         WPARAM wParam,
927         LPARAM lParam,
928         LRESULT *plResult) = 0;
929 
930     virtual HRESULT STDMETHODCALLTYPE FilterClientWindows(
931         ATOM *aaClassList,
932         UINT uSize) = 0;
933 
934     virtual HRESULT STDMETHODCALLTYPE GetCodePageA(
935         HKL hKL,
936         UINT *uCodePage) = 0;
937 
938     virtual HRESULT STDMETHODCALLTYPE GetLangId(
939         HKL hKL,
940         LANGID *plid) = 0;
941 
942     virtual HRESULT STDMETHODCALLTYPE AssociateContextEx(
943         HWND hWnd,
944         HIMC hIMC,
945         DWORD dwFlags) = 0;
946 
947     virtual HRESULT STDMETHODCALLTYPE DisableIME(
948         DWORD idThread) = 0;
949 
950     virtual HRESULT STDMETHODCALLTYPE GetImeMenuItemsA(
951         HIMC hIMC,
952         DWORD dwFlags,
953         DWORD dwType,
954         IMEMENUITEMINFOA *pImeParentMenu,
955         IMEMENUITEMINFOA *pImeMenu,
956         DWORD dwSize,
957         DWORD *pdwResult) = 0;
958 
959     virtual HRESULT STDMETHODCALLTYPE GetImeMenuItemsW(
960         HIMC hIMC,
961         DWORD dwFlags,
962         DWORD dwType,
963         IMEMENUITEMINFOW *pImeParentMenu,
964         IMEMENUITEMINFOW *pImeMenu,
965         DWORD dwSize,
966         DWORD *pdwResult) = 0;
967 
968     virtual HRESULT STDMETHODCALLTYPE EnumInputContext(
969         DWORD idThread,
970         IEnumInputContext **ppEnum) = 0;
971 
972 };
973 #ifdef __CRT_UUID_DECL
974 __CRT_UUID_DECL(IActiveIMMApp, 0x08c0e040, 0x62d1, 0x11d1, 0x93,0x26, 0x00,0x60,0xb0,0x67,0xb8,0x6e)
975 #endif
976 #else
977 typedef struct IActiveIMMAppVtbl {
978     BEGIN_INTERFACE
979 
980     /*** IUnknown methods ***/
981     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
982         IActiveIMMApp *This,
983         REFIID riid,
984         void **ppvObject);
985 
986     ULONG (STDMETHODCALLTYPE *AddRef)(
987         IActiveIMMApp *This);
988 
989     ULONG (STDMETHODCALLTYPE *Release)(
990         IActiveIMMApp *This);
991 
992     /*** IActiveIMMApp methods ***/
993     HRESULT (STDMETHODCALLTYPE *AssociateContext)(
994         IActiveIMMApp *This,
995         HWND hWnd,
996         HIMC hIME,
997         HIMC *phPrev);
998 
999     HRESULT (STDMETHODCALLTYPE *ConfigureIMEA)(
1000         IActiveIMMApp *This,
1001         HKL hKL,
1002         HWND hWnd,
1003         DWORD dwMode,
1004         REGISTERWORDA *pData);
1005 
1006     HRESULT (STDMETHODCALLTYPE *ConfigureIMEW)(
1007         IActiveIMMApp *This,
1008         HKL hKL,
1009         HWND hWnd,
1010         DWORD dwMode,
1011         REGISTERWORDW *pData);
1012 
1013     HRESULT (STDMETHODCALLTYPE *CreateContext)(
1014         IActiveIMMApp *This,
1015         HIMC *phIMC);
1016 
1017     HRESULT (STDMETHODCALLTYPE *DestroyContext)(
1018         IActiveIMMApp *This,
1019         HIMC hIME);
1020 
1021     HRESULT (STDMETHODCALLTYPE *EnumRegisterWordA)(
1022         IActiveIMMApp *This,
1023         HKL hKL,
1024         LPSTR szReading,
1025         DWORD dwStyle,
1026         LPSTR szRegister,
1027         LPVOID pData,
1028         IEnumRegisterWordA **pEnum);
1029 
1030     HRESULT (STDMETHODCALLTYPE *EnumRegisterWordW)(
1031         IActiveIMMApp *This,
1032         HKL hKL,
1033         LPWSTR szReading,
1034         DWORD dwStyle,
1035         LPWSTR szRegister,
1036         LPVOID pData,
1037         IEnumRegisterWordW **pEnum);
1038 
1039     HRESULT (STDMETHODCALLTYPE *EscapeA)(
1040         IActiveIMMApp *This,
1041         HKL hKL,
1042         HIMC hIMC,
1043         UINT uEscape,
1044         LPVOID pData,
1045         LRESULT *plResult);
1046 
1047     HRESULT (STDMETHODCALLTYPE *EscapeW)(
1048         IActiveIMMApp *This,
1049         HKL hKL,
1050         HIMC hIMC,
1051         UINT uEscape,
1052         LPVOID pData,
1053         LRESULT *plResult);
1054 
1055     HRESULT (STDMETHODCALLTYPE *GetCandidateListA)(
1056         IActiveIMMApp *This,
1057         HIMC hIMC,
1058         DWORD dwIndex,
1059         UINT uBufLen,
1060         CANDIDATELIST *pCandList,
1061         UINT *puCopied);
1062 
1063     HRESULT (STDMETHODCALLTYPE *GetCandidateListW)(
1064         IActiveIMMApp *This,
1065         HIMC hIMC,
1066         DWORD dwIndex,
1067         UINT uBufLen,
1068         CANDIDATELIST *pCandList,
1069         UINT *puCopied);
1070 
1071     HRESULT (STDMETHODCALLTYPE *GetCandidateListCountA)(
1072         IActiveIMMApp *This,
1073         HIMC hIMC,
1074         DWORD *pdwListSize,
1075         DWORD *pdwBufLen);
1076 
1077     HRESULT (STDMETHODCALLTYPE *GetCandidateListCountW)(
1078         IActiveIMMApp *This,
1079         HIMC hIMC,
1080         DWORD *pdwListSize,
1081         DWORD *pdwBufLen);
1082 
1083     HRESULT (STDMETHODCALLTYPE *GetCandidateWindow)(
1084         IActiveIMMApp *This,
1085         HIMC hIMC,
1086         DWORD dwIndex,
1087         CANDIDATEFORM *pCandidate);
1088 
1089     HRESULT (STDMETHODCALLTYPE *GetCompositionFontA)(
1090         IActiveIMMApp *This,
1091         HIMC hIMC,
1092         LOGFONTA *plf);
1093 
1094     HRESULT (STDMETHODCALLTYPE *GetCompositionFontW)(
1095         IActiveIMMApp *This,
1096         HIMC hIMC,
1097         LOGFONTW *plf);
1098 
1099     HRESULT (STDMETHODCALLTYPE *GetCompositionStringA)(
1100         IActiveIMMApp *This,
1101         HIMC hIMC,
1102         DWORD dwIndex,
1103         DWORD dwBufLen,
1104         LONG *plCopied,
1105         LPVOID pBuf);
1106 
1107     HRESULT (STDMETHODCALLTYPE *GetCompositionStringW)(
1108         IActiveIMMApp *This,
1109         HIMC hIMC,
1110         DWORD dwIndex,
1111         DWORD dwBufLen,
1112         LONG *plCopied,
1113         LPVOID pBuf);
1114 
1115     HRESULT (STDMETHODCALLTYPE *GetCompositionWindow)(
1116         IActiveIMMApp *This,
1117         HIMC hIMC,
1118         COMPOSITIONFORM *pCompForm);
1119 
1120     HRESULT (STDMETHODCALLTYPE *GetContext)(
1121         IActiveIMMApp *This,
1122         HWND hWnd,
1123         HIMC *phIMC);
1124 
1125     HRESULT (STDMETHODCALLTYPE *GetConversionListA)(
1126         IActiveIMMApp *This,
1127         HKL hKL,
1128         HIMC hIMC,
1129         LPSTR pSrc,
1130         UINT uBufLen,
1131         UINT uFlag,
1132         CANDIDATELIST *pDst,
1133         UINT *puCopied);
1134 
1135     HRESULT (STDMETHODCALLTYPE *GetConversionListW)(
1136         IActiveIMMApp *This,
1137         HKL hKL,
1138         HIMC hIMC,
1139         LPWSTR pSrc,
1140         UINT uBufLen,
1141         UINT uFlag,
1142         CANDIDATELIST *pDst,
1143         UINT *puCopied);
1144 
1145     HRESULT (STDMETHODCALLTYPE *GetConversionStatus)(
1146         IActiveIMMApp *This,
1147         HIMC hIMC,
1148         DWORD *pfdwConversion,
1149         DWORD *pfdwSentence);
1150 
1151     HRESULT (STDMETHODCALLTYPE *GetDefaultIMEWnd)(
1152         IActiveIMMApp *This,
1153         HWND hWnd,
1154         HWND *phDefWnd);
1155 
1156     HRESULT (STDMETHODCALLTYPE *GetDescriptionA)(
1157         IActiveIMMApp *This,
1158         HKL hKL,
1159         UINT uBufLen,
1160         LPSTR szDescription,
1161         UINT *puCopied);
1162 
1163     HRESULT (STDMETHODCALLTYPE *GetDescriptionW)(
1164         IActiveIMMApp *This,
1165         HKL hKL,
1166         UINT uBufLen,
1167         LPWSTR szDescription,
1168         UINT *puCopied);
1169 
1170     HRESULT (STDMETHODCALLTYPE *GetGuideLineA)(
1171         IActiveIMMApp *This,
1172         HIMC hIMC,
1173         DWORD dwIndex,
1174         DWORD dwBufLen,
1175         LPSTR pBuf,
1176         DWORD *pdwResult);
1177 
1178     HRESULT (STDMETHODCALLTYPE *GetGuideLineW)(
1179         IActiveIMMApp *This,
1180         HIMC hIMC,
1181         DWORD dwIndex,
1182         DWORD dwBufLen,
1183         LPWSTR pBuf,
1184         DWORD *pdwResult);
1185 
1186     HRESULT (STDMETHODCALLTYPE *GetIMEFileNameA)(
1187         IActiveIMMApp *This,
1188         HKL hKL,
1189         UINT uBufLen,
1190         LPSTR szFileName,
1191         UINT *puCopied);
1192 
1193     HRESULT (STDMETHODCALLTYPE *GetIMEFileNameW)(
1194         IActiveIMMApp *This,
1195         HKL hKL,
1196         UINT uBufLen,
1197         LPWSTR szFileName,
1198         UINT *puCopied);
1199 
1200     HRESULT (STDMETHODCALLTYPE *GetOpenStatus)(
1201         IActiveIMMApp *This,
1202         HIMC hIMC);
1203 
1204     HRESULT (STDMETHODCALLTYPE *GetProperty)(
1205         IActiveIMMApp *This,
1206         HKL hKL,
1207         DWORD fdwIndex,
1208         DWORD *pdwProperty);
1209 
1210     HRESULT (STDMETHODCALLTYPE *GetRegisterWordStyleA)(
1211         IActiveIMMApp *This,
1212         HKL hKL,
1213         UINT nItem,
1214         STYLEBUFA *pStyleBuf,
1215         UINT *puCopied);
1216 
1217     HRESULT (STDMETHODCALLTYPE *GetRegisterWordStyleW)(
1218         IActiveIMMApp *This,
1219         HKL hKL,
1220         UINT nItem,
1221         STYLEBUFW *pStyleBuf,
1222         UINT *puCopied);
1223 
1224     HRESULT (STDMETHODCALLTYPE *GetStatusWindowPos)(
1225         IActiveIMMApp *This,
1226         HIMC hIMC,
1227         POINT *pptPos);
1228 
1229     HRESULT (STDMETHODCALLTYPE *GetVirtualKey)(
1230         IActiveIMMApp *This,
1231         HWND hWnd,
1232         UINT *puVirtualKey);
1233 
1234     HRESULT (STDMETHODCALLTYPE *InstallIMEA)(
1235         IActiveIMMApp *This,
1236         LPSTR szIMEFileName,
1237         LPSTR szLayoutText,
1238         HKL *phKL);
1239 
1240     HRESULT (STDMETHODCALLTYPE *InstallIMEW)(
1241         IActiveIMMApp *This,
1242         LPWSTR szIMEFileName,
1243         LPWSTR szLayoutText,
1244         HKL *phKL);
1245 
1246     HRESULT (STDMETHODCALLTYPE *IsIME)(
1247         IActiveIMMApp *This,
1248         HKL hKL);
1249 
1250     HRESULT (STDMETHODCALLTYPE *IsUIMessageA)(
1251         IActiveIMMApp *This,
1252         HWND hWndIME,
1253         UINT msg,
1254         WPARAM wParam,
1255         LPARAM lParam);
1256 
1257     HRESULT (STDMETHODCALLTYPE *IsUIMessageW)(
1258         IActiveIMMApp *This,
1259         HWND hWndIME,
1260         UINT msg,
1261         WPARAM wParam,
1262         LPARAM lParam);
1263 
1264     HRESULT (STDMETHODCALLTYPE *NotifyIME)(
1265         IActiveIMMApp *This,
1266         HIMC hIMC,
1267         DWORD dwAction,
1268         DWORD dwIndex,
1269         DWORD dwValue);
1270 
1271     HRESULT (STDMETHODCALLTYPE *RegisterWordA)(
1272         IActiveIMMApp *This,
1273         HKL hKL,
1274         LPSTR szReading,
1275         DWORD dwStyle,
1276         LPSTR szRegister);
1277 
1278     HRESULT (STDMETHODCALLTYPE *RegisterWordW)(
1279         IActiveIMMApp *This,
1280         HKL hKL,
1281         LPWSTR szReading,
1282         DWORD dwStyle,
1283         LPWSTR szRegister);
1284 
1285     HRESULT (STDMETHODCALLTYPE *ReleaseContext)(
1286         IActiveIMMApp *This,
1287         HWND hWnd,
1288         HIMC hIMC);
1289 
1290     HRESULT (STDMETHODCALLTYPE *SetCandidateWindow)(
1291         IActiveIMMApp *This,
1292         HIMC hIMC,
1293         CANDIDATEFORM *pCandidate);
1294 
1295     HRESULT (STDMETHODCALLTYPE *SetCompositionFontA)(
1296         IActiveIMMApp *This,
1297         HIMC hIMC,
1298         LOGFONTA *plf);
1299 
1300     HRESULT (STDMETHODCALLTYPE *SetCompositionFontW)(
1301         IActiveIMMApp *This,
1302         HIMC hIMC,
1303         LOGFONTW *plf);
1304 
1305     HRESULT (STDMETHODCALLTYPE *SetCompositionStringA)(
1306         IActiveIMMApp *This,
1307         HIMC hIMC,
1308         DWORD dwIndex,
1309         LPVOID pComp,
1310         DWORD dwCompLen,
1311         LPVOID pRead,
1312         DWORD dwReadLen);
1313 
1314     HRESULT (STDMETHODCALLTYPE *SetCompositionStringW)(
1315         IActiveIMMApp *This,
1316         HIMC hIMC,
1317         DWORD dwIndex,
1318         LPVOID pComp,
1319         DWORD dwCompLen,
1320         LPVOID pRead,
1321         DWORD dwReadLen);
1322 
1323     HRESULT (STDMETHODCALLTYPE *SetCompositionWindow)(
1324         IActiveIMMApp *This,
1325         HIMC hIMC,
1326         COMPOSITIONFORM *pCompForm);
1327 
1328     HRESULT (STDMETHODCALLTYPE *SetConversionStatus)(
1329         IActiveIMMApp *This,
1330         HIMC hIMC,
1331         DWORD fdwConversion,
1332         DWORD fdwSentence);
1333 
1334     HRESULT (STDMETHODCALLTYPE *SetOpenStatus)(
1335         IActiveIMMApp *This,
1336         HIMC hIMC,
1337         WINBOOL fOpen);
1338 
1339     HRESULT (STDMETHODCALLTYPE *SetStatusWindowPos)(
1340         IActiveIMMApp *This,
1341         HIMC hIMC,
1342         POINT *pptPos);
1343 
1344     HRESULT (STDMETHODCALLTYPE *SimulateHotKey)(
1345         IActiveIMMApp *This,
1346         HWND hWnd,
1347         DWORD dwHotKeyID);
1348 
1349     HRESULT (STDMETHODCALLTYPE *UnregisterWordA)(
1350         IActiveIMMApp *This,
1351         HKL hKL,
1352         LPSTR szReading,
1353         DWORD dwStyle,
1354         LPSTR szUnregister);
1355 
1356     HRESULT (STDMETHODCALLTYPE *UnregisterWordW)(
1357         IActiveIMMApp *This,
1358         HKL hKL,
1359         LPWSTR szReading,
1360         DWORD dwStyle,
1361         LPWSTR szUnregister);
1362 
1363     HRESULT (STDMETHODCALLTYPE *Activate)(
1364         IActiveIMMApp *This,
1365         WINBOOL fRestoreLayout);
1366 
1367     HRESULT (STDMETHODCALLTYPE *Deactivate)(
1368         IActiveIMMApp *This);
1369 
1370     HRESULT (STDMETHODCALLTYPE *OnDefWindowProc)(
1371         IActiveIMMApp *This,
1372         HWND hWnd,
1373         UINT Msg,
1374         WPARAM wParam,
1375         LPARAM lParam,
1376         LRESULT *plResult);
1377 
1378     HRESULT (STDMETHODCALLTYPE *FilterClientWindows)(
1379         IActiveIMMApp *This,
1380         ATOM *aaClassList,
1381         UINT uSize);
1382 
1383     HRESULT (STDMETHODCALLTYPE *GetCodePageA)(
1384         IActiveIMMApp *This,
1385         HKL hKL,
1386         UINT *uCodePage);
1387 
1388     HRESULT (STDMETHODCALLTYPE *GetLangId)(
1389         IActiveIMMApp *This,
1390         HKL hKL,
1391         LANGID *plid);
1392 
1393     HRESULT (STDMETHODCALLTYPE *AssociateContextEx)(
1394         IActiveIMMApp *This,
1395         HWND hWnd,
1396         HIMC hIMC,
1397         DWORD dwFlags);
1398 
1399     HRESULT (STDMETHODCALLTYPE *DisableIME)(
1400         IActiveIMMApp *This,
1401         DWORD idThread);
1402 
1403     HRESULT (STDMETHODCALLTYPE *GetImeMenuItemsA)(
1404         IActiveIMMApp *This,
1405         HIMC hIMC,
1406         DWORD dwFlags,
1407         DWORD dwType,
1408         IMEMENUITEMINFOA *pImeParentMenu,
1409         IMEMENUITEMINFOA *pImeMenu,
1410         DWORD dwSize,
1411         DWORD *pdwResult);
1412 
1413     HRESULT (STDMETHODCALLTYPE *GetImeMenuItemsW)(
1414         IActiveIMMApp *This,
1415         HIMC hIMC,
1416         DWORD dwFlags,
1417         DWORD dwType,
1418         IMEMENUITEMINFOW *pImeParentMenu,
1419         IMEMENUITEMINFOW *pImeMenu,
1420         DWORD dwSize,
1421         DWORD *pdwResult);
1422 
1423     HRESULT (STDMETHODCALLTYPE *EnumInputContext)(
1424         IActiveIMMApp *This,
1425         DWORD idThread,
1426         IEnumInputContext **ppEnum);
1427 
1428     END_INTERFACE
1429 } IActiveIMMAppVtbl;
1430 
1431 interface IActiveIMMApp {
1432     CONST_VTBL IActiveIMMAppVtbl* lpVtbl;
1433 };
1434 
1435 #ifdef COBJMACROS
1436 #ifndef WIDL_C_INLINE_WRAPPERS
1437 /*** IUnknown methods ***/
1438 #define IActiveIMMApp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1439 #define IActiveIMMApp_AddRef(This) (This)->lpVtbl->AddRef(This)
1440 #define IActiveIMMApp_Release(This) (This)->lpVtbl->Release(This)
1441 /*** IActiveIMMApp methods ***/
1442 #define IActiveIMMApp_AssociateContext(This,hWnd,hIME,phPrev) (This)->lpVtbl->AssociateContext(This,hWnd,hIME,phPrev)
1443 #define IActiveIMMApp_ConfigureIMEA(This,hKL,hWnd,dwMode,pData) (This)->lpVtbl->ConfigureIMEA(This,hKL,hWnd,dwMode,pData)
1444 #define IActiveIMMApp_ConfigureIMEW(This,hKL,hWnd,dwMode,pData) (This)->lpVtbl->ConfigureIMEW(This,hKL,hWnd,dwMode,pData)
1445 #define IActiveIMMApp_CreateContext(This,phIMC) (This)->lpVtbl->CreateContext(This,phIMC)
1446 #define IActiveIMMApp_DestroyContext(This,hIME) (This)->lpVtbl->DestroyContext(This,hIME)
1447 #define IActiveIMMApp_EnumRegisterWordA(This,hKL,szReading,dwStyle,szRegister,pData,pEnum) (This)->lpVtbl->EnumRegisterWordA(This,hKL,szReading,dwStyle,szRegister,pData,pEnum)
1448 #define IActiveIMMApp_EnumRegisterWordW(This,hKL,szReading,dwStyle,szRegister,pData,pEnum) (This)->lpVtbl->EnumRegisterWordW(This,hKL,szReading,dwStyle,szRegister,pData,pEnum)
1449 #define IActiveIMMApp_EscapeA(This,hKL,hIMC,uEscape,pData,plResult) (This)->lpVtbl->EscapeA(This,hKL,hIMC,uEscape,pData,plResult)
1450 #define IActiveIMMApp_EscapeW(This,hKL,hIMC,uEscape,pData,plResult) (This)->lpVtbl->EscapeW(This,hKL,hIMC,uEscape,pData,plResult)
1451 #define IActiveIMMApp_GetCandidateListA(This,hIMC,dwIndex,uBufLen,pCandList,puCopied) (This)->lpVtbl->GetCandidateListA(This,hIMC,dwIndex,uBufLen,pCandList,puCopied)
1452 #define IActiveIMMApp_GetCandidateListW(This,hIMC,dwIndex,uBufLen,pCandList,puCopied) (This)->lpVtbl->GetCandidateListW(This,hIMC,dwIndex,uBufLen,pCandList,puCopied)
1453 #define IActiveIMMApp_GetCandidateListCountA(This,hIMC,pdwListSize,pdwBufLen) (This)->lpVtbl->GetCandidateListCountA(This,hIMC,pdwListSize,pdwBufLen)
1454 #define IActiveIMMApp_GetCandidateListCountW(This,hIMC,pdwListSize,pdwBufLen) (This)->lpVtbl->GetCandidateListCountW(This,hIMC,pdwListSize,pdwBufLen)
1455 #define IActiveIMMApp_GetCandidateWindow(This,hIMC,dwIndex,pCandidate) (This)->lpVtbl->GetCandidateWindow(This,hIMC,dwIndex,pCandidate)
1456 #define IActiveIMMApp_GetCompositionFontA(This,hIMC,plf) (This)->lpVtbl->GetCompositionFontA(This,hIMC,plf)
1457 #define IActiveIMMApp_GetCompositionFontW(This,hIMC,plf) (This)->lpVtbl->GetCompositionFontW(This,hIMC,plf)
1458 #define IActiveIMMApp_GetCompositionStringA(This,hIMC,dwIndex,dwBufLen,plCopied,pBuf) (This)->lpVtbl->GetCompositionStringA(This,hIMC,dwIndex,dwBufLen,plCopied,pBuf)
1459 #define IActiveIMMApp_GetCompositionStringW(This,hIMC,dwIndex,dwBufLen,plCopied,pBuf) (This)->lpVtbl->GetCompositionStringW(This,hIMC,dwIndex,dwBufLen,plCopied,pBuf)
1460 #define IActiveIMMApp_GetCompositionWindow(This,hIMC,pCompForm) (This)->lpVtbl->GetCompositionWindow(This,hIMC,pCompForm)
1461 #define IActiveIMMApp_GetContext(This,hWnd,phIMC) (This)->lpVtbl->GetContext(This,hWnd,phIMC)
1462 #define IActiveIMMApp_GetConversionListA(This,hKL,hIMC,pSrc,uBufLen,uFlag,pDst,puCopied) (This)->lpVtbl->GetConversionListA(This,hKL,hIMC,pSrc,uBufLen,uFlag,pDst,puCopied)
1463 #define IActiveIMMApp_GetConversionListW(This,hKL,hIMC,pSrc,uBufLen,uFlag,pDst,puCopied) (This)->lpVtbl->GetConversionListW(This,hKL,hIMC,pSrc,uBufLen,uFlag,pDst,puCopied)
1464 #define IActiveIMMApp_GetConversionStatus(This,hIMC,pfdwConversion,pfdwSentence) (This)->lpVtbl->GetConversionStatus(This,hIMC,pfdwConversion,pfdwSentence)
1465 #define IActiveIMMApp_GetDefaultIMEWnd(This,hWnd,phDefWnd) (This)->lpVtbl->GetDefaultIMEWnd(This,hWnd,phDefWnd)
1466 #define IActiveIMMApp_GetDescriptionA(This,hKL,uBufLen,szDescription,puCopied) (This)->lpVtbl->GetDescriptionA(This,hKL,uBufLen,szDescription,puCopied)
1467 #define IActiveIMMApp_GetDescriptionW(This,hKL,uBufLen,szDescription,puCopied) (This)->lpVtbl->GetDescriptionW(This,hKL,uBufLen,szDescription,puCopied)
1468 #define IActiveIMMApp_GetGuideLineA(This,hIMC,dwIndex,dwBufLen,pBuf,pdwResult) (This)->lpVtbl->GetGuideLineA(This,hIMC,dwIndex,dwBufLen,pBuf,pdwResult)
1469 #define IActiveIMMApp_GetGuideLineW(This,hIMC,dwIndex,dwBufLen,pBuf,pdwResult) (This)->lpVtbl->GetGuideLineW(This,hIMC,dwIndex,dwBufLen,pBuf,pdwResult)
1470 #define IActiveIMMApp_GetIMEFileNameA(This,hKL,uBufLen,szFileName,puCopied) (This)->lpVtbl->GetIMEFileNameA(This,hKL,uBufLen,szFileName,puCopied)
1471 #define IActiveIMMApp_GetIMEFileNameW(This,hKL,uBufLen,szFileName,puCopied) (This)->lpVtbl->GetIMEFileNameW(This,hKL,uBufLen,szFileName,puCopied)
1472 #define IActiveIMMApp_GetOpenStatus(This,hIMC) (This)->lpVtbl->GetOpenStatus(This,hIMC)
1473 #define IActiveIMMApp_GetProperty(This,hKL,fdwIndex,pdwProperty) (This)->lpVtbl->GetProperty(This,hKL,fdwIndex,pdwProperty)
1474 #define IActiveIMMApp_GetRegisterWordStyleA(This,hKL,nItem,pStyleBuf,puCopied) (This)->lpVtbl->GetRegisterWordStyleA(This,hKL,nItem,pStyleBuf,puCopied)
1475 #define IActiveIMMApp_GetRegisterWordStyleW(This,hKL,nItem,pStyleBuf,puCopied) (This)->lpVtbl->GetRegisterWordStyleW(This,hKL,nItem,pStyleBuf,puCopied)
1476 #define IActiveIMMApp_GetStatusWindowPos(This,hIMC,pptPos) (This)->lpVtbl->GetStatusWindowPos(This,hIMC,pptPos)
1477 #define IActiveIMMApp_GetVirtualKey(This,hWnd,puVirtualKey) (This)->lpVtbl->GetVirtualKey(This,hWnd,puVirtualKey)
1478 #define IActiveIMMApp_InstallIMEA(This,szIMEFileName,szLayoutText,phKL) (This)->lpVtbl->InstallIMEA(This,szIMEFileName,szLayoutText,phKL)
1479 #define IActiveIMMApp_InstallIMEW(This,szIMEFileName,szLayoutText,phKL) (This)->lpVtbl->InstallIMEW(This,szIMEFileName,szLayoutText,phKL)
1480 #define IActiveIMMApp_IsIME(This,hKL) (This)->lpVtbl->IsIME(This,hKL)
1481 #define IActiveIMMApp_IsUIMessageA(This,hWndIME,msg,wParam,lParam) (This)->lpVtbl->IsUIMessageA(This,hWndIME,msg,wParam,lParam)
1482 #define IActiveIMMApp_IsUIMessageW(This,hWndIME,msg,wParam,lParam) (This)->lpVtbl->IsUIMessageW(This,hWndIME,msg,wParam,lParam)
1483 #define IActiveIMMApp_NotifyIME(This,hIMC,dwAction,dwIndex,dwValue) (This)->lpVtbl->NotifyIME(This,hIMC,dwAction,dwIndex,dwValue)
1484 #define IActiveIMMApp_RegisterWordA(This,hKL,szReading,dwStyle,szRegister) (This)->lpVtbl->RegisterWordA(This,hKL,szReading,dwStyle,szRegister)
1485 #define IActiveIMMApp_RegisterWordW(This,hKL,szReading,dwStyle,szRegister) (This)->lpVtbl->RegisterWordW(This,hKL,szReading,dwStyle,szRegister)
1486 #define IActiveIMMApp_ReleaseContext(This,hWnd,hIMC) (This)->lpVtbl->ReleaseContext(This,hWnd,hIMC)
1487 #define IActiveIMMApp_SetCandidateWindow(This,hIMC,pCandidate) (This)->lpVtbl->SetCandidateWindow(This,hIMC,pCandidate)
1488 #define IActiveIMMApp_SetCompositionFontA(This,hIMC,plf) (This)->lpVtbl->SetCompositionFontA(This,hIMC,plf)
1489 #define IActiveIMMApp_SetCompositionFontW(This,hIMC,plf) (This)->lpVtbl->SetCompositionFontW(This,hIMC,plf)
1490 #define IActiveIMMApp_SetCompositionStringA(This,hIMC,dwIndex,pComp,dwCompLen,pRead,dwReadLen) (This)->lpVtbl->SetCompositionStringA(This,hIMC,dwIndex,pComp,dwCompLen,pRead,dwReadLen)
1491 #define IActiveIMMApp_SetCompositionStringW(This,hIMC,dwIndex,pComp,dwCompLen,pRead,dwReadLen) (This)->lpVtbl->SetCompositionStringW(This,hIMC,dwIndex,pComp,dwCompLen,pRead,dwReadLen)
1492 #define IActiveIMMApp_SetCompositionWindow(This,hIMC,pCompForm) (This)->lpVtbl->SetCompositionWindow(This,hIMC,pCompForm)
1493 #define IActiveIMMApp_SetConversionStatus(This,hIMC,fdwConversion,fdwSentence) (This)->lpVtbl->SetConversionStatus(This,hIMC,fdwConversion,fdwSentence)
1494 #define IActiveIMMApp_SetOpenStatus(This,hIMC,fOpen) (This)->lpVtbl->SetOpenStatus(This,hIMC,fOpen)
1495 #define IActiveIMMApp_SetStatusWindowPos(This,hIMC,pptPos) (This)->lpVtbl->SetStatusWindowPos(This,hIMC,pptPos)
1496 #define IActiveIMMApp_SimulateHotKey(This,hWnd,dwHotKeyID) (This)->lpVtbl->SimulateHotKey(This,hWnd,dwHotKeyID)
1497 #define IActiveIMMApp_UnregisterWordA(This,hKL,szReading,dwStyle,szUnregister) (This)->lpVtbl->UnregisterWordA(This,hKL,szReading,dwStyle,szUnregister)
1498 #define IActiveIMMApp_UnregisterWordW(This,hKL,szReading,dwStyle,szUnregister) (This)->lpVtbl->UnregisterWordW(This,hKL,szReading,dwStyle,szUnregister)
1499 #define IActiveIMMApp_Activate(This,fRestoreLayout) (This)->lpVtbl->Activate(This,fRestoreLayout)
1500 #define IActiveIMMApp_Deactivate(This) (This)->lpVtbl->Deactivate(This)
1501 #define IActiveIMMApp_OnDefWindowProc(This,hWnd,Msg,wParam,lParam,plResult) (This)->lpVtbl->OnDefWindowProc(This,hWnd,Msg,wParam,lParam,plResult)
1502 #define IActiveIMMApp_FilterClientWindows(This,aaClassList,uSize) (This)->lpVtbl->FilterClientWindows(This,aaClassList,uSize)
1503 #define IActiveIMMApp_GetCodePageA(This,hKL,uCodePage) (This)->lpVtbl->GetCodePageA(This,hKL,uCodePage)
1504 #define IActiveIMMApp_GetLangId(This,hKL,plid) (This)->lpVtbl->GetLangId(This,hKL,plid)
1505 #define IActiveIMMApp_AssociateContextEx(This,hWnd,hIMC,dwFlags) (This)->lpVtbl->AssociateContextEx(This,hWnd,hIMC,dwFlags)
1506 #define IActiveIMMApp_DisableIME(This,idThread) (This)->lpVtbl->DisableIME(This,idThread)
1507 #define IActiveIMMApp_GetImeMenuItemsA(This,hIMC,dwFlags,dwType,pImeParentMenu,pImeMenu,dwSize,pdwResult) (This)->lpVtbl->GetImeMenuItemsA(This,hIMC,dwFlags,dwType,pImeParentMenu,pImeMenu,dwSize,pdwResult)
1508 #define IActiveIMMApp_GetImeMenuItemsW(This,hIMC,dwFlags,dwType,pImeParentMenu,pImeMenu,dwSize,pdwResult) (This)->lpVtbl->GetImeMenuItemsW(This,hIMC,dwFlags,dwType,pImeParentMenu,pImeMenu,dwSize,pdwResult)
1509 #define IActiveIMMApp_EnumInputContext(This,idThread,ppEnum) (This)->lpVtbl->EnumInputContext(This,idThread,ppEnum)
1510 #else
1511 /*** IUnknown methods ***/
1512 static FORCEINLINE HRESULT IActiveIMMApp_QueryInterface(IActiveIMMApp* This,REFIID riid,void **ppvObject) {
1513     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1514 }
1515 static FORCEINLINE ULONG IActiveIMMApp_AddRef(IActiveIMMApp* This) {
1516     return This->lpVtbl->AddRef(This);
1517 }
1518 static FORCEINLINE ULONG IActiveIMMApp_Release(IActiveIMMApp* This) {
1519     return This->lpVtbl->Release(This);
1520 }
1521 /*** IActiveIMMApp methods ***/
1522 static FORCEINLINE HRESULT IActiveIMMApp_AssociateContext(IActiveIMMApp* This,HWND hWnd,HIMC hIME,HIMC *phPrev) {
1523     return This->lpVtbl->AssociateContext(This,hWnd,hIME,phPrev);
1524 }
1525 static FORCEINLINE HRESULT IActiveIMMApp_ConfigureIMEA(IActiveIMMApp* This,HKL hKL,HWND hWnd,DWORD dwMode,REGISTERWORDA *pData) {
1526     return This->lpVtbl->ConfigureIMEA(This,hKL,hWnd,dwMode,pData);
1527 }
1528 static FORCEINLINE HRESULT IActiveIMMApp_ConfigureIMEW(IActiveIMMApp* This,HKL hKL,HWND hWnd,DWORD dwMode,REGISTERWORDW *pData) {
1529     return This->lpVtbl->ConfigureIMEW(This,hKL,hWnd,dwMode,pData);
1530 }
1531 static FORCEINLINE HRESULT IActiveIMMApp_CreateContext(IActiveIMMApp* This,HIMC *phIMC) {
1532     return This->lpVtbl->CreateContext(This,phIMC);
1533 }
1534 static FORCEINLINE HRESULT IActiveIMMApp_DestroyContext(IActiveIMMApp* This,HIMC hIME) {
1535     return This->lpVtbl->DestroyContext(This,hIME);
1536 }
1537 static FORCEINLINE HRESULT IActiveIMMApp_EnumRegisterWordA(IActiveIMMApp* This,HKL hKL,LPSTR szReading,DWORD dwStyle,LPSTR szRegister,LPVOID pData,IEnumRegisterWordA **pEnum) {
1538     return This->lpVtbl->EnumRegisterWordA(This,hKL,szReading,dwStyle,szRegister,pData,pEnum);
1539 }
1540 static FORCEINLINE HRESULT IActiveIMMApp_EnumRegisterWordW(IActiveIMMApp* This,HKL hKL,LPWSTR szReading,DWORD dwStyle,LPWSTR szRegister,LPVOID pData,IEnumRegisterWordW **pEnum) {
1541     return This->lpVtbl->EnumRegisterWordW(This,hKL,szReading,dwStyle,szRegister,pData,pEnum);
1542 }
1543 static FORCEINLINE HRESULT IActiveIMMApp_EscapeA(IActiveIMMApp* This,HKL hKL,HIMC hIMC,UINT uEscape,LPVOID pData,LRESULT *plResult) {
1544     return This->lpVtbl->EscapeA(This,hKL,hIMC,uEscape,pData,plResult);
1545 }
1546 static FORCEINLINE HRESULT IActiveIMMApp_EscapeW(IActiveIMMApp* This,HKL hKL,HIMC hIMC,UINT uEscape,LPVOID pData,LRESULT *plResult) {
1547     return This->lpVtbl->EscapeW(This,hKL,hIMC,uEscape,pData,plResult);
1548 }
1549 static FORCEINLINE HRESULT IActiveIMMApp_GetCandidateListA(IActiveIMMApp* This,HIMC hIMC,DWORD dwIndex,UINT uBufLen,CANDIDATELIST *pCandList,UINT *puCopied) {
1550     return This->lpVtbl->GetCandidateListA(This,hIMC,dwIndex,uBufLen,pCandList,puCopied);
1551 }
1552 static FORCEINLINE HRESULT IActiveIMMApp_GetCandidateListW(IActiveIMMApp* This,HIMC hIMC,DWORD dwIndex,UINT uBufLen,CANDIDATELIST *pCandList,UINT *puCopied) {
1553     return This->lpVtbl->GetCandidateListW(This,hIMC,dwIndex,uBufLen,pCandList,puCopied);
1554 }
1555 static FORCEINLINE HRESULT IActiveIMMApp_GetCandidateListCountA(IActiveIMMApp* This,HIMC hIMC,DWORD *pdwListSize,DWORD *pdwBufLen) {
1556     return This->lpVtbl->GetCandidateListCountA(This,hIMC,pdwListSize,pdwBufLen);
1557 }
1558 static FORCEINLINE HRESULT IActiveIMMApp_GetCandidateListCountW(IActiveIMMApp* This,HIMC hIMC,DWORD *pdwListSize,DWORD *pdwBufLen) {
1559     return This->lpVtbl->GetCandidateListCountW(This,hIMC,pdwListSize,pdwBufLen);
1560 }
1561 static FORCEINLINE HRESULT IActiveIMMApp_GetCandidateWindow(IActiveIMMApp* This,HIMC hIMC,DWORD dwIndex,CANDIDATEFORM *pCandidate) {
1562     return This->lpVtbl->GetCandidateWindow(This,hIMC,dwIndex,pCandidate);
1563 }
1564 static FORCEINLINE HRESULT IActiveIMMApp_GetCompositionFontA(IActiveIMMApp* This,HIMC hIMC,LOGFONTA *plf) {
1565     return This->lpVtbl->GetCompositionFontA(This,hIMC,plf);
1566 }
1567 static FORCEINLINE HRESULT IActiveIMMApp_GetCompositionFontW(IActiveIMMApp* This,HIMC hIMC,LOGFONTW *plf) {
1568     return This->lpVtbl->GetCompositionFontW(This,hIMC,plf);
1569 }
1570 static FORCEINLINE HRESULT IActiveIMMApp_GetCompositionStringA(IActiveIMMApp* This,HIMC hIMC,DWORD dwIndex,DWORD dwBufLen,LONG *plCopied,LPVOID pBuf) {
1571     return This->lpVtbl->GetCompositionStringA(This,hIMC,dwIndex,dwBufLen,plCopied,pBuf);
1572 }
1573 static FORCEINLINE HRESULT IActiveIMMApp_GetCompositionStringW(IActiveIMMApp* This,HIMC hIMC,DWORD dwIndex,DWORD dwBufLen,LONG *plCopied,LPVOID pBuf) {
1574     return This->lpVtbl->GetCompositionStringW(This,hIMC,dwIndex,dwBufLen,plCopied,pBuf);
1575 }
1576 static FORCEINLINE HRESULT IActiveIMMApp_GetCompositionWindow(IActiveIMMApp* This,HIMC hIMC,COMPOSITIONFORM *pCompForm) {
1577     return This->lpVtbl->GetCompositionWindow(This,hIMC,pCompForm);
1578 }
1579 static FORCEINLINE HRESULT IActiveIMMApp_GetContext(IActiveIMMApp* This,HWND hWnd,HIMC *phIMC) {
1580     return This->lpVtbl->GetContext(This,hWnd,phIMC);
1581 }
1582 static FORCEINLINE HRESULT IActiveIMMApp_GetConversionListA(IActiveIMMApp* This,HKL hKL,HIMC hIMC,LPSTR pSrc,UINT uBufLen,UINT uFlag,CANDIDATELIST *pDst,UINT *puCopied) {
1583     return This->lpVtbl->GetConversionListA(This,hKL,hIMC,pSrc,uBufLen,uFlag,pDst,puCopied);
1584 }
1585 static FORCEINLINE HRESULT IActiveIMMApp_GetConversionListW(IActiveIMMApp* This,HKL hKL,HIMC hIMC,LPWSTR pSrc,UINT uBufLen,UINT uFlag,CANDIDATELIST *pDst,UINT *puCopied) {
1586     return This->lpVtbl->GetConversionListW(This,hKL,hIMC,pSrc,uBufLen,uFlag,pDst,puCopied);
1587 }
1588 static FORCEINLINE HRESULT IActiveIMMApp_GetConversionStatus(IActiveIMMApp* This,HIMC hIMC,DWORD *pfdwConversion,DWORD *pfdwSentence) {
1589     return This->lpVtbl->GetConversionStatus(This,hIMC,pfdwConversion,pfdwSentence);
1590 }
1591 static FORCEINLINE HRESULT IActiveIMMApp_GetDefaultIMEWnd(IActiveIMMApp* This,HWND hWnd,HWND *phDefWnd) {
1592     return This->lpVtbl->GetDefaultIMEWnd(This,hWnd,phDefWnd);
1593 }
1594 static FORCEINLINE HRESULT IActiveIMMApp_GetDescriptionA(IActiveIMMApp* This,HKL hKL,UINT uBufLen,LPSTR szDescription,UINT *puCopied) {
1595     return This->lpVtbl->GetDescriptionA(This,hKL,uBufLen,szDescription,puCopied);
1596 }
1597 static FORCEINLINE HRESULT IActiveIMMApp_GetDescriptionW(IActiveIMMApp* This,HKL hKL,UINT uBufLen,LPWSTR szDescription,UINT *puCopied) {
1598     return This->lpVtbl->GetDescriptionW(This,hKL,uBufLen,szDescription,puCopied);
1599 }
1600 static FORCEINLINE HRESULT IActiveIMMApp_GetGuideLineA(IActiveIMMApp* This,HIMC hIMC,DWORD dwIndex,DWORD dwBufLen,LPSTR pBuf,DWORD *pdwResult) {
1601     return This->lpVtbl->GetGuideLineA(This,hIMC,dwIndex,dwBufLen,pBuf,pdwResult);
1602 }
1603 static FORCEINLINE HRESULT IActiveIMMApp_GetGuideLineW(IActiveIMMApp* This,HIMC hIMC,DWORD dwIndex,DWORD dwBufLen,LPWSTR pBuf,DWORD *pdwResult) {
1604     return This->lpVtbl->GetGuideLineW(This,hIMC,dwIndex,dwBufLen,pBuf,pdwResult);
1605 }
1606 static FORCEINLINE HRESULT IActiveIMMApp_GetIMEFileNameA(IActiveIMMApp* This,HKL hKL,UINT uBufLen,LPSTR szFileName,UINT *puCopied) {
1607     return This->lpVtbl->GetIMEFileNameA(This,hKL,uBufLen,szFileName,puCopied);
1608 }
1609 static FORCEINLINE HRESULT IActiveIMMApp_GetIMEFileNameW(IActiveIMMApp* This,HKL hKL,UINT uBufLen,LPWSTR szFileName,UINT *puCopied) {
1610     return This->lpVtbl->GetIMEFileNameW(This,hKL,uBufLen,szFileName,puCopied);
1611 }
1612 static FORCEINLINE HRESULT IActiveIMMApp_GetOpenStatus(IActiveIMMApp* This,HIMC hIMC) {
1613     return This->lpVtbl->GetOpenStatus(This,hIMC);
1614 }
1615 static FORCEINLINE HRESULT IActiveIMMApp_GetProperty(IActiveIMMApp* This,HKL hKL,DWORD fdwIndex,DWORD *pdwProperty) {
1616     return This->lpVtbl->GetProperty(This,hKL,fdwIndex,pdwProperty);
1617 }
1618 static FORCEINLINE HRESULT IActiveIMMApp_GetRegisterWordStyleA(IActiveIMMApp* This,HKL hKL,UINT nItem,STYLEBUFA *pStyleBuf,UINT *puCopied) {
1619     return This->lpVtbl->GetRegisterWordStyleA(This,hKL,nItem,pStyleBuf,puCopied);
1620 }
1621 static FORCEINLINE HRESULT IActiveIMMApp_GetRegisterWordStyleW(IActiveIMMApp* This,HKL hKL,UINT nItem,STYLEBUFW *pStyleBuf,UINT *puCopied) {
1622     return This->lpVtbl->GetRegisterWordStyleW(This,hKL,nItem,pStyleBuf,puCopied);
1623 }
1624 static FORCEINLINE HRESULT IActiveIMMApp_GetStatusWindowPos(IActiveIMMApp* This,HIMC hIMC,POINT *pptPos) {
1625     return This->lpVtbl->GetStatusWindowPos(This,hIMC,pptPos);
1626 }
1627 static FORCEINLINE HRESULT IActiveIMMApp_GetVirtualKey(IActiveIMMApp* This,HWND hWnd,UINT *puVirtualKey) {
1628     return This->lpVtbl->GetVirtualKey(This,hWnd,puVirtualKey);
1629 }
1630 static FORCEINLINE HRESULT IActiveIMMApp_InstallIMEA(IActiveIMMApp* This,LPSTR szIMEFileName,LPSTR szLayoutText,HKL *phKL) {
1631     return This->lpVtbl->InstallIMEA(This,szIMEFileName,szLayoutText,phKL);
1632 }
1633 static FORCEINLINE HRESULT IActiveIMMApp_InstallIMEW(IActiveIMMApp* This,LPWSTR szIMEFileName,LPWSTR szLayoutText,HKL *phKL) {
1634     return This->lpVtbl->InstallIMEW(This,szIMEFileName,szLayoutText,phKL);
1635 }
1636 static FORCEINLINE HRESULT IActiveIMMApp_IsIME(IActiveIMMApp* This,HKL hKL) {
1637     return This->lpVtbl->IsIME(This,hKL);
1638 }
1639 static FORCEINLINE HRESULT IActiveIMMApp_IsUIMessageA(IActiveIMMApp* This,HWND hWndIME,UINT msg,WPARAM wParam,LPARAM lParam) {
1640     return This->lpVtbl->IsUIMessageA(This,hWndIME,msg,wParam,lParam);
1641 }
1642 static FORCEINLINE HRESULT IActiveIMMApp_IsUIMessageW(IActiveIMMApp* This,HWND hWndIME,UINT msg,WPARAM wParam,LPARAM lParam) {
1643     return This->lpVtbl->IsUIMessageW(This,hWndIME,msg,wParam,lParam);
1644 }
1645 static FORCEINLINE HRESULT IActiveIMMApp_NotifyIME(IActiveIMMApp* This,HIMC hIMC,DWORD dwAction,DWORD dwIndex,DWORD dwValue) {
1646     return This->lpVtbl->NotifyIME(This,hIMC,dwAction,dwIndex,dwValue);
1647 }
1648 static FORCEINLINE HRESULT IActiveIMMApp_RegisterWordA(IActiveIMMApp* This,HKL hKL,LPSTR szReading,DWORD dwStyle,LPSTR szRegister) {
1649     return This->lpVtbl->RegisterWordA(This,hKL,szReading,dwStyle,szRegister);
1650 }
1651 static FORCEINLINE HRESULT IActiveIMMApp_RegisterWordW(IActiveIMMApp* This,HKL hKL,LPWSTR szReading,DWORD dwStyle,LPWSTR szRegister) {
1652     return This->lpVtbl->RegisterWordW(This,hKL,szReading,dwStyle,szRegister);
1653 }
1654 static FORCEINLINE HRESULT IActiveIMMApp_ReleaseContext(IActiveIMMApp* This,HWND hWnd,HIMC hIMC) {
1655     return This->lpVtbl->ReleaseContext(This,hWnd,hIMC);
1656 }
1657 static FORCEINLINE HRESULT IActiveIMMApp_SetCandidateWindow(IActiveIMMApp* This,HIMC hIMC,CANDIDATEFORM *pCandidate) {
1658     return This->lpVtbl->SetCandidateWindow(This,hIMC,pCandidate);
1659 }
1660 static FORCEINLINE HRESULT IActiveIMMApp_SetCompositionFontA(IActiveIMMApp* This,HIMC hIMC,LOGFONTA *plf) {
1661     return This->lpVtbl->SetCompositionFontA(This,hIMC,plf);
1662 }
1663 static FORCEINLINE HRESULT IActiveIMMApp_SetCompositionFontW(IActiveIMMApp* This,HIMC hIMC,LOGFONTW *plf) {
1664     return This->lpVtbl->SetCompositionFontW(This,hIMC,plf);
1665 }
1666 static FORCEINLINE HRESULT IActiveIMMApp_SetCompositionStringA(IActiveIMMApp* This,HIMC hIMC,DWORD dwIndex,LPVOID pComp,DWORD dwCompLen,LPVOID pRead,DWORD dwReadLen) {
1667     return This->lpVtbl->SetCompositionStringA(This,hIMC,dwIndex,pComp,dwCompLen,pRead,dwReadLen);
1668 }
1669 static FORCEINLINE HRESULT IActiveIMMApp_SetCompositionStringW(IActiveIMMApp* This,HIMC hIMC,DWORD dwIndex,LPVOID pComp,DWORD dwCompLen,LPVOID pRead,DWORD dwReadLen) {
1670     return This->lpVtbl->SetCompositionStringW(This,hIMC,dwIndex,pComp,dwCompLen,pRead,dwReadLen);
1671 }
1672 static FORCEINLINE HRESULT IActiveIMMApp_SetCompositionWindow(IActiveIMMApp* This,HIMC hIMC,COMPOSITIONFORM *pCompForm) {
1673     return This->lpVtbl->SetCompositionWindow(This,hIMC,pCompForm);
1674 }
1675 static FORCEINLINE HRESULT IActiveIMMApp_SetConversionStatus(IActiveIMMApp* This,HIMC hIMC,DWORD fdwConversion,DWORD fdwSentence) {
1676     return This->lpVtbl->SetConversionStatus(This,hIMC,fdwConversion,fdwSentence);
1677 }
1678 static FORCEINLINE HRESULT IActiveIMMApp_SetOpenStatus(IActiveIMMApp* This,HIMC hIMC,WINBOOL fOpen) {
1679     return This->lpVtbl->SetOpenStatus(This,hIMC,fOpen);
1680 }
1681 static FORCEINLINE HRESULT IActiveIMMApp_SetStatusWindowPos(IActiveIMMApp* This,HIMC hIMC,POINT *pptPos) {
1682     return This->lpVtbl->SetStatusWindowPos(This,hIMC,pptPos);
1683 }
1684 static FORCEINLINE HRESULT IActiveIMMApp_SimulateHotKey(IActiveIMMApp* This,HWND hWnd,DWORD dwHotKeyID) {
1685     return This->lpVtbl->SimulateHotKey(This,hWnd,dwHotKeyID);
1686 }
1687 static FORCEINLINE HRESULT IActiveIMMApp_UnregisterWordA(IActiveIMMApp* This,HKL hKL,LPSTR szReading,DWORD dwStyle,LPSTR szUnregister) {
1688     return This->lpVtbl->UnregisterWordA(This,hKL,szReading,dwStyle,szUnregister);
1689 }
1690 static FORCEINLINE HRESULT IActiveIMMApp_UnregisterWordW(IActiveIMMApp* This,HKL hKL,LPWSTR szReading,DWORD dwStyle,LPWSTR szUnregister) {
1691     return This->lpVtbl->UnregisterWordW(This,hKL,szReading,dwStyle,szUnregister);
1692 }
1693 static FORCEINLINE HRESULT IActiveIMMApp_Activate(IActiveIMMApp* This,WINBOOL fRestoreLayout) {
1694     return This->lpVtbl->Activate(This,fRestoreLayout);
1695 }
1696 static FORCEINLINE HRESULT IActiveIMMApp_Deactivate(IActiveIMMApp* This) {
1697     return This->lpVtbl->Deactivate(This);
1698 }
1699 static FORCEINLINE HRESULT IActiveIMMApp_OnDefWindowProc(IActiveIMMApp* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam,LRESULT *plResult) {
1700     return This->lpVtbl->OnDefWindowProc(This,hWnd,Msg,wParam,lParam,plResult);
1701 }
1702 static FORCEINLINE HRESULT IActiveIMMApp_FilterClientWindows(IActiveIMMApp* This,ATOM *aaClassList,UINT uSize) {
1703     return This->lpVtbl->FilterClientWindows(This,aaClassList,uSize);
1704 }
1705 static FORCEINLINE HRESULT IActiveIMMApp_GetCodePageA(IActiveIMMApp* This,HKL hKL,UINT *uCodePage) {
1706     return This->lpVtbl->GetCodePageA(This,hKL,uCodePage);
1707 }
1708 static FORCEINLINE HRESULT IActiveIMMApp_GetLangId(IActiveIMMApp* This,HKL hKL,LANGID *plid) {
1709     return This->lpVtbl->GetLangId(This,hKL,plid);
1710 }
1711 static FORCEINLINE HRESULT IActiveIMMApp_AssociateContextEx(IActiveIMMApp* This,HWND hWnd,HIMC hIMC,DWORD dwFlags) {
1712     return This->lpVtbl->AssociateContextEx(This,hWnd,hIMC,dwFlags);
1713 }
1714 static FORCEINLINE HRESULT IActiveIMMApp_DisableIME(IActiveIMMApp* This,DWORD idThread) {
1715     return This->lpVtbl->DisableIME(This,idThread);
1716 }
1717 static FORCEINLINE HRESULT IActiveIMMApp_GetImeMenuItemsA(IActiveIMMApp* This,HIMC hIMC,DWORD dwFlags,DWORD dwType,IMEMENUITEMINFOA *pImeParentMenu,IMEMENUITEMINFOA *pImeMenu,DWORD dwSize,DWORD *pdwResult) {
1718     return This->lpVtbl->GetImeMenuItemsA(This,hIMC,dwFlags,dwType,pImeParentMenu,pImeMenu,dwSize,pdwResult);
1719 }
1720 static FORCEINLINE HRESULT IActiveIMMApp_GetImeMenuItemsW(IActiveIMMApp* This,HIMC hIMC,DWORD dwFlags,DWORD dwType,IMEMENUITEMINFOW *pImeParentMenu,IMEMENUITEMINFOW *pImeMenu,DWORD dwSize,DWORD *pdwResult) {
1721     return This->lpVtbl->GetImeMenuItemsW(This,hIMC,dwFlags,dwType,pImeParentMenu,pImeMenu,dwSize,pdwResult);
1722 }
1723 static FORCEINLINE HRESULT IActiveIMMApp_EnumInputContext(IActiveIMMApp* This,DWORD idThread,IEnumInputContext **ppEnum) {
1724     return This->lpVtbl->EnumInputContext(This,idThread,ppEnum);
1725 }
1726 #endif
1727 #endif
1728 
1729 #endif
1730 
1731 
1732 #endif  /* __IActiveIMMApp_INTERFACE_DEFINED__ */
1733 
1734 /*****************************************************************************
1735  * IActiveIMMIME interface
1736  */
1737 #ifndef __IActiveIMMIME_INTERFACE_DEFINED__
1738 #define __IActiveIMMIME_INTERFACE_DEFINED__
1739 
1740 DEFINE_GUID(IID_IActiveIMMIME, 0x08c03411, 0xf96b, 0x11d0, 0xa4,0x75, 0x00,0xaa,0x00,0x6b,0xcc,0x59);
1741 #if defined(__cplusplus) && !defined(CINTERFACE)
1742 MIDL_INTERFACE("08c03411-f96b-11d0-a475-00aa006bcc59")
1743 IActiveIMMIME : public IUnknown
1744 {
1745     virtual HRESULT STDMETHODCALLTYPE AssociateContext(
1746         HWND hWnd,
1747         HIMC hIME,
1748         HIMC *phPrev) = 0;
1749 
1750     virtual HRESULT STDMETHODCALLTYPE ConfigureIMEA(
1751         HKL hKL,
1752         HWND hWnd,
1753         DWORD dwMode,
1754         REGISTERWORDA *pData) = 0;
1755 
1756     virtual HRESULT STDMETHODCALLTYPE ConfigureIMEW(
1757         HKL hKL,
1758         HWND hWnd,
1759         DWORD dwMode,
1760         REGISTERWORDW *pData) = 0;
1761 
1762     virtual HRESULT STDMETHODCALLTYPE CreateContext(
1763         HIMC *phIMC) = 0;
1764 
1765     virtual HRESULT STDMETHODCALLTYPE DestroyContext(
1766         HIMC hIME) = 0;
1767 
1768     virtual HRESULT STDMETHODCALLTYPE EnumRegisterWordA(
1769         HKL hKL,
1770         LPSTR szReading,
1771         DWORD dwStyle,
1772         LPSTR szRegister,
1773         LPVOID pData,
1774         IEnumRegisterWordA **pEnum) = 0;
1775 
1776     virtual HRESULT STDMETHODCALLTYPE EnumRegisterWordW(
1777         HKL hKL,
1778         LPWSTR szReading,
1779         DWORD dwStyle,
1780         LPWSTR szRegister,
1781         LPVOID pData,
1782         IEnumRegisterWordW **pEnum) = 0;
1783 
1784     virtual HRESULT STDMETHODCALLTYPE EscapeA(
1785         HKL hKL,
1786         HIMC hIMC,
1787         UINT uEscape,
1788         LPVOID pData,
1789         LRESULT *plResult) = 0;
1790 
1791     virtual HRESULT STDMETHODCALLTYPE EscapeW(
1792         HKL hKL,
1793         HIMC hIMC,
1794         UINT uEscape,
1795         LPVOID pData,
1796         LRESULT *plResult) = 0;
1797 
1798     virtual HRESULT STDMETHODCALLTYPE GetCandidateListA(
1799         HIMC hIMC,
1800         DWORD dwIndex,
1801         UINT uBufLen,
1802         CANDIDATELIST *pCandList,
1803         UINT *puCopied) = 0;
1804 
1805     virtual HRESULT STDMETHODCALLTYPE GetCandidateListW(
1806         HIMC hIMC,
1807         DWORD dwIndex,
1808         UINT uBufLen,
1809         CANDIDATELIST *pCandList,
1810         UINT *puCopied) = 0;
1811 
1812     virtual HRESULT STDMETHODCALLTYPE GetCandidateListCountA(
1813         HIMC hIMC,
1814         DWORD *pdwListSize,
1815         DWORD *pdwBufLen) = 0;
1816 
1817     virtual HRESULT STDMETHODCALLTYPE GetCandidateListCountW(
1818         HIMC hIMC,
1819         DWORD *pdwListSize,
1820         DWORD *pdwBufLen) = 0;
1821 
1822     virtual HRESULT STDMETHODCALLTYPE GetCandidateWindow(
1823         HIMC hIMC,
1824         DWORD dwIndex,
1825         CANDIDATEFORM *pCandidate) = 0;
1826 
1827     virtual HRESULT STDMETHODCALLTYPE GetCompositionFontA(
1828         HIMC hIMC,
1829         LOGFONTA *plf) = 0;
1830 
1831     virtual HRESULT STDMETHODCALLTYPE GetCompositionFontW(
1832         HIMC hIMC,
1833         LOGFONTW *plf) = 0;
1834 
1835     virtual HRESULT STDMETHODCALLTYPE GetCompositionStringA(
1836         HIMC hIMC,
1837         DWORD dwIndex,
1838         DWORD dwBufLen,
1839         LONG *plCopied,
1840         LPVOID pBuf) = 0;
1841 
1842     virtual HRESULT STDMETHODCALLTYPE GetCompositionStringW(
1843         HIMC hIMC,
1844         DWORD dwIndex,
1845         DWORD dwBufLen,
1846         LONG *plCopied,
1847         LPVOID pBuf) = 0;
1848 
1849     virtual HRESULT STDMETHODCALLTYPE GetCompositionWindow(
1850         HIMC hIMC,
1851         COMPOSITIONFORM *pCompForm) = 0;
1852 
1853     virtual HRESULT STDMETHODCALLTYPE GetContext(
1854         HWND hWnd,
1855         HIMC *phIMC) = 0;
1856 
1857     virtual HRESULT STDMETHODCALLTYPE GetConversionListA(
1858         HKL hKL,
1859         HIMC hIMC,
1860         LPSTR pSrc,
1861         UINT uBufLen,
1862         UINT uFlag,
1863         CANDIDATELIST *pDst,
1864         UINT *puCopied) = 0;
1865 
1866     virtual HRESULT STDMETHODCALLTYPE GetConversionListW(
1867         HKL hKL,
1868         HIMC hIMC,
1869         LPWSTR pSrc,
1870         UINT uBufLen,
1871         UINT uFlag,
1872         CANDIDATELIST *pDst,
1873         UINT *puCopied) = 0;
1874 
1875     virtual HRESULT STDMETHODCALLTYPE GetConversionStatus(
1876         HIMC hIMC,
1877         DWORD *pfdwConversion,
1878         DWORD *pfdwSentence) = 0;
1879 
1880     virtual HRESULT STDMETHODCALLTYPE GetDefaultIMEWnd(
1881         HWND hWnd,
1882         HWND *phDefWnd) = 0;
1883 
1884     virtual HRESULT STDMETHODCALLTYPE GetDescriptionA(
1885         HKL hKL,
1886         UINT uBufLen,
1887         LPSTR szDescription,
1888         UINT *puCopied) = 0;
1889 
1890     virtual HRESULT STDMETHODCALLTYPE GetDescriptionW(
1891         HKL hKL,
1892         UINT uBufLen,
1893         LPWSTR szDescription,
1894         UINT *puCopied) = 0;
1895 
1896     virtual HRESULT STDMETHODCALLTYPE GetGuideLineA(
1897         HIMC hIMC,
1898         DWORD dwIndex,
1899         DWORD dwBufLen,
1900         LPSTR pBuf,
1901         DWORD *pdwResult) = 0;
1902 
1903     virtual HRESULT STDMETHODCALLTYPE GetGuideLineW(
1904         HIMC hIMC,
1905         DWORD dwIndex,
1906         DWORD dwBufLen,
1907         LPWSTR pBuf,
1908         DWORD *pdwResult) = 0;
1909 
1910     virtual HRESULT STDMETHODCALLTYPE GetIMEFileNameA(
1911         HKL hKL,
1912         UINT uBufLen,
1913         LPSTR szFileName,
1914         UINT *puCopied) = 0;
1915 
1916     virtual HRESULT STDMETHODCALLTYPE GetIMEFileNameW(
1917         HKL hKL,
1918         UINT uBufLen,
1919         LPWSTR szFileName,
1920         UINT *puCopied) = 0;
1921 
1922     virtual HRESULT STDMETHODCALLTYPE GetOpenStatus(
1923         HIMC hIMC) = 0;
1924 
1925     virtual HRESULT STDMETHODCALLTYPE GetProperty(
1926         HKL hKL,
1927         DWORD fdwIndex,
1928         DWORD *pdwProperty) = 0;
1929 
1930     virtual HRESULT STDMETHODCALLTYPE GetRegisterWordStyleA(
1931         HKL hKL,
1932         UINT nItem,
1933         STYLEBUFA *pStyleBuf,
1934         UINT *puCopied) = 0;
1935 
1936     virtual HRESULT STDMETHODCALLTYPE GetRegisterWordStyleW(
1937         HKL hKL,
1938         UINT nItem,
1939         STYLEBUFW *pStyleBuf,
1940         UINT *puCopied) = 0;
1941 
1942     virtual HRESULT STDMETHODCALLTYPE GetStatusWindowPos(
1943         HIMC hIMC,
1944         POINT *pptPos) = 0;
1945 
1946     virtual HRESULT STDMETHODCALLTYPE GetVirtualKey(
1947         HWND hWnd,
1948         UINT *puVirtualKey) = 0;
1949 
1950     virtual HRESULT STDMETHODCALLTYPE InstallIMEA(
1951         LPSTR szIMEFileName,
1952         LPSTR szLayoutText,
1953         HKL *phKL) = 0;
1954 
1955     virtual HRESULT STDMETHODCALLTYPE InstallIMEW(
1956         LPWSTR szIMEFileName,
1957         LPWSTR szLayoutText,
1958         HKL *phKL) = 0;
1959 
1960     virtual HRESULT STDMETHODCALLTYPE IsIME(
1961         HKL hKL) = 0;
1962 
1963     virtual HRESULT STDMETHODCALLTYPE IsUIMessageA(
1964         HWND hWndIME,
1965         UINT msg,
1966         WPARAM wParam,
1967         LPARAM lParam) = 0;
1968 
1969     virtual HRESULT STDMETHODCALLTYPE IsUIMessageW(
1970         HWND hWndIME,
1971         UINT msg,
1972         WPARAM wParam,
1973         LPARAM lParam) = 0;
1974 
1975     virtual HRESULT STDMETHODCALLTYPE NotifyIME(
1976         HIMC hIMC,
1977         DWORD dwAction,
1978         DWORD dwIndex,
1979         DWORD dwValue) = 0;
1980 
1981     virtual HRESULT STDMETHODCALLTYPE RegisterWordA(
1982         HKL hKL,
1983         LPSTR szReading,
1984         DWORD dwStyle,
1985         LPSTR szRegister) = 0;
1986 
1987     virtual HRESULT STDMETHODCALLTYPE RegisterWordW(
1988         HKL hKL,
1989         LPWSTR szReading,
1990         DWORD dwStyle,
1991         LPWSTR szRegister) = 0;
1992 
1993     virtual HRESULT STDMETHODCALLTYPE ReleaseContext(
1994         HWND hWnd,
1995         HIMC hIMC) = 0;
1996 
1997     virtual HRESULT STDMETHODCALLTYPE SetCandidateWindow(
1998         HIMC hIMC,
1999         CANDIDATEFORM *pCandidate) = 0;
2000 
2001     virtual HRESULT STDMETHODCALLTYPE SetCompositionFontA(
2002         HIMC hIMC,
2003         LOGFONTA *plf) = 0;
2004 
2005     virtual HRESULT STDMETHODCALLTYPE SetCompositionFontW(
2006         HIMC hIMC,
2007         LOGFONTW *plf) = 0;
2008 
2009     virtual HRESULT STDMETHODCALLTYPE SetCompositionStringA(
2010         HIMC hIMC,
2011         DWORD dwIndex,
2012         LPVOID pComp,
2013         DWORD dwCompLen,
2014         LPVOID pRead,
2015         DWORD dwReadLen) = 0;
2016 
2017     virtual HRESULT STDMETHODCALLTYPE SetCompositionStringW(
2018         HIMC hIMC,
2019         DWORD dwIndex,
2020         LPVOID pComp,
2021         DWORD dwCompLen,
2022         LPVOID pRead,
2023         DWORD dwReadLen) = 0;
2024 
2025     virtual HRESULT STDMETHODCALLTYPE SetCompositionWindow(
2026         HIMC hIMC,
2027         COMPOSITIONFORM *pCompForm) = 0;
2028 
2029     virtual HRESULT STDMETHODCALLTYPE SetConversionStatus(
2030         HIMC hIMC,
2031         DWORD fdwConversion,
2032         DWORD fdwSentence) = 0;
2033 
2034     virtual HRESULT STDMETHODCALLTYPE SetOpenStatus(
2035         HIMC hIMC,
2036         WINBOOL fOpen) = 0;
2037 
2038     virtual HRESULT STDMETHODCALLTYPE SetStatusWindowPos(
2039         HIMC hIMC,
2040         POINT *pptPos) = 0;
2041 
2042     virtual HRESULT STDMETHODCALLTYPE SimulateHotKey(
2043         HWND hWnd,
2044         DWORD dwHotKeyID) = 0;
2045 
2046     virtual HRESULT STDMETHODCALLTYPE UnregisterWordA(
2047         HKL hKL,
2048         LPSTR szReading,
2049         DWORD dwStyle,
2050         LPSTR szUnregister) = 0;
2051 
2052     virtual HRESULT STDMETHODCALLTYPE UnregisterWordW(
2053         HKL hKL,
2054         LPWSTR szReading,
2055         DWORD dwStyle,
2056         LPWSTR szUnregister) = 0;
2057 
2058     virtual HRESULT STDMETHODCALLTYPE GenerateMessage(
2059         HIMC hIMC) = 0;
2060 
2061     virtual HRESULT STDMETHODCALLTYPE LockIMC(
2062         HIMC hIMC,
2063         INPUTCONTEXT **ppIMC) = 0;
2064 
2065     virtual HRESULT STDMETHODCALLTYPE UnlockIMC(
2066         HIMC hIMC) = 0;
2067 
2068     virtual HRESULT STDMETHODCALLTYPE GetIMCLockCount(
2069         HIMC hIMC,
2070         DWORD *pdwLockCount) = 0;
2071 
2072     virtual HRESULT STDMETHODCALLTYPE CreateIMCC(
2073         DWORD dwSize,
2074         HIMCC *phIMCC) = 0;
2075 
2076     virtual HRESULT STDMETHODCALLTYPE DestroyIMCC(
2077         HIMCC hIMCC) = 0;
2078 
2079     virtual HRESULT STDMETHODCALLTYPE LockIMCC(
2080         HIMCC hIMCC,
2081         void **ppv) = 0;
2082 
2083     virtual HRESULT STDMETHODCALLTYPE UnlockIMCC(
2084         HIMCC hIMCC) = 0;
2085 
2086     virtual HRESULT STDMETHODCALLTYPE ReSizeIMCC(
2087         HIMCC hIMCC,
2088         DWORD dwSize,
2089         HIMCC *phIMCC) = 0;
2090 
2091     virtual HRESULT STDMETHODCALLTYPE GetIMCCSize(
2092         HIMCC hIMCC,
2093         DWORD *pdwSize) = 0;
2094 
2095     virtual HRESULT STDMETHODCALLTYPE GetIMCCLockCount(
2096         HIMCC hIMCC,
2097         DWORD *pdwLockCount) = 0;
2098 
2099     virtual HRESULT STDMETHODCALLTYPE GetHotKey(
2100         DWORD dwHotKeyID,
2101         UINT *puModifiers,
2102         UINT *puVKey,
2103         HKL *phKL) = 0;
2104 
2105     virtual HRESULT STDMETHODCALLTYPE SetHotKey(
2106         DWORD dwHotKeyID,
2107         UINT uModifiers,
2108         UINT uVKey,
2109         HKL hKL) = 0;
2110 
2111     virtual HRESULT STDMETHODCALLTYPE CreateSoftKeyboard(
2112         UINT uType,
2113         HWND hOwner,
2114         int x,
2115         int y,
2116         HWND *phSoftKbdWnd) = 0;
2117 
2118     virtual HRESULT STDMETHODCALLTYPE DestroySoftKeyboard(
2119         HWND hSoftKbdWnd) = 0;
2120 
2121     virtual HRESULT STDMETHODCALLTYPE ShowSoftKeyboard(
2122         HWND hSoftKbdWnd,
2123         int nCmdShow) = 0;
2124 
2125     virtual HRESULT STDMETHODCALLTYPE GetCodePageA(
2126         HKL hKL,
2127         UINT *uCodePage) = 0;
2128 
2129     virtual HRESULT STDMETHODCALLTYPE GetLangId(
2130         HKL hKL,
2131         LANGID *plid) = 0;
2132 
2133     virtual HRESULT STDMETHODCALLTYPE KeybdEvent(
2134         LANGID lgidIME,
2135         BYTE bVk,
2136         BYTE bScan,
2137         DWORD dwFlags,
2138         DWORD dwExtraInfo) = 0;
2139 
2140     virtual HRESULT STDMETHODCALLTYPE LockModal(
2141         ) = 0;
2142 
2143     virtual HRESULT STDMETHODCALLTYPE UnlockModal(
2144         ) = 0;
2145 
2146     virtual HRESULT STDMETHODCALLTYPE AssociateContextEx(
2147         HWND hWnd,
2148         HIMC hIMC,
2149         DWORD dwFlags) = 0;
2150 
2151     virtual HRESULT STDMETHODCALLTYPE DisableIME(
2152         DWORD idThread) = 0;
2153 
2154     virtual HRESULT STDMETHODCALLTYPE GetImeMenuItemsA(
2155         HIMC hIMC,
2156         DWORD dwFlags,
2157         DWORD dwType,
2158         IMEMENUITEMINFOA *pImeParentMenu,
2159         IMEMENUITEMINFOA *pImeMenu,
2160         DWORD dwSize,
2161         DWORD *pdwResult) = 0;
2162 
2163     virtual HRESULT STDMETHODCALLTYPE GetImeMenuItemsW(
2164         HIMC hIMC,
2165         DWORD dwFlags,
2166         DWORD dwType,
2167         IMEMENUITEMINFOW *pImeParentMenu,
2168         IMEMENUITEMINFOW *pImeMenu,
2169         DWORD dwSize,
2170         DWORD *pdwResult) = 0;
2171 
2172     virtual HRESULT STDMETHODCALLTYPE EnumInputContext(
2173         DWORD idThread,
2174         IEnumInputContext **ppEnum) = 0;
2175 
2176     virtual HRESULT STDMETHODCALLTYPE RequestMessageA(
2177         HIMC hIMC,
2178         WPARAM wParam,
2179         LPARAM lParam,
2180         LRESULT *plResult) = 0;
2181 
2182     virtual HRESULT STDMETHODCALLTYPE RequestMessageW(
2183         HIMC hIMC,
2184         WPARAM wParam,
2185         LPARAM lParam,
2186         LRESULT *plResult) = 0;
2187 
2188     virtual HRESULT STDMETHODCALLTYPE SendIMCA(
2189         HWND hWnd,
2190         UINT uMsg,
2191         WPARAM wParam,
2192         LPARAM lParam,
2193         LRESULT *plResult) = 0;
2194 
2195     virtual HRESULT STDMETHODCALLTYPE SendIMCW(
2196         HWND hWnd,
2197         UINT uMsg,
2198         WPARAM wParam,
2199         LPARAM lParam,
2200         LRESULT *plResult) = 0;
2201 
2202     virtual HRESULT STDMETHODCALLTYPE IsSleeping(
2203         ) = 0;
2204 
2205 };
2206 #ifdef __CRT_UUID_DECL
2207 __CRT_UUID_DECL(IActiveIMMIME, 0x08c03411, 0xf96b, 0x11d0, 0xa4,0x75, 0x00,0xaa,0x00,0x6b,0xcc,0x59)
2208 #endif
2209 #else
2210 typedef struct IActiveIMMIMEVtbl {
2211     BEGIN_INTERFACE
2212 
2213     /*** IUnknown methods ***/
2214     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2215         IActiveIMMIME *This,
2216         REFIID riid,
2217         void **ppvObject);
2218 
2219     ULONG (STDMETHODCALLTYPE *AddRef)(
2220         IActiveIMMIME *This);
2221 
2222     ULONG (STDMETHODCALLTYPE *Release)(
2223         IActiveIMMIME *This);
2224 
2225     /*** IActiveIMMIME methods ***/
2226     HRESULT (STDMETHODCALLTYPE *AssociateContext)(
2227         IActiveIMMIME *This,
2228         HWND hWnd,
2229         HIMC hIME,
2230         HIMC *phPrev);
2231 
2232     HRESULT (STDMETHODCALLTYPE *ConfigureIMEA)(
2233         IActiveIMMIME *This,
2234         HKL hKL,
2235         HWND hWnd,
2236         DWORD dwMode,
2237         REGISTERWORDA *pData);
2238 
2239     HRESULT (STDMETHODCALLTYPE *ConfigureIMEW)(
2240         IActiveIMMIME *This,
2241         HKL hKL,
2242         HWND hWnd,
2243         DWORD dwMode,
2244         REGISTERWORDW *pData);
2245 
2246     HRESULT (STDMETHODCALLTYPE *CreateContext)(
2247         IActiveIMMIME *This,
2248         HIMC *phIMC);
2249 
2250     HRESULT (STDMETHODCALLTYPE *DestroyContext)(
2251         IActiveIMMIME *This,
2252         HIMC hIME);
2253 
2254     HRESULT (STDMETHODCALLTYPE *EnumRegisterWordA)(
2255         IActiveIMMIME *This,
2256         HKL hKL,
2257         LPSTR szReading,
2258         DWORD dwStyle,
2259         LPSTR szRegister,
2260         LPVOID pData,
2261         IEnumRegisterWordA **pEnum);
2262 
2263     HRESULT (STDMETHODCALLTYPE *EnumRegisterWordW)(
2264         IActiveIMMIME *This,
2265         HKL hKL,
2266         LPWSTR szReading,
2267         DWORD dwStyle,
2268         LPWSTR szRegister,
2269         LPVOID pData,
2270         IEnumRegisterWordW **pEnum);
2271 
2272     HRESULT (STDMETHODCALLTYPE *EscapeA)(
2273         IActiveIMMIME *This,
2274         HKL hKL,
2275         HIMC hIMC,
2276         UINT uEscape,
2277         LPVOID pData,
2278         LRESULT *plResult);
2279 
2280     HRESULT (STDMETHODCALLTYPE *EscapeW)(
2281         IActiveIMMIME *This,
2282         HKL hKL,
2283         HIMC hIMC,
2284         UINT uEscape,
2285         LPVOID pData,
2286         LRESULT *plResult);
2287 
2288     HRESULT (STDMETHODCALLTYPE *GetCandidateListA)(
2289         IActiveIMMIME *This,
2290         HIMC hIMC,
2291         DWORD dwIndex,
2292         UINT uBufLen,
2293         CANDIDATELIST *pCandList,
2294         UINT *puCopied);
2295 
2296     HRESULT (STDMETHODCALLTYPE *GetCandidateListW)(
2297         IActiveIMMIME *This,
2298         HIMC hIMC,
2299         DWORD dwIndex,
2300         UINT uBufLen,
2301         CANDIDATELIST *pCandList,
2302         UINT *puCopied);
2303 
2304     HRESULT (STDMETHODCALLTYPE *GetCandidateListCountA)(
2305         IActiveIMMIME *This,
2306         HIMC hIMC,
2307         DWORD *pdwListSize,
2308         DWORD *pdwBufLen);
2309 
2310     HRESULT (STDMETHODCALLTYPE *GetCandidateListCountW)(
2311         IActiveIMMIME *This,
2312         HIMC hIMC,
2313         DWORD *pdwListSize,
2314         DWORD *pdwBufLen);
2315 
2316     HRESULT (STDMETHODCALLTYPE *GetCandidateWindow)(
2317         IActiveIMMIME *This,
2318         HIMC hIMC,
2319         DWORD dwIndex,
2320         CANDIDATEFORM *pCandidate);
2321 
2322     HRESULT (STDMETHODCALLTYPE *GetCompositionFontA)(
2323         IActiveIMMIME *This,
2324         HIMC hIMC,
2325         LOGFONTA *plf);
2326 
2327     HRESULT (STDMETHODCALLTYPE *GetCompositionFontW)(
2328         IActiveIMMIME *This,
2329         HIMC hIMC,
2330         LOGFONTW *plf);
2331 
2332     HRESULT (STDMETHODCALLTYPE *GetCompositionStringA)(
2333         IActiveIMMIME *This,
2334         HIMC hIMC,
2335         DWORD dwIndex,
2336         DWORD dwBufLen,
2337         LONG *plCopied,
2338         LPVOID pBuf);
2339 
2340     HRESULT (STDMETHODCALLTYPE *GetCompositionStringW)(
2341         IActiveIMMIME *This,
2342         HIMC hIMC,
2343         DWORD dwIndex,
2344         DWORD dwBufLen,
2345         LONG *plCopied,
2346         LPVOID pBuf);
2347 
2348     HRESULT (STDMETHODCALLTYPE *GetCompositionWindow)(
2349         IActiveIMMIME *This,
2350         HIMC hIMC,
2351         COMPOSITIONFORM *pCompForm);
2352 
2353     HRESULT (STDMETHODCALLTYPE *GetContext)(
2354         IActiveIMMIME *This,
2355         HWND hWnd,
2356         HIMC *phIMC);
2357 
2358     HRESULT (STDMETHODCALLTYPE *GetConversionListA)(
2359         IActiveIMMIME *This,
2360         HKL hKL,
2361         HIMC hIMC,
2362         LPSTR pSrc,
2363         UINT uBufLen,
2364         UINT uFlag,
2365         CANDIDATELIST *pDst,
2366         UINT *puCopied);
2367 
2368     HRESULT (STDMETHODCALLTYPE *GetConversionListW)(
2369         IActiveIMMIME *This,
2370         HKL hKL,
2371         HIMC hIMC,
2372         LPWSTR pSrc,
2373         UINT uBufLen,
2374         UINT uFlag,
2375         CANDIDATELIST *pDst,
2376         UINT *puCopied);
2377 
2378     HRESULT (STDMETHODCALLTYPE *GetConversionStatus)(
2379         IActiveIMMIME *This,
2380         HIMC hIMC,
2381         DWORD *pfdwConversion,
2382         DWORD *pfdwSentence);
2383 
2384     HRESULT (STDMETHODCALLTYPE *GetDefaultIMEWnd)(
2385         IActiveIMMIME *This,
2386         HWND hWnd,
2387         HWND *phDefWnd);
2388 
2389     HRESULT (STDMETHODCALLTYPE *GetDescriptionA)(
2390         IActiveIMMIME *This,
2391         HKL hKL,
2392         UINT uBufLen,
2393         LPSTR szDescription,
2394         UINT *puCopied);
2395 
2396     HRESULT (STDMETHODCALLTYPE *GetDescriptionW)(
2397         IActiveIMMIME *This,
2398         HKL hKL,
2399         UINT uBufLen,
2400         LPWSTR szDescription,
2401         UINT *puCopied);
2402 
2403     HRESULT (STDMETHODCALLTYPE *GetGuideLineA)(
2404         IActiveIMMIME *This,
2405         HIMC hIMC,
2406         DWORD dwIndex,
2407         DWORD dwBufLen,
2408         LPSTR pBuf,
2409         DWORD *pdwResult);
2410 
2411     HRESULT (STDMETHODCALLTYPE *GetGuideLineW)(
2412         IActiveIMMIME *This,
2413         HIMC hIMC,
2414         DWORD dwIndex,
2415         DWORD dwBufLen,
2416         LPWSTR pBuf,
2417         DWORD *pdwResult);
2418 
2419     HRESULT (STDMETHODCALLTYPE *GetIMEFileNameA)(
2420         IActiveIMMIME *This,
2421         HKL hKL,
2422         UINT uBufLen,
2423         LPSTR szFileName,
2424         UINT *puCopied);
2425 
2426     HRESULT (STDMETHODCALLTYPE *GetIMEFileNameW)(
2427         IActiveIMMIME *This,
2428         HKL hKL,
2429         UINT uBufLen,
2430         LPWSTR szFileName,
2431         UINT *puCopied);
2432 
2433     HRESULT (STDMETHODCALLTYPE *GetOpenStatus)(
2434         IActiveIMMIME *This,
2435         HIMC hIMC);
2436 
2437     HRESULT (STDMETHODCALLTYPE *GetProperty)(
2438         IActiveIMMIME *This,
2439         HKL hKL,
2440         DWORD fdwIndex,
2441         DWORD *pdwProperty);
2442 
2443     HRESULT (STDMETHODCALLTYPE *GetRegisterWordStyleA)(
2444         IActiveIMMIME *This,
2445         HKL hKL,
2446         UINT nItem,
2447         STYLEBUFA *pStyleBuf,
2448         UINT *puCopied);
2449 
2450     HRESULT (STDMETHODCALLTYPE *GetRegisterWordStyleW)(
2451         IActiveIMMIME *This,
2452         HKL hKL,
2453         UINT nItem,
2454         STYLEBUFW *pStyleBuf,
2455         UINT *puCopied);
2456 
2457     HRESULT (STDMETHODCALLTYPE *GetStatusWindowPos)(
2458         IActiveIMMIME *This,
2459         HIMC hIMC,
2460         POINT *pptPos);
2461 
2462     HRESULT (STDMETHODCALLTYPE *GetVirtualKey)(
2463         IActiveIMMIME *This,
2464         HWND hWnd,
2465         UINT *puVirtualKey);
2466 
2467     HRESULT (STDMETHODCALLTYPE *InstallIMEA)(
2468         IActiveIMMIME *This,
2469         LPSTR szIMEFileName,
2470         LPSTR szLayoutText,
2471         HKL *phKL);
2472 
2473     HRESULT (STDMETHODCALLTYPE *InstallIMEW)(
2474         IActiveIMMIME *This,
2475         LPWSTR szIMEFileName,
2476         LPWSTR szLayoutText,
2477         HKL *phKL);
2478 
2479     HRESULT (STDMETHODCALLTYPE *IsIME)(
2480         IActiveIMMIME *This,
2481         HKL hKL);
2482 
2483     HRESULT (STDMETHODCALLTYPE *IsUIMessageA)(
2484         IActiveIMMIME *This,
2485         HWND hWndIME,
2486         UINT msg,
2487         WPARAM wParam,
2488         LPARAM lParam);
2489 
2490     HRESULT (STDMETHODCALLTYPE *IsUIMessageW)(
2491         IActiveIMMIME *This,
2492         HWND hWndIME,
2493         UINT msg,
2494         WPARAM wParam,
2495         LPARAM lParam);
2496 
2497     HRESULT (STDMETHODCALLTYPE *NotifyIME)(
2498         IActiveIMMIME *This,
2499         HIMC hIMC,
2500         DWORD dwAction,
2501         DWORD dwIndex,
2502         DWORD dwValue);
2503 
2504     HRESULT (STDMETHODCALLTYPE *RegisterWordA)(
2505         IActiveIMMIME *This,
2506         HKL hKL,
2507         LPSTR szReading,
2508         DWORD dwStyle,
2509         LPSTR szRegister);
2510 
2511     HRESULT (STDMETHODCALLTYPE *RegisterWordW)(
2512         IActiveIMMIME *This,
2513         HKL hKL,
2514         LPWSTR szReading,
2515         DWORD dwStyle,
2516         LPWSTR szRegister);
2517 
2518     HRESULT (STDMETHODCALLTYPE *ReleaseContext)(
2519         IActiveIMMIME *This,
2520         HWND hWnd,
2521         HIMC hIMC);
2522 
2523     HRESULT (STDMETHODCALLTYPE *SetCandidateWindow)(
2524         IActiveIMMIME *This,
2525         HIMC hIMC,
2526         CANDIDATEFORM *pCandidate);
2527 
2528     HRESULT (STDMETHODCALLTYPE *SetCompositionFontA)(
2529         IActiveIMMIME *This,
2530         HIMC hIMC,
2531         LOGFONTA *plf);
2532 
2533     HRESULT (STDMETHODCALLTYPE *SetCompositionFontW)(
2534         IActiveIMMIME *This,
2535         HIMC hIMC,
2536         LOGFONTW *plf);
2537 
2538     HRESULT (STDMETHODCALLTYPE *SetCompositionStringA)(
2539         IActiveIMMIME *This,
2540         HIMC hIMC,
2541         DWORD dwIndex,
2542         LPVOID pComp,
2543         DWORD dwCompLen,
2544         LPVOID pRead,
2545         DWORD dwReadLen);
2546 
2547     HRESULT (STDMETHODCALLTYPE *SetCompositionStringW)(
2548         IActiveIMMIME *This,
2549         HIMC hIMC,
2550         DWORD dwIndex,
2551         LPVOID pComp,
2552         DWORD dwCompLen,
2553         LPVOID pRead,
2554         DWORD dwReadLen);
2555 
2556     HRESULT (STDMETHODCALLTYPE *SetCompositionWindow)(
2557         IActiveIMMIME *This,
2558         HIMC hIMC,
2559         COMPOSITIONFORM *pCompForm);
2560 
2561     HRESULT (STDMETHODCALLTYPE *SetConversionStatus)(
2562         IActiveIMMIME *This,
2563         HIMC hIMC,
2564         DWORD fdwConversion,
2565         DWORD fdwSentence);
2566 
2567     HRESULT (STDMETHODCALLTYPE *SetOpenStatus)(
2568         IActiveIMMIME *This,
2569         HIMC hIMC,
2570         WINBOOL fOpen);
2571 
2572     HRESULT (STDMETHODCALLTYPE *SetStatusWindowPos)(
2573         IActiveIMMIME *This,
2574         HIMC hIMC,
2575         POINT *pptPos);
2576 
2577     HRESULT (STDMETHODCALLTYPE *SimulateHotKey)(
2578         IActiveIMMIME *This,
2579         HWND hWnd,
2580         DWORD dwHotKeyID);
2581 
2582     HRESULT (STDMETHODCALLTYPE *UnregisterWordA)(
2583         IActiveIMMIME *This,
2584         HKL hKL,
2585         LPSTR szReading,
2586         DWORD dwStyle,
2587         LPSTR szUnregister);
2588 
2589     HRESULT (STDMETHODCALLTYPE *UnregisterWordW)(
2590         IActiveIMMIME *This,
2591         HKL hKL,
2592         LPWSTR szReading,
2593         DWORD dwStyle,
2594         LPWSTR szUnregister);
2595 
2596     HRESULT (STDMETHODCALLTYPE *GenerateMessage)(
2597         IActiveIMMIME *This,
2598         HIMC hIMC);
2599 
2600     HRESULT (STDMETHODCALLTYPE *LockIMC)(
2601         IActiveIMMIME *This,
2602         HIMC hIMC,
2603         INPUTCONTEXT **ppIMC);
2604 
2605     HRESULT (STDMETHODCALLTYPE *UnlockIMC)(
2606         IActiveIMMIME *This,
2607         HIMC hIMC);
2608 
2609     HRESULT (STDMETHODCALLTYPE *GetIMCLockCount)(
2610         IActiveIMMIME *This,
2611         HIMC hIMC,
2612         DWORD *pdwLockCount);
2613 
2614     HRESULT (STDMETHODCALLTYPE *CreateIMCC)(
2615         IActiveIMMIME *This,
2616         DWORD dwSize,
2617         HIMCC *phIMCC);
2618 
2619     HRESULT (STDMETHODCALLTYPE *DestroyIMCC)(
2620         IActiveIMMIME *This,
2621         HIMCC hIMCC);
2622 
2623     HRESULT (STDMETHODCALLTYPE *LockIMCC)(
2624         IActiveIMMIME *This,
2625         HIMCC hIMCC,
2626         void **ppv);
2627 
2628     HRESULT (STDMETHODCALLTYPE *UnlockIMCC)(
2629         IActiveIMMIME *This,
2630         HIMCC hIMCC);
2631 
2632     HRESULT (STDMETHODCALLTYPE *ReSizeIMCC)(
2633         IActiveIMMIME *This,
2634         HIMCC hIMCC,
2635         DWORD dwSize,
2636         HIMCC *phIMCC);
2637 
2638     HRESULT (STDMETHODCALLTYPE *GetIMCCSize)(
2639         IActiveIMMIME *This,
2640         HIMCC hIMCC,
2641         DWORD *pdwSize);
2642 
2643     HRESULT (STDMETHODCALLTYPE *GetIMCCLockCount)(
2644         IActiveIMMIME *This,
2645         HIMCC hIMCC,
2646         DWORD *pdwLockCount);
2647 
2648     HRESULT (STDMETHODCALLTYPE *GetHotKey)(
2649         IActiveIMMIME *This,
2650         DWORD dwHotKeyID,
2651         UINT *puModifiers,
2652         UINT *puVKey,
2653         HKL *phKL);
2654 
2655     HRESULT (STDMETHODCALLTYPE *SetHotKey)(
2656         IActiveIMMIME *This,
2657         DWORD dwHotKeyID,
2658         UINT uModifiers,
2659         UINT uVKey,
2660         HKL hKL);
2661 
2662     HRESULT (STDMETHODCALLTYPE *CreateSoftKeyboard)(
2663         IActiveIMMIME *This,
2664         UINT uType,
2665         HWND hOwner,
2666         int x,
2667         int y,
2668         HWND *phSoftKbdWnd);
2669 
2670     HRESULT (STDMETHODCALLTYPE *DestroySoftKeyboard)(
2671         IActiveIMMIME *This,
2672         HWND hSoftKbdWnd);
2673 
2674     HRESULT (STDMETHODCALLTYPE *ShowSoftKeyboard)(
2675         IActiveIMMIME *This,
2676         HWND hSoftKbdWnd,
2677         int nCmdShow);
2678 
2679     HRESULT (STDMETHODCALLTYPE *GetCodePageA)(
2680         IActiveIMMIME *This,
2681         HKL hKL,
2682         UINT *uCodePage);
2683 
2684     HRESULT (STDMETHODCALLTYPE *GetLangId)(
2685         IActiveIMMIME *This,
2686         HKL hKL,
2687         LANGID *plid);
2688 
2689     HRESULT (STDMETHODCALLTYPE *KeybdEvent)(
2690         IActiveIMMIME *This,
2691         LANGID lgidIME,
2692         BYTE bVk,
2693         BYTE bScan,
2694         DWORD dwFlags,
2695         DWORD dwExtraInfo);
2696 
2697     HRESULT (STDMETHODCALLTYPE *LockModal)(
2698         IActiveIMMIME *This);
2699 
2700     HRESULT (STDMETHODCALLTYPE *UnlockModal)(
2701         IActiveIMMIME *This);
2702 
2703     HRESULT (STDMETHODCALLTYPE *AssociateContextEx)(
2704         IActiveIMMIME *This,
2705         HWND hWnd,
2706         HIMC hIMC,
2707         DWORD dwFlags);
2708 
2709     HRESULT (STDMETHODCALLTYPE *DisableIME)(
2710         IActiveIMMIME *This,
2711         DWORD idThread);
2712 
2713     HRESULT (STDMETHODCALLTYPE *GetImeMenuItemsA)(
2714         IActiveIMMIME *This,
2715         HIMC hIMC,
2716         DWORD dwFlags,
2717         DWORD dwType,
2718         IMEMENUITEMINFOA *pImeParentMenu,
2719         IMEMENUITEMINFOA *pImeMenu,
2720         DWORD dwSize,
2721         DWORD *pdwResult);
2722 
2723     HRESULT (STDMETHODCALLTYPE *GetImeMenuItemsW)(
2724         IActiveIMMIME *This,
2725         HIMC hIMC,
2726         DWORD dwFlags,
2727         DWORD dwType,
2728         IMEMENUITEMINFOW *pImeParentMenu,
2729         IMEMENUITEMINFOW *pImeMenu,
2730         DWORD dwSize,
2731         DWORD *pdwResult);
2732 
2733     HRESULT (STDMETHODCALLTYPE *EnumInputContext)(
2734         IActiveIMMIME *This,
2735         DWORD idThread,
2736         IEnumInputContext **ppEnum);
2737 
2738     HRESULT (STDMETHODCALLTYPE *RequestMessageA)(
2739         IActiveIMMIME *This,
2740         HIMC hIMC,
2741         WPARAM wParam,
2742         LPARAM lParam,
2743         LRESULT *plResult);
2744 
2745     HRESULT (STDMETHODCALLTYPE *RequestMessageW)(
2746         IActiveIMMIME *This,
2747         HIMC hIMC,
2748         WPARAM wParam,
2749         LPARAM lParam,
2750         LRESULT *plResult);
2751 
2752     HRESULT (STDMETHODCALLTYPE *SendIMCA)(
2753         IActiveIMMIME *This,
2754         HWND hWnd,
2755         UINT uMsg,
2756         WPARAM wParam,
2757         LPARAM lParam,
2758         LRESULT *plResult);
2759 
2760     HRESULT (STDMETHODCALLTYPE *SendIMCW)(
2761         IActiveIMMIME *This,
2762         HWND hWnd,
2763         UINT uMsg,
2764         WPARAM wParam,
2765         LPARAM lParam,
2766         LRESULT *plResult);
2767 
2768     HRESULT (STDMETHODCALLTYPE *IsSleeping)(
2769         IActiveIMMIME *This);
2770 
2771     END_INTERFACE
2772 } IActiveIMMIMEVtbl;
2773 
2774 interface IActiveIMMIME {
2775     CONST_VTBL IActiveIMMIMEVtbl* lpVtbl;
2776 };
2777 
2778 #ifdef COBJMACROS
2779 #ifndef WIDL_C_INLINE_WRAPPERS
2780 /*** IUnknown methods ***/
2781 #define IActiveIMMIME_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2782 #define IActiveIMMIME_AddRef(This) (This)->lpVtbl->AddRef(This)
2783 #define IActiveIMMIME_Release(This) (This)->lpVtbl->Release(This)
2784 /*** IActiveIMMIME methods ***/
2785 #define IActiveIMMIME_AssociateContext(This,hWnd,hIME,phPrev) (This)->lpVtbl->AssociateContext(This,hWnd,hIME,phPrev)
2786 #define IActiveIMMIME_ConfigureIMEA(This,hKL,hWnd,dwMode,pData) (This)->lpVtbl->ConfigureIMEA(This,hKL,hWnd,dwMode,pData)
2787 #define IActiveIMMIME_ConfigureIMEW(This,hKL,hWnd,dwMode,pData) (This)->lpVtbl->ConfigureIMEW(This,hKL,hWnd,dwMode,pData)
2788 #define IActiveIMMIME_CreateContext(This,phIMC) (This)->lpVtbl->CreateContext(This,phIMC)
2789 #define IActiveIMMIME_DestroyContext(This,hIME) (This)->lpVtbl->DestroyContext(This,hIME)
2790 #define IActiveIMMIME_EnumRegisterWordA(This,hKL,szReading,dwStyle,szRegister,pData,pEnum) (This)->lpVtbl->EnumRegisterWordA(This,hKL,szReading,dwStyle,szRegister,pData,pEnum)
2791 #define IActiveIMMIME_EnumRegisterWordW(This,hKL,szReading,dwStyle,szRegister,pData,pEnum) (This)->lpVtbl->EnumRegisterWordW(This,hKL,szReading,dwStyle,szRegister,pData,pEnum)
2792 #define IActiveIMMIME_EscapeA(This,hKL,hIMC,uEscape,pData,plResult) (This)->lpVtbl->EscapeA(This,hKL,hIMC,uEscape,pData,plResult)
2793 #define IActiveIMMIME_EscapeW(This,hKL,hIMC,uEscape,pData,plResult) (This)->lpVtbl->EscapeW(This,hKL,hIMC,uEscape,pData,plResult)
2794 #define IActiveIMMIME_GetCandidateListA(This,hIMC,dwIndex,uBufLen,pCandList,puCopied) (This)->lpVtbl->GetCandidateListA(This,hIMC,dwIndex,uBufLen,pCandList,puCopied)
2795 #define IActiveIMMIME_GetCandidateListW(This,hIMC,dwIndex,uBufLen,pCandList,puCopied) (This)->lpVtbl->GetCandidateListW(This,hIMC,dwIndex,uBufLen,pCandList,puCopied)
2796 #define IActiveIMMIME_GetCandidateListCountA(This,hIMC,pdwListSize,pdwBufLen) (This)->lpVtbl->GetCandidateListCountA(This,hIMC,pdwListSize,pdwBufLen)
2797 #define IActiveIMMIME_GetCandidateListCountW(This,hIMC,pdwListSize,pdwBufLen) (This)->lpVtbl->GetCandidateListCountW(This,hIMC,pdwListSize,pdwBufLen)
2798 #define IActiveIMMIME_GetCandidateWindow(This,hIMC,dwIndex,pCandidate) (This)->lpVtbl->GetCandidateWindow(This,hIMC,dwIndex,pCandidate)
2799 #define IActiveIMMIME_GetCompositionFontA(This,hIMC,plf) (This)->lpVtbl->GetCompositionFontA(This,hIMC,plf)
2800 #define IActiveIMMIME_GetCompositionFontW(This,hIMC,plf) (This)->lpVtbl->GetCompositionFontW(This,hIMC,plf)
2801 #define IActiveIMMIME_GetCompositionStringA(This,hIMC,dwIndex,dwBufLen,plCopied,pBuf) (This)->lpVtbl->GetCompositionStringA(This,hIMC,dwIndex,dwBufLen,plCopied,pBuf)
2802 #define IActiveIMMIME_GetCompositionStringW(This,hIMC,dwIndex,dwBufLen,plCopied,pBuf) (This)->lpVtbl->GetCompositionStringW(This,hIMC,dwIndex,dwBufLen,plCopied,pBuf)
2803 #define IActiveIMMIME_GetCompositionWindow(This,hIMC,pCompForm) (This)->lpVtbl->GetCompositionWindow(This,hIMC,pCompForm)
2804 #define IActiveIMMIME_GetContext(This,hWnd,phIMC) (This)->lpVtbl->GetContext(This,hWnd,phIMC)
2805 #define IActiveIMMIME_GetConversionListA(This,hKL,hIMC,pSrc,uBufLen,uFlag,pDst,puCopied) (This)->lpVtbl->GetConversionListA(This,hKL,hIMC,pSrc,uBufLen,uFlag,pDst,puCopied)
2806 #define IActiveIMMIME_GetConversionListW(This,hKL,hIMC,pSrc,uBufLen,uFlag,pDst,puCopied) (This)->lpVtbl->GetConversionListW(This,hKL,hIMC,pSrc,uBufLen,uFlag,pDst,puCopied)
2807 #define IActiveIMMIME_GetConversionStatus(This,hIMC,pfdwConversion,pfdwSentence) (This)->lpVtbl->GetConversionStatus(This,hIMC,pfdwConversion,pfdwSentence)
2808 #define IActiveIMMIME_GetDefaultIMEWnd(This,hWnd,phDefWnd) (This)->lpVtbl->GetDefaultIMEWnd(This,hWnd,phDefWnd)
2809 #define IActiveIMMIME_GetDescriptionA(This,hKL,uBufLen,szDescription,puCopied) (This)->lpVtbl->GetDescriptionA(This,hKL,uBufLen,szDescription,puCopied)
2810 #define IActiveIMMIME_GetDescriptionW(This,hKL,uBufLen,szDescription,puCopied) (This)->lpVtbl->GetDescriptionW(This,hKL,uBufLen,szDescription,puCopied)
2811 #define IActiveIMMIME_GetGuideLineA(This,hIMC,dwIndex,dwBufLen,pBuf,pdwResult) (This)->lpVtbl->GetGuideLineA(This,hIMC,dwIndex,dwBufLen,pBuf,pdwResult)
2812 #define IActiveIMMIME_GetGuideLineW(This,hIMC,dwIndex,dwBufLen,pBuf,pdwResult) (This)->lpVtbl->GetGuideLineW(This,hIMC,dwIndex,dwBufLen,pBuf,pdwResult)
2813 #define IActiveIMMIME_GetIMEFileNameA(This,hKL,uBufLen,szFileName,puCopied) (This)->lpVtbl->GetIMEFileNameA(This,hKL,uBufLen,szFileName,puCopied)
2814 #define IActiveIMMIME_GetIMEFileNameW(This,hKL,uBufLen,szFileName,puCopied) (This)->lpVtbl->GetIMEFileNameW(This,hKL,uBufLen,szFileName,puCopied)
2815 #define IActiveIMMIME_GetOpenStatus(This,hIMC) (This)->lpVtbl->GetOpenStatus(This,hIMC)
2816 #define IActiveIMMIME_GetProperty(This,hKL,fdwIndex,pdwProperty) (This)->lpVtbl->GetProperty(This,hKL,fdwIndex,pdwProperty)
2817 #define IActiveIMMIME_GetRegisterWordStyleA(This,hKL,nItem,pStyleBuf,puCopied) (This)->lpVtbl->GetRegisterWordStyleA(This,hKL,nItem,pStyleBuf,puCopied)
2818 #define IActiveIMMIME_GetRegisterWordStyleW(This,hKL,nItem,pStyleBuf,puCopied) (This)->lpVtbl->GetRegisterWordStyleW(This,hKL,nItem,pStyleBuf,puCopied)
2819 #define IActiveIMMIME_GetStatusWindowPos(This,hIMC,pptPos) (This)->lpVtbl->GetStatusWindowPos(This,hIMC,pptPos)
2820 #define IActiveIMMIME_GetVirtualKey(This,hWnd,puVirtualKey) (This)->lpVtbl->GetVirtualKey(This,hWnd,puVirtualKey)
2821 #define IActiveIMMIME_InstallIMEA(This,szIMEFileName,szLayoutText,phKL) (This)->lpVtbl->InstallIMEA(This,szIMEFileName,szLayoutText,phKL)
2822 #define IActiveIMMIME_InstallIMEW(This,szIMEFileName,szLayoutText,phKL) (This)->lpVtbl->InstallIMEW(This,szIMEFileName,szLayoutText,phKL)
2823 #define IActiveIMMIME_IsIME(This,hKL) (This)->lpVtbl->IsIME(This,hKL)
2824 #define IActiveIMMIME_IsUIMessageA(This,hWndIME,msg,wParam,lParam) (This)->lpVtbl->IsUIMessageA(This,hWndIME,msg,wParam,lParam)
2825 #define IActiveIMMIME_IsUIMessageW(This,hWndIME,msg,wParam,lParam) (This)->lpVtbl->IsUIMessageW(This,hWndIME,msg,wParam,lParam)
2826 #define IActiveIMMIME_NotifyIME(This,hIMC,dwAction,dwIndex,dwValue) (This)->lpVtbl->NotifyIME(This,hIMC,dwAction,dwIndex,dwValue)
2827 #define IActiveIMMIME_RegisterWordA(This,hKL,szReading,dwStyle,szRegister) (This)->lpVtbl->RegisterWordA(This,hKL,szReading,dwStyle,szRegister)
2828 #define IActiveIMMIME_RegisterWordW(This,hKL,szReading,dwStyle,szRegister) (This)->lpVtbl->RegisterWordW(This,hKL,szReading,dwStyle,szRegister)
2829 #define IActiveIMMIME_ReleaseContext(This,hWnd,hIMC) (This)->lpVtbl->ReleaseContext(This,hWnd,hIMC)
2830 #define IActiveIMMIME_SetCandidateWindow(This,hIMC,pCandidate) (This)->lpVtbl->SetCandidateWindow(This,hIMC,pCandidate)
2831 #define IActiveIMMIME_SetCompositionFontA(This,hIMC,plf) (This)->lpVtbl->SetCompositionFontA(This,hIMC,plf)
2832 #define IActiveIMMIME_SetCompositionFontW(This,hIMC,plf) (This)->lpVtbl->SetCompositionFontW(This,hIMC,plf)
2833 #define IActiveIMMIME_SetCompositionStringA(This,hIMC,dwIndex,pComp,dwCompLen,pRead,dwReadLen) (This)->lpVtbl->SetCompositionStringA(This,hIMC,dwIndex,pComp,dwCompLen,pRead,dwReadLen)
2834 #define IActiveIMMIME_SetCompositionStringW(This,hIMC,dwIndex,pComp,dwCompLen,pRead,dwReadLen) (This)->lpVtbl->SetCompositionStringW(This,hIMC,dwIndex,pComp,dwCompLen,pRead,dwReadLen)
2835 #define IActiveIMMIME_SetCompositionWindow(This,hIMC,pCompForm) (This)->lpVtbl->SetCompositionWindow(This,hIMC,pCompForm)
2836 #define IActiveIMMIME_SetConversionStatus(This,hIMC,fdwConversion,fdwSentence) (This)->lpVtbl->SetConversionStatus(This,hIMC,fdwConversion,fdwSentence)
2837 #define IActiveIMMIME_SetOpenStatus(This,hIMC,fOpen) (This)->lpVtbl->SetOpenStatus(This,hIMC,fOpen)
2838 #define IActiveIMMIME_SetStatusWindowPos(This,hIMC,pptPos) (This)->lpVtbl->SetStatusWindowPos(This,hIMC,pptPos)
2839 #define IActiveIMMIME_SimulateHotKey(This,hWnd,dwHotKeyID) (This)->lpVtbl->SimulateHotKey(This,hWnd,dwHotKeyID)
2840 #define IActiveIMMIME_UnregisterWordA(This,hKL,szReading,dwStyle,szUnregister) (This)->lpVtbl->UnregisterWordA(This,hKL,szReading,dwStyle,szUnregister)
2841 #define IActiveIMMIME_UnregisterWordW(This,hKL,szReading,dwStyle,szUnregister) (This)->lpVtbl->UnregisterWordW(This,hKL,szReading,dwStyle,szUnregister)
2842 #define IActiveIMMIME_GenerateMessage(This,hIMC) (This)->lpVtbl->GenerateMessage(This,hIMC)
2843 #define IActiveIMMIME_LockIMC(This,hIMC,ppIMC) (This)->lpVtbl->LockIMC(This,hIMC,ppIMC)
2844 #define IActiveIMMIME_UnlockIMC(This,hIMC) (This)->lpVtbl->UnlockIMC(This,hIMC)
2845 #define IActiveIMMIME_GetIMCLockCount(This,hIMC,pdwLockCount) (This)->lpVtbl->GetIMCLockCount(This,hIMC,pdwLockCount)
2846 #define IActiveIMMIME_CreateIMCC(This,dwSize,phIMCC) (This)->lpVtbl->CreateIMCC(This,dwSize,phIMCC)
2847 #define IActiveIMMIME_DestroyIMCC(This,hIMCC) (This)->lpVtbl->DestroyIMCC(This,hIMCC)
2848 #define IActiveIMMIME_LockIMCC(This,hIMCC,ppv) (This)->lpVtbl->LockIMCC(This,hIMCC,ppv)
2849 #define IActiveIMMIME_UnlockIMCC(This,hIMCC) (This)->lpVtbl->UnlockIMCC(This,hIMCC)
2850 #define IActiveIMMIME_ReSizeIMCC(This,hIMCC,dwSize,phIMCC) (This)->lpVtbl->ReSizeIMCC(This,hIMCC,dwSize,phIMCC)
2851 #define IActiveIMMIME_GetIMCCSize(This,hIMCC,pdwSize) (This)->lpVtbl->GetIMCCSize(This,hIMCC,pdwSize)
2852 #define IActiveIMMIME_GetIMCCLockCount(This,hIMCC,pdwLockCount) (This)->lpVtbl->GetIMCCLockCount(This,hIMCC,pdwLockCount)
2853 #define IActiveIMMIME_GetHotKey(This,dwHotKeyID,puModifiers,puVKey,phKL) (This)->lpVtbl->GetHotKey(This,dwHotKeyID,puModifiers,puVKey,phKL)
2854 #define IActiveIMMIME_SetHotKey(This,dwHotKeyID,uModifiers,uVKey,hKL) (This)->lpVtbl->SetHotKey(This,dwHotKeyID,uModifiers,uVKey,hKL)
2855 #define IActiveIMMIME_CreateSoftKeyboard(This,uType,hOwner,x,y,phSoftKbdWnd) (This)->lpVtbl->CreateSoftKeyboard(This,uType,hOwner,x,y,phSoftKbdWnd)
2856 #define IActiveIMMIME_DestroySoftKeyboard(This,hSoftKbdWnd) (This)->lpVtbl->DestroySoftKeyboard(This,hSoftKbdWnd)
2857 #define IActiveIMMIME_ShowSoftKeyboard(This,hSoftKbdWnd,nCmdShow) (This)->lpVtbl->ShowSoftKeyboard(This,hSoftKbdWnd,nCmdShow)
2858 #define IActiveIMMIME_GetCodePageA(This,hKL,uCodePage) (This)->lpVtbl->GetCodePageA(This,hKL,uCodePage)
2859 #define IActiveIMMIME_GetLangId(This,hKL,plid) (This)->lpVtbl->GetLangId(This,hKL,plid)
2860 #define IActiveIMMIME_KeybdEvent(This,lgidIME,bVk,bScan,dwFlags,dwExtraInfo) (This)->lpVtbl->KeybdEvent(This,lgidIME,bVk,bScan,dwFlags,dwExtraInfo)
2861 #define IActiveIMMIME_LockModal(This) (This)->lpVtbl->LockModal(This)
2862 #define IActiveIMMIME_UnlockModal(This) (This)->lpVtbl->UnlockModal(This)
2863 #define IActiveIMMIME_AssociateContextEx(This,hWnd,hIMC,dwFlags) (This)->lpVtbl->AssociateContextEx(This,hWnd,hIMC,dwFlags)
2864 #define IActiveIMMIME_DisableIME(This,idThread) (This)->lpVtbl->DisableIME(This,idThread)
2865 #define IActiveIMMIME_GetImeMenuItemsA(This,hIMC,dwFlags,dwType,pImeParentMenu,pImeMenu,dwSize,pdwResult) (This)->lpVtbl->GetImeMenuItemsA(This,hIMC,dwFlags,dwType,pImeParentMenu,pImeMenu,dwSize,pdwResult)
2866 #define IActiveIMMIME_GetImeMenuItemsW(This,hIMC,dwFlags,dwType,pImeParentMenu,pImeMenu,dwSize,pdwResult) (This)->lpVtbl->GetImeMenuItemsW(This,hIMC,dwFlags,dwType,pImeParentMenu,pImeMenu,dwSize,pdwResult)
2867 #define IActiveIMMIME_EnumInputContext(This,idThread,ppEnum) (This)->lpVtbl->EnumInputContext(This,idThread,ppEnum)
2868 #define IActiveIMMIME_RequestMessageA(This,hIMC,wParam,lParam,plResult) (This)->lpVtbl->RequestMessageA(This,hIMC,wParam,lParam,plResult)
2869 #define IActiveIMMIME_RequestMessageW(This,hIMC,wParam,lParam,plResult) (This)->lpVtbl->RequestMessageW(This,hIMC,wParam,lParam,plResult)
2870 #define IActiveIMMIME_SendIMCA(This,hWnd,uMsg,wParam,lParam,plResult) (This)->lpVtbl->SendIMCA(This,hWnd,uMsg,wParam,lParam,plResult)
2871 #define IActiveIMMIME_SendIMCW(This,hWnd,uMsg,wParam,lParam,plResult) (This)->lpVtbl->SendIMCW(This,hWnd,uMsg,wParam,lParam,plResult)
2872 #define IActiveIMMIME_IsSleeping(This) (This)->lpVtbl->IsSleeping(This)
2873 #else
2874 /*** IUnknown methods ***/
2875 static FORCEINLINE HRESULT IActiveIMMIME_QueryInterface(IActiveIMMIME* This,REFIID riid,void **ppvObject) {
2876     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2877 }
2878 static FORCEINLINE ULONG IActiveIMMIME_AddRef(IActiveIMMIME* This) {
2879     return This->lpVtbl->AddRef(This);
2880 }
2881 static FORCEINLINE ULONG IActiveIMMIME_Release(IActiveIMMIME* This) {
2882     return This->lpVtbl->Release(This);
2883 }
2884 /*** IActiveIMMIME methods ***/
2885 static FORCEINLINE HRESULT IActiveIMMIME_AssociateContext(IActiveIMMIME* This,HWND hWnd,HIMC hIME,HIMC *phPrev) {
2886     return This->lpVtbl->AssociateContext(This,hWnd,hIME,phPrev);
2887 }
2888 static FORCEINLINE HRESULT IActiveIMMIME_ConfigureIMEA(IActiveIMMIME* This,HKL hKL,HWND hWnd,DWORD dwMode,REGISTERWORDA *pData) {
2889     return This->lpVtbl->ConfigureIMEA(This,hKL,hWnd,dwMode,pData);
2890 }
2891 static FORCEINLINE HRESULT IActiveIMMIME_ConfigureIMEW(IActiveIMMIME* This,HKL hKL,HWND hWnd,DWORD dwMode,REGISTERWORDW *pData) {
2892     return This->lpVtbl->ConfigureIMEW(This,hKL,hWnd,dwMode,pData);
2893 }
2894 static FORCEINLINE HRESULT IActiveIMMIME_CreateContext(IActiveIMMIME* This,HIMC *phIMC) {
2895     return This->lpVtbl->CreateContext(This,phIMC);
2896 }
2897 static FORCEINLINE HRESULT IActiveIMMIME_DestroyContext(IActiveIMMIME* This,HIMC hIME) {
2898     return This->lpVtbl->DestroyContext(This,hIME);
2899 }
2900 static FORCEINLINE HRESULT IActiveIMMIME_EnumRegisterWordA(IActiveIMMIME* This,HKL hKL,LPSTR szReading,DWORD dwStyle,LPSTR szRegister,LPVOID pData,IEnumRegisterWordA **pEnum) {
2901     return This->lpVtbl->EnumRegisterWordA(This,hKL,szReading,dwStyle,szRegister,pData,pEnum);
2902 }
2903 static FORCEINLINE HRESULT IActiveIMMIME_EnumRegisterWordW(IActiveIMMIME* This,HKL hKL,LPWSTR szReading,DWORD dwStyle,LPWSTR szRegister,LPVOID pData,IEnumRegisterWordW **pEnum) {
2904     return This->lpVtbl->EnumRegisterWordW(This,hKL,szReading,dwStyle,szRegister,pData,pEnum);
2905 }
2906 static FORCEINLINE HRESULT IActiveIMMIME_EscapeA(IActiveIMMIME* This,HKL hKL,HIMC hIMC,UINT uEscape,LPVOID pData,LRESULT *plResult) {
2907     return This->lpVtbl->EscapeA(This,hKL,hIMC,uEscape,pData,plResult);
2908 }
2909 static FORCEINLINE HRESULT IActiveIMMIME_EscapeW(IActiveIMMIME* This,HKL hKL,HIMC hIMC,UINT uEscape,LPVOID pData,LRESULT *plResult) {
2910     return This->lpVtbl->EscapeW(This,hKL,hIMC,uEscape,pData,plResult);
2911 }
2912 static FORCEINLINE HRESULT IActiveIMMIME_GetCandidateListA(IActiveIMMIME* This,HIMC hIMC,DWORD dwIndex,UINT uBufLen,CANDIDATELIST *pCandList,UINT *puCopied) {
2913     return This->lpVtbl->GetCandidateListA(This,hIMC,dwIndex,uBufLen,pCandList,puCopied);
2914 }
2915 static FORCEINLINE HRESULT IActiveIMMIME_GetCandidateListW(IActiveIMMIME* This,HIMC hIMC,DWORD dwIndex,UINT uBufLen,CANDIDATELIST *pCandList,UINT *puCopied) {
2916     return This->lpVtbl->GetCandidateListW(This,hIMC,dwIndex,uBufLen,pCandList,puCopied);
2917 }
2918 static FORCEINLINE HRESULT IActiveIMMIME_GetCandidateListCountA(IActiveIMMIME* This,HIMC hIMC,DWORD *pdwListSize,DWORD *pdwBufLen) {
2919     return This->lpVtbl->GetCandidateListCountA(This,hIMC,pdwListSize,pdwBufLen);
2920 }
2921 static FORCEINLINE HRESULT IActiveIMMIME_GetCandidateListCountW(IActiveIMMIME* This,HIMC hIMC,DWORD *pdwListSize,DWORD *pdwBufLen) {
2922     return This->lpVtbl->GetCandidateListCountW(This,hIMC,pdwListSize,pdwBufLen);
2923 }
2924 static FORCEINLINE HRESULT IActiveIMMIME_GetCandidateWindow(IActiveIMMIME* This,HIMC hIMC,DWORD dwIndex,CANDIDATEFORM *pCandidate) {
2925     return This->lpVtbl->GetCandidateWindow(This,hIMC,dwIndex,pCandidate);
2926 }
2927 static FORCEINLINE HRESULT IActiveIMMIME_GetCompositionFontA(IActiveIMMIME* This,HIMC hIMC,LOGFONTA *plf) {
2928     return This->lpVtbl->GetCompositionFontA(This,hIMC,plf);
2929 }
2930 static FORCEINLINE HRESULT IActiveIMMIME_GetCompositionFontW(IActiveIMMIME* This,HIMC hIMC,LOGFONTW *plf) {
2931     return This->lpVtbl->GetCompositionFontW(This,hIMC,plf);
2932 }
2933 static FORCEINLINE HRESULT IActiveIMMIME_GetCompositionStringA(IActiveIMMIME* This,HIMC hIMC,DWORD dwIndex,DWORD dwBufLen,LONG *plCopied,LPVOID pBuf) {
2934     return This->lpVtbl->GetCompositionStringA(This,hIMC,dwIndex,dwBufLen,plCopied,pBuf);
2935 }
2936 static FORCEINLINE HRESULT IActiveIMMIME_GetCompositionStringW(IActiveIMMIME* This,HIMC hIMC,DWORD dwIndex,DWORD dwBufLen,LONG *plCopied,LPVOID pBuf) {
2937     return This->lpVtbl->GetCompositionStringW(This,hIMC,dwIndex,dwBufLen,plCopied,pBuf);
2938 }
2939 static FORCEINLINE HRESULT IActiveIMMIME_GetCompositionWindow(IActiveIMMIME* This,HIMC hIMC,COMPOSITIONFORM *pCompForm) {
2940     return This->lpVtbl->GetCompositionWindow(This,hIMC,pCompForm);
2941 }
2942 static FORCEINLINE HRESULT IActiveIMMIME_GetContext(IActiveIMMIME* This,HWND hWnd,HIMC *phIMC) {
2943     return This->lpVtbl->GetContext(This,hWnd,phIMC);
2944 }
2945 static FORCEINLINE HRESULT IActiveIMMIME_GetConversionListA(IActiveIMMIME* This,HKL hKL,HIMC hIMC,LPSTR pSrc,UINT uBufLen,UINT uFlag,CANDIDATELIST *pDst,UINT *puCopied) {
2946     return This->lpVtbl->GetConversionListA(This,hKL,hIMC,pSrc,uBufLen,uFlag,pDst,puCopied);
2947 }
2948 static FORCEINLINE HRESULT IActiveIMMIME_GetConversionListW(IActiveIMMIME* This,HKL hKL,HIMC hIMC,LPWSTR pSrc,UINT uBufLen,UINT uFlag,CANDIDATELIST *pDst,UINT *puCopied) {
2949     return This->lpVtbl->GetConversionListW(This,hKL,hIMC,pSrc,uBufLen,uFlag,pDst,puCopied);
2950 }
2951 static FORCEINLINE HRESULT IActiveIMMIME_GetConversionStatus(IActiveIMMIME* This,HIMC hIMC,DWORD *pfdwConversion,DWORD *pfdwSentence) {
2952     return This->lpVtbl->GetConversionStatus(This,hIMC,pfdwConversion,pfdwSentence);
2953 }
2954 static FORCEINLINE HRESULT IActiveIMMIME_GetDefaultIMEWnd(IActiveIMMIME* This,HWND hWnd,HWND *phDefWnd) {
2955     return This->lpVtbl->GetDefaultIMEWnd(This,hWnd,phDefWnd);
2956 }
2957 static FORCEINLINE HRESULT IActiveIMMIME_GetDescriptionA(IActiveIMMIME* This,HKL hKL,UINT uBufLen,LPSTR szDescription,UINT *puCopied) {
2958     return This->lpVtbl->GetDescriptionA(This,hKL,uBufLen,szDescription,puCopied);
2959 }
2960 static FORCEINLINE HRESULT IActiveIMMIME_GetDescriptionW(IActiveIMMIME* This,HKL hKL,UINT uBufLen,LPWSTR szDescription,UINT *puCopied) {
2961     return This->lpVtbl->GetDescriptionW(This,hKL,uBufLen,szDescription,puCopied);
2962 }
2963 static FORCEINLINE HRESULT IActiveIMMIME_GetGuideLineA(IActiveIMMIME* This,HIMC hIMC,DWORD dwIndex,DWORD dwBufLen,LPSTR pBuf,DWORD *pdwResult) {
2964     return This->lpVtbl->GetGuideLineA(This,hIMC,dwIndex,dwBufLen,pBuf,pdwResult);
2965 }
2966 static FORCEINLINE HRESULT IActiveIMMIME_GetGuideLineW(IActiveIMMIME* This,HIMC hIMC,DWORD dwIndex,DWORD dwBufLen,LPWSTR pBuf,DWORD *pdwResult) {
2967     return This->lpVtbl->GetGuideLineW(This,hIMC,dwIndex,dwBufLen,pBuf,pdwResult);
2968 }
2969 static FORCEINLINE HRESULT IActiveIMMIME_GetIMEFileNameA(IActiveIMMIME* This,HKL hKL,UINT uBufLen,LPSTR szFileName,UINT *puCopied) {
2970     return This->lpVtbl->GetIMEFileNameA(This,hKL,uBufLen,szFileName,puCopied);
2971 }
2972 static FORCEINLINE HRESULT IActiveIMMIME_GetIMEFileNameW(IActiveIMMIME* This,HKL hKL,UINT uBufLen,LPWSTR szFileName,UINT *puCopied) {
2973     return This->lpVtbl->GetIMEFileNameW(This,hKL,uBufLen,szFileName,puCopied);
2974 }
2975 static FORCEINLINE HRESULT IActiveIMMIME_GetOpenStatus(IActiveIMMIME* This,HIMC hIMC) {
2976     return This->lpVtbl->GetOpenStatus(This,hIMC);
2977 }
2978 static FORCEINLINE HRESULT IActiveIMMIME_GetProperty(IActiveIMMIME* This,HKL hKL,DWORD fdwIndex,DWORD *pdwProperty) {
2979     return This->lpVtbl->GetProperty(This,hKL,fdwIndex,pdwProperty);
2980 }
2981 static FORCEINLINE HRESULT IActiveIMMIME_GetRegisterWordStyleA(IActiveIMMIME* This,HKL hKL,UINT nItem,STYLEBUFA *pStyleBuf,UINT *puCopied) {
2982     return This->lpVtbl->GetRegisterWordStyleA(This,hKL,nItem,pStyleBuf,puCopied);
2983 }
2984 static FORCEINLINE HRESULT IActiveIMMIME_GetRegisterWordStyleW(IActiveIMMIME* This,HKL hKL,UINT nItem,STYLEBUFW *pStyleBuf,UINT *puCopied) {
2985     return This->lpVtbl->GetRegisterWordStyleW(This,hKL,nItem,pStyleBuf,puCopied);
2986 }
2987 static FORCEINLINE HRESULT IActiveIMMIME_GetStatusWindowPos(IActiveIMMIME* This,HIMC hIMC,POINT *pptPos) {
2988     return This->lpVtbl->GetStatusWindowPos(This,hIMC,pptPos);
2989 }
2990 static FORCEINLINE HRESULT IActiveIMMIME_GetVirtualKey(IActiveIMMIME* This,HWND hWnd,UINT *puVirtualKey) {
2991     return This->lpVtbl->GetVirtualKey(This,hWnd,puVirtualKey);
2992 }
2993 static FORCEINLINE HRESULT IActiveIMMIME_InstallIMEA(IActiveIMMIME* This,LPSTR szIMEFileName,LPSTR szLayoutText,HKL *phKL) {
2994     return This->lpVtbl->InstallIMEA(This,szIMEFileName,szLayoutText,phKL);
2995 }
2996 static FORCEINLINE HRESULT IActiveIMMIME_InstallIMEW(IActiveIMMIME* This,LPWSTR szIMEFileName,LPWSTR szLayoutText,HKL *phKL) {
2997     return This->lpVtbl->InstallIMEW(This,szIMEFileName,szLayoutText,phKL);
2998 }
2999 static FORCEINLINE HRESULT IActiveIMMIME_IsIME(IActiveIMMIME* This,HKL hKL) {
3000     return This->lpVtbl->IsIME(This,hKL);
3001 }
3002 static FORCEINLINE HRESULT IActiveIMMIME_IsUIMessageA(IActiveIMMIME* This,HWND hWndIME,UINT msg,WPARAM wParam,LPARAM lParam) {
3003     return This->lpVtbl->IsUIMessageA(This,hWndIME,msg,wParam,lParam);
3004 }
3005 static FORCEINLINE HRESULT IActiveIMMIME_IsUIMessageW(IActiveIMMIME* This,HWND hWndIME,UINT msg,WPARAM wParam,LPARAM lParam) {
3006     return This->lpVtbl->IsUIMessageW(This,hWndIME,msg,wParam,lParam);
3007 }
3008 static FORCEINLINE HRESULT IActiveIMMIME_NotifyIME(IActiveIMMIME* This,HIMC hIMC,DWORD dwAction,DWORD dwIndex,DWORD dwValue) {
3009     return This->lpVtbl->NotifyIME(This,hIMC,dwAction,dwIndex,dwValue);
3010 }
3011 static FORCEINLINE HRESULT IActiveIMMIME_RegisterWordA(IActiveIMMIME* This,HKL hKL,LPSTR szReading,DWORD dwStyle,LPSTR szRegister) {
3012     return This->lpVtbl->RegisterWordA(This,hKL,szReading,dwStyle,szRegister);
3013 }
3014 static FORCEINLINE HRESULT IActiveIMMIME_RegisterWordW(IActiveIMMIME* This,HKL hKL,LPWSTR szReading,DWORD dwStyle,LPWSTR szRegister) {
3015     return This->lpVtbl->RegisterWordW(This,hKL,szReading,dwStyle,szRegister);
3016 }
3017 static FORCEINLINE HRESULT IActiveIMMIME_ReleaseContext(IActiveIMMIME* This,HWND hWnd,HIMC hIMC) {
3018     return This->lpVtbl->ReleaseContext(This,hWnd,hIMC);
3019 }
3020 static FORCEINLINE HRESULT IActiveIMMIME_SetCandidateWindow(IActiveIMMIME* This,HIMC hIMC,CANDIDATEFORM *pCandidate) {
3021     return This->lpVtbl->SetCandidateWindow(This,hIMC,pCandidate);
3022 }
3023 static FORCEINLINE HRESULT IActiveIMMIME_SetCompositionFontA(IActiveIMMIME* This,HIMC hIMC,LOGFONTA *plf) {
3024     return This->lpVtbl->SetCompositionFontA(This,hIMC,plf);
3025 }
3026 static FORCEINLINE HRESULT IActiveIMMIME_SetCompositionFontW(IActiveIMMIME* This,HIMC hIMC,LOGFONTW *plf) {
3027     return This->lpVtbl->SetCompositionFontW(This,hIMC,plf);
3028 }
3029 static FORCEINLINE HRESULT IActiveIMMIME_SetCompositionStringA(IActiveIMMIME* This,HIMC hIMC,DWORD dwIndex,LPVOID pComp,DWORD dwCompLen,LPVOID pRead,DWORD dwReadLen) {
3030     return This->lpVtbl->SetCompositionStringA(This,hIMC,dwIndex,pComp,dwCompLen,pRead,dwReadLen);
3031 }
3032 static FORCEINLINE HRESULT IActiveIMMIME_SetCompositionStringW(IActiveIMMIME* This,HIMC hIMC,DWORD dwIndex,LPVOID pComp,DWORD dwCompLen,LPVOID pRead,DWORD dwReadLen) {
3033     return This->lpVtbl->SetCompositionStringW(This,hIMC,dwIndex,pComp,dwCompLen,pRead,dwReadLen);
3034 }
3035 static FORCEINLINE HRESULT IActiveIMMIME_SetCompositionWindow(IActiveIMMIME* This,HIMC hIMC,COMPOSITIONFORM *pCompForm) {
3036     return This->lpVtbl->SetCompositionWindow(This,hIMC,pCompForm);
3037 }
3038 static FORCEINLINE HRESULT IActiveIMMIME_SetConversionStatus(IActiveIMMIME* This,HIMC hIMC,DWORD fdwConversion,DWORD fdwSentence) {
3039     return This->lpVtbl->SetConversionStatus(This,hIMC,fdwConversion,fdwSentence);
3040 }
3041 static FORCEINLINE HRESULT IActiveIMMIME_SetOpenStatus(IActiveIMMIME* This,HIMC hIMC,WINBOOL fOpen) {
3042     return This->lpVtbl->SetOpenStatus(This,hIMC,fOpen);
3043 }
3044 static FORCEINLINE HRESULT IActiveIMMIME_SetStatusWindowPos(IActiveIMMIME* This,HIMC hIMC,POINT *pptPos) {
3045     return This->lpVtbl->SetStatusWindowPos(This,hIMC,pptPos);
3046 }
3047 static FORCEINLINE HRESULT IActiveIMMIME_SimulateHotKey(IActiveIMMIME* This,HWND hWnd,DWORD dwHotKeyID) {
3048     return This->lpVtbl->SimulateHotKey(This,hWnd,dwHotKeyID);
3049 }
3050 static FORCEINLINE HRESULT IActiveIMMIME_UnregisterWordA(IActiveIMMIME* This,HKL hKL,LPSTR szReading,DWORD dwStyle,LPSTR szUnregister) {
3051     return This->lpVtbl->UnregisterWordA(This,hKL,szReading,dwStyle,szUnregister);
3052 }
3053 static FORCEINLINE HRESULT IActiveIMMIME_UnregisterWordW(IActiveIMMIME* This,HKL hKL,LPWSTR szReading,DWORD dwStyle,LPWSTR szUnregister) {
3054     return This->lpVtbl->UnregisterWordW(This,hKL,szReading,dwStyle,szUnregister);
3055 }
3056 static FORCEINLINE HRESULT IActiveIMMIME_GenerateMessage(IActiveIMMIME* This,HIMC hIMC) {
3057     return This->lpVtbl->GenerateMessage(This,hIMC);
3058 }
3059 static FORCEINLINE HRESULT IActiveIMMIME_LockIMC(IActiveIMMIME* This,HIMC hIMC,INPUTCONTEXT **ppIMC) {
3060     return This->lpVtbl->LockIMC(This,hIMC,ppIMC);
3061 }
3062 static FORCEINLINE HRESULT IActiveIMMIME_UnlockIMC(IActiveIMMIME* This,HIMC hIMC) {
3063     return This->lpVtbl->UnlockIMC(This,hIMC);
3064 }
3065 static FORCEINLINE HRESULT IActiveIMMIME_GetIMCLockCount(IActiveIMMIME* This,HIMC hIMC,DWORD *pdwLockCount) {
3066     return This->lpVtbl->GetIMCLockCount(This,hIMC,pdwLockCount);
3067 }
3068 static FORCEINLINE HRESULT IActiveIMMIME_CreateIMCC(IActiveIMMIME* This,DWORD dwSize,HIMCC *phIMCC) {
3069     return This->lpVtbl->CreateIMCC(This,dwSize,phIMCC);
3070 }
3071 static FORCEINLINE HRESULT IActiveIMMIME_DestroyIMCC(IActiveIMMIME* This,HIMCC hIMCC) {
3072     return This->lpVtbl->DestroyIMCC(This,hIMCC);
3073 }
3074 static FORCEINLINE HRESULT IActiveIMMIME_LockIMCC(IActiveIMMIME* This,HIMCC hIMCC,void **ppv) {
3075     return This->lpVtbl->LockIMCC(This,hIMCC,ppv);
3076 }
3077 static FORCEINLINE HRESULT IActiveIMMIME_UnlockIMCC(IActiveIMMIME* This,HIMCC hIMCC) {
3078     return This->lpVtbl->UnlockIMCC(This,hIMCC);
3079 }
3080 static FORCEINLINE HRESULT IActiveIMMIME_ReSizeIMCC(IActiveIMMIME* This,HIMCC hIMCC,DWORD dwSize,HIMCC *phIMCC) {
3081     return This->lpVtbl->ReSizeIMCC(This,hIMCC,dwSize,phIMCC);
3082 }
3083 static FORCEINLINE HRESULT IActiveIMMIME_GetIMCCSize(IActiveIMMIME* This,HIMCC hIMCC,DWORD *pdwSize) {
3084     return This->lpVtbl->GetIMCCSize(This,hIMCC,pdwSize);
3085 }
3086 static FORCEINLINE HRESULT IActiveIMMIME_GetIMCCLockCount(IActiveIMMIME* This,HIMCC hIMCC,DWORD *pdwLockCount) {
3087     return This->lpVtbl->GetIMCCLockCount(This,hIMCC,pdwLockCount);
3088 }
3089 static FORCEINLINE HRESULT IActiveIMMIME_GetHotKey(IActiveIMMIME* This,DWORD dwHotKeyID,UINT *puModifiers,UINT *puVKey,HKL *phKL) {
3090     return This->lpVtbl->GetHotKey(This,dwHotKeyID,puModifiers,puVKey,phKL);
3091 }
3092 static FORCEINLINE HRESULT IActiveIMMIME_SetHotKey(IActiveIMMIME* This,DWORD dwHotKeyID,UINT uModifiers,UINT uVKey,HKL hKL) {
3093     return This->lpVtbl->SetHotKey(This,dwHotKeyID,uModifiers,uVKey,hKL);
3094 }
3095 static FORCEINLINE HRESULT IActiveIMMIME_CreateSoftKeyboard(IActiveIMMIME* This,UINT uType,HWND hOwner,int x,int y,HWND *phSoftKbdWnd) {
3096     return This->lpVtbl->CreateSoftKeyboard(This,uType,hOwner,x,y,phSoftKbdWnd);
3097 }
3098 static FORCEINLINE HRESULT IActiveIMMIME_DestroySoftKeyboard(IActiveIMMIME* This,HWND hSoftKbdWnd) {
3099     return This->lpVtbl->DestroySoftKeyboard(This,hSoftKbdWnd);
3100 }
3101 static FORCEINLINE HRESULT IActiveIMMIME_ShowSoftKeyboard(IActiveIMMIME* This,HWND hSoftKbdWnd,int nCmdShow) {
3102     return This->lpVtbl->ShowSoftKeyboard(This,hSoftKbdWnd,nCmdShow);
3103 }
3104 static FORCEINLINE HRESULT IActiveIMMIME_GetCodePageA(IActiveIMMIME* This,HKL hKL,UINT *uCodePage) {
3105     return This->lpVtbl->GetCodePageA(This,hKL,uCodePage);
3106 }
3107 static FORCEINLINE HRESULT IActiveIMMIME_GetLangId(IActiveIMMIME* This,HKL hKL,LANGID *plid) {
3108     return This->lpVtbl->GetLangId(This,hKL,plid);
3109 }
3110 static FORCEINLINE HRESULT IActiveIMMIME_KeybdEvent(IActiveIMMIME* This,LANGID lgidIME,BYTE bVk,BYTE bScan,DWORD dwFlags,DWORD dwExtraInfo) {
3111     return This->lpVtbl->KeybdEvent(This,lgidIME,bVk,bScan,dwFlags,dwExtraInfo);
3112 }
3113 static FORCEINLINE HRESULT IActiveIMMIME_LockModal(IActiveIMMIME* This) {
3114     return This->lpVtbl->LockModal(This);
3115 }
3116 static FORCEINLINE HRESULT IActiveIMMIME_UnlockModal(IActiveIMMIME* This) {
3117     return This->lpVtbl->UnlockModal(This);
3118 }
3119 static FORCEINLINE HRESULT IActiveIMMIME_AssociateContextEx(IActiveIMMIME* This,HWND hWnd,HIMC hIMC,DWORD dwFlags) {
3120     return This->lpVtbl->AssociateContextEx(This,hWnd,hIMC,dwFlags);
3121 }
3122 static FORCEINLINE HRESULT IActiveIMMIME_DisableIME(IActiveIMMIME* This,DWORD idThread) {
3123     return This->lpVtbl->DisableIME(This,idThread);
3124 }
3125 static FORCEINLINE HRESULT IActiveIMMIME_GetImeMenuItemsA(IActiveIMMIME* This,HIMC hIMC,DWORD dwFlags,DWORD dwType,IMEMENUITEMINFOA *pImeParentMenu,IMEMENUITEMINFOA *pImeMenu,DWORD dwSize,DWORD *pdwResult) {
3126     return This->lpVtbl->GetImeMenuItemsA(This,hIMC,dwFlags,dwType,pImeParentMenu,pImeMenu,dwSize,pdwResult);
3127 }
3128 static FORCEINLINE HRESULT IActiveIMMIME_GetImeMenuItemsW(IActiveIMMIME* This,HIMC hIMC,DWORD dwFlags,DWORD dwType,IMEMENUITEMINFOW *pImeParentMenu,IMEMENUITEMINFOW *pImeMenu,DWORD dwSize,DWORD *pdwResult) {
3129     return This->lpVtbl->GetImeMenuItemsW(This,hIMC,dwFlags,dwType,pImeParentMenu,pImeMenu,dwSize,pdwResult);
3130 }
3131 static FORCEINLINE HRESULT IActiveIMMIME_EnumInputContext(IActiveIMMIME* This,DWORD idThread,IEnumInputContext **ppEnum) {
3132     return This->lpVtbl->EnumInputContext(This,idThread,ppEnum);
3133 }
3134 static FORCEINLINE HRESULT IActiveIMMIME_RequestMessageA(IActiveIMMIME* This,HIMC hIMC,WPARAM wParam,LPARAM lParam,LRESULT *plResult) {
3135     return This->lpVtbl->RequestMessageA(This,hIMC,wParam,lParam,plResult);
3136 }
3137 static FORCEINLINE HRESULT IActiveIMMIME_RequestMessageW(IActiveIMMIME* This,HIMC hIMC,WPARAM wParam,LPARAM lParam,LRESULT *plResult) {
3138     return This->lpVtbl->RequestMessageW(This,hIMC,wParam,lParam,plResult);
3139 }
3140 static FORCEINLINE HRESULT IActiveIMMIME_SendIMCA(IActiveIMMIME* This,HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam,LRESULT *plResult) {
3141     return This->lpVtbl->SendIMCA(This,hWnd,uMsg,wParam,lParam,plResult);
3142 }
3143 static FORCEINLINE HRESULT IActiveIMMIME_SendIMCW(IActiveIMMIME* This,HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam,LRESULT *plResult) {
3144     return This->lpVtbl->SendIMCW(This,hWnd,uMsg,wParam,lParam,plResult);
3145 }
3146 static FORCEINLINE HRESULT IActiveIMMIME_IsSleeping(IActiveIMMIME* This) {
3147     return This->lpVtbl->IsSleeping(This);
3148 }
3149 #endif
3150 #endif
3151 
3152 #endif
3153 
3154 
3155 #endif  /* __IActiveIMMIME_INTERFACE_DEFINED__ */
3156 
3157 /*****************************************************************************
3158  * IActiveIME interface
3159  */
3160 #ifndef __IActiveIME_INTERFACE_DEFINED__
3161 #define __IActiveIME_INTERFACE_DEFINED__
3162 
3163 DEFINE_GUID(IID_IActiveIME, 0x6fe20962, 0xd077, 0x11d0, 0x8f,0xe7, 0x00,0xaa,0x00,0x6b,0xcc,0x59);
3164 #if defined(__cplusplus) && !defined(CINTERFACE)
3165 MIDL_INTERFACE("6fe20962-d077-11d0-8fe7-00aa006bcc59")
3166 IActiveIME : public IUnknown
3167 {
3168     virtual HRESULT STDMETHODCALLTYPE Inquire(
3169         DWORD dwSystemInfoFlags,
3170         IMEINFO *pIMEInfo,
3171         LPWSTR szWndClass,
3172         DWORD *pdwPrivate) = 0;
3173 
3174     virtual HRESULT STDMETHODCALLTYPE ConversionList(
3175         HIMC hIMC,
3176         LPWSTR szSource,
3177         UINT uFlag,
3178         UINT uBufLen,
3179         CANDIDATELIST *pDest,
3180         UINT *puCopied) = 0;
3181 
3182     virtual HRESULT STDMETHODCALLTYPE Configure(
3183         HKL hKL,
3184         HWND hWnd,
3185         DWORD dwMode,
3186         REGISTERWORDW *pRegisterWord) = 0;
3187 
3188     virtual HRESULT STDMETHODCALLTYPE Destroy(
3189         UINT uReserved) = 0;
3190 
3191     virtual HRESULT STDMETHODCALLTYPE Escape(
3192         HIMC hIMC,
3193         UINT uEscape,
3194         void *pData,
3195         LRESULT *plResult) = 0;
3196 
3197     virtual HRESULT STDMETHODCALLTYPE SetActiveContext(
3198         HIMC hIMC,
3199         WINBOOL fFlag) = 0;
3200 
3201     virtual HRESULT STDMETHODCALLTYPE ProcessKey(
3202         HIMC hIMC,
3203         UINT uVirKey,
3204         DWORD lParam,
3205         BYTE *pbKeyState) = 0;
3206 
3207     virtual HRESULT STDMETHODCALLTYPE Notify(
3208         HIMC hIMC,
3209         DWORD dwAction,
3210         DWORD dwIndex,
3211         DWORD dwValue) = 0;
3212 
3213     virtual HRESULT STDMETHODCALLTYPE Select(
3214         HIMC hIMC,
3215         WINBOOL fSelect) = 0;
3216 
3217     virtual HRESULT STDMETHODCALLTYPE SetCompositionString(
3218         HIMC hIMC,
3219         DWORD dwIndex,
3220         void *pComp,
3221         DWORD dwCompLen,
3222         void *pRead,
3223         DWORD dwReadLen) = 0;
3224 
3225     virtual HRESULT STDMETHODCALLTYPE ToAsciiEx(
3226         UINT uVirKey,
3227         UINT uScanCode,
3228         BYTE *pbKeyState,
3229         UINT fuState,
3230         HIMC hIMC,
3231         DWORD *pdwTransBuf,
3232         UINT *puSize) = 0;
3233 
3234     virtual HRESULT STDMETHODCALLTYPE RegisterWord(
3235         LPWSTR szReading,
3236         DWORD dwStyle,
3237         LPWSTR szString) = 0;
3238 
3239     virtual HRESULT STDMETHODCALLTYPE UnregisterWord(
3240         LPWSTR szReading,
3241         DWORD dwStyle,
3242         LPWSTR szString) = 0;
3243 
3244     virtual HRESULT STDMETHODCALLTYPE GetRegisterWordStyle(
3245         UINT nItem,
3246         STYLEBUFW *pStyleBuf,
3247         UINT *puBufSize) = 0;
3248 
3249     virtual HRESULT STDMETHODCALLTYPE EnumRegisterWord(
3250         LPWSTR szReading,
3251         DWORD dwStyle,
3252         LPWSTR szRegister,
3253         LPVOID pData,
3254         IEnumRegisterWordW **ppEnum) = 0;
3255 
3256     virtual HRESULT STDMETHODCALLTYPE GetCodePageA(
3257         UINT *uCodePage) = 0;
3258 
3259     virtual HRESULT STDMETHODCALLTYPE GetLangId(
3260         LANGID *plid) = 0;
3261 
3262 };
3263 #ifdef __CRT_UUID_DECL
3264 __CRT_UUID_DECL(IActiveIME, 0x6fe20962, 0xd077, 0x11d0, 0x8f,0xe7, 0x00,0xaa,0x00,0x6b,0xcc,0x59)
3265 #endif
3266 #else
3267 typedef struct IActiveIMEVtbl {
3268     BEGIN_INTERFACE
3269 
3270     /*** IUnknown methods ***/
3271     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3272         IActiveIME *This,
3273         REFIID riid,
3274         void **ppvObject);
3275 
3276     ULONG (STDMETHODCALLTYPE *AddRef)(
3277         IActiveIME *This);
3278 
3279     ULONG (STDMETHODCALLTYPE *Release)(
3280         IActiveIME *This);
3281 
3282     /*** IActiveIME methods ***/
3283     HRESULT (STDMETHODCALLTYPE *Inquire)(
3284         IActiveIME *This,
3285         DWORD dwSystemInfoFlags,
3286         IMEINFO *pIMEInfo,
3287         LPWSTR szWndClass,
3288         DWORD *pdwPrivate);
3289 
3290     HRESULT (STDMETHODCALLTYPE *ConversionList)(
3291         IActiveIME *This,
3292         HIMC hIMC,
3293         LPWSTR szSource,
3294         UINT uFlag,
3295         UINT uBufLen,
3296         CANDIDATELIST *pDest,
3297         UINT *puCopied);
3298 
3299     HRESULT (STDMETHODCALLTYPE *Configure)(
3300         IActiveIME *This,
3301         HKL hKL,
3302         HWND hWnd,
3303         DWORD dwMode,
3304         REGISTERWORDW *pRegisterWord);
3305 
3306     HRESULT (STDMETHODCALLTYPE *Destroy)(
3307         IActiveIME *This,
3308         UINT uReserved);
3309 
3310     HRESULT (STDMETHODCALLTYPE *Escape)(
3311         IActiveIME *This,
3312         HIMC hIMC,
3313         UINT uEscape,
3314         void *pData,
3315         LRESULT *plResult);
3316 
3317     HRESULT (STDMETHODCALLTYPE *SetActiveContext)(
3318         IActiveIME *This,
3319         HIMC hIMC,
3320         WINBOOL fFlag);
3321 
3322     HRESULT (STDMETHODCALLTYPE *ProcessKey)(
3323         IActiveIME *This,
3324         HIMC hIMC,
3325         UINT uVirKey,
3326         DWORD lParam,
3327         BYTE *pbKeyState);
3328 
3329     HRESULT (STDMETHODCALLTYPE *Notify)(
3330         IActiveIME *This,
3331         HIMC hIMC,
3332         DWORD dwAction,
3333         DWORD dwIndex,
3334         DWORD dwValue);
3335 
3336     HRESULT (STDMETHODCALLTYPE *Select)(
3337         IActiveIME *This,
3338         HIMC hIMC,
3339         WINBOOL fSelect);
3340 
3341     HRESULT (STDMETHODCALLTYPE *SetCompositionString)(
3342         IActiveIME *This,
3343         HIMC hIMC,
3344         DWORD dwIndex,
3345         void *pComp,
3346         DWORD dwCompLen,
3347         void *pRead,
3348         DWORD dwReadLen);
3349 
3350     HRESULT (STDMETHODCALLTYPE *ToAsciiEx)(
3351         IActiveIME *This,
3352         UINT uVirKey,
3353         UINT uScanCode,
3354         BYTE *pbKeyState,
3355         UINT fuState,
3356         HIMC hIMC,
3357         DWORD *pdwTransBuf,
3358         UINT *puSize);
3359 
3360     HRESULT (STDMETHODCALLTYPE *RegisterWord)(
3361         IActiveIME *This,
3362         LPWSTR szReading,
3363         DWORD dwStyle,
3364         LPWSTR szString);
3365 
3366     HRESULT (STDMETHODCALLTYPE *UnregisterWord)(
3367         IActiveIME *This,
3368         LPWSTR szReading,
3369         DWORD dwStyle,
3370         LPWSTR szString);
3371 
3372     HRESULT (STDMETHODCALLTYPE *GetRegisterWordStyle)(
3373         IActiveIME *This,
3374         UINT nItem,
3375         STYLEBUFW *pStyleBuf,
3376         UINT *puBufSize);
3377 
3378     HRESULT (STDMETHODCALLTYPE *EnumRegisterWord)(
3379         IActiveIME *This,
3380         LPWSTR szReading,
3381         DWORD dwStyle,
3382         LPWSTR szRegister,
3383         LPVOID pData,
3384         IEnumRegisterWordW **ppEnum);
3385 
3386     HRESULT (STDMETHODCALLTYPE *GetCodePageA)(
3387         IActiveIME *This,
3388         UINT *uCodePage);
3389 
3390     HRESULT (STDMETHODCALLTYPE *GetLangId)(
3391         IActiveIME *This,
3392         LANGID *plid);
3393 
3394     END_INTERFACE
3395 } IActiveIMEVtbl;
3396 
3397 interface IActiveIME {
3398     CONST_VTBL IActiveIMEVtbl* lpVtbl;
3399 };
3400 
3401 #ifdef COBJMACROS
3402 #ifndef WIDL_C_INLINE_WRAPPERS
3403 /*** IUnknown methods ***/
3404 #define IActiveIME_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3405 #define IActiveIME_AddRef(This) (This)->lpVtbl->AddRef(This)
3406 #define IActiveIME_Release(This) (This)->lpVtbl->Release(This)
3407 /*** IActiveIME methods ***/
3408 #define IActiveIME_Inquire(This,dwSystemInfoFlags,pIMEInfo,szWndClass,pdwPrivate) (This)->lpVtbl->Inquire(This,dwSystemInfoFlags,pIMEInfo,szWndClass,pdwPrivate)
3409 #define IActiveIME_ConversionList(This,hIMC,szSource,uFlag,uBufLen,pDest,puCopied) (This)->lpVtbl->ConversionList(This,hIMC,szSource,uFlag,uBufLen,pDest,puCopied)
3410 #define IActiveIME_Configure(This,hKL,hWnd,dwMode,pRegisterWord) (This)->lpVtbl->Configure(This,hKL,hWnd,dwMode,pRegisterWord)
3411 #define IActiveIME_Destroy(This,uReserved) (This)->lpVtbl->Destroy(This,uReserved)
3412 #define IActiveIME_Escape(This,hIMC,uEscape,pData,plResult) (This)->lpVtbl->Escape(This,hIMC,uEscape,pData,plResult)
3413 #define IActiveIME_SetActiveContext(This,hIMC,fFlag) (This)->lpVtbl->SetActiveContext(This,hIMC,fFlag)
3414 #define IActiveIME_ProcessKey(This,hIMC,uVirKey,lParam,pbKeyState) (This)->lpVtbl->ProcessKey(This,hIMC,uVirKey,lParam,pbKeyState)
3415 #define IActiveIME_Notify(This,hIMC,dwAction,dwIndex,dwValue) (This)->lpVtbl->Notify(This,hIMC,dwAction,dwIndex,dwValue)
3416 #define IActiveIME_Select(This,hIMC,fSelect) (This)->lpVtbl->Select(This,hIMC,fSelect)
3417 #define IActiveIME_SetCompositionString(This,hIMC,dwIndex,pComp,dwCompLen,pRead,dwReadLen) (This)->lpVtbl->SetCompositionString(This,hIMC,dwIndex,pComp,dwCompLen,pRead,dwReadLen)
3418 #define IActiveIME_ToAsciiEx(This,uVirKey,uScanCode,pbKeyState,fuState,hIMC,pdwTransBuf,puSize) (This)->lpVtbl->ToAsciiEx(This,uVirKey,uScanCode,pbKeyState,fuState,hIMC,pdwTransBuf,puSize)
3419 #define IActiveIME_RegisterWord(This,szReading,dwStyle,szString) (This)->lpVtbl->RegisterWord(This,szReading,dwStyle,szString)
3420 #define IActiveIME_UnregisterWord(This,szReading,dwStyle,szString) (This)->lpVtbl->UnregisterWord(This,szReading,dwStyle,szString)
3421 #define IActiveIME_GetRegisterWordStyle(This,nItem,pStyleBuf,puBufSize) (This)->lpVtbl->GetRegisterWordStyle(This,nItem,pStyleBuf,puBufSize)
3422 #define IActiveIME_EnumRegisterWord(This,szReading,dwStyle,szRegister,pData,ppEnum) (This)->lpVtbl->EnumRegisterWord(This,szReading,dwStyle,szRegister,pData,ppEnum)
3423 #define IActiveIME_GetCodePageA(This,uCodePage) (This)->lpVtbl->GetCodePageA(This,uCodePage)
3424 #define IActiveIME_GetLangId(This,plid) (This)->lpVtbl->GetLangId(This,plid)
3425 #else
3426 /*** IUnknown methods ***/
3427 static FORCEINLINE HRESULT IActiveIME_QueryInterface(IActiveIME* This,REFIID riid,void **ppvObject) {
3428     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3429 }
3430 static FORCEINLINE ULONG IActiveIME_AddRef(IActiveIME* This) {
3431     return This->lpVtbl->AddRef(This);
3432 }
3433 static FORCEINLINE ULONG IActiveIME_Release(IActiveIME* This) {
3434     return This->lpVtbl->Release(This);
3435 }
3436 /*** IActiveIME methods ***/
3437 static FORCEINLINE HRESULT IActiveIME_Inquire(IActiveIME* This,DWORD dwSystemInfoFlags,IMEINFO *pIMEInfo,LPWSTR szWndClass,DWORD *pdwPrivate) {
3438     return This->lpVtbl->Inquire(This,dwSystemInfoFlags,pIMEInfo,szWndClass,pdwPrivate);
3439 }
3440 static FORCEINLINE HRESULT IActiveIME_ConversionList(IActiveIME* This,HIMC hIMC,LPWSTR szSource,UINT uFlag,UINT uBufLen,CANDIDATELIST *pDest,UINT *puCopied) {
3441     return This->lpVtbl->ConversionList(This,hIMC,szSource,uFlag,uBufLen,pDest,puCopied);
3442 }
3443 static FORCEINLINE HRESULT IActiveIME_Configure(IActiveIME* This,HKL hKL,HWND hWnd,DWORD dwMode,REGISTERWORDW *pRegisterWord) {
3444     return This->lpVtbl->Configure(This,hKL,hWnd,dwMode,pRegisterWord);
3445 }
3446 static FORCEINLINE HRESULT IActiveIME_Destroy(IActiveIME* This,UINT uReserved) {
3447     return This->lpVtbl->Destroy(This,uReserved);
3448 }
3449 static FORCEINLINE HRESULT IActiveIME_Escape(IActiveIME* This,HIMC hIMC,UINT uEscape,void *pData,LRESULT *plResult) {
3450     return This->lpVtbl->Escape(This,hIMC,uEscape,pData,plResult);
3451 }
3452 static FORCEINLINE HRESULT IActiveIME_SetActiveContext(IActiveIME* This,HIMC hIMC,WINBOOL fFlag) {
3453     return This->lpVtbl->SetActiveContext(This,hIMC,fFlag);
3454 }
3455 static FORCEINLINE HRESULT IActiveIME_ProcessKey(IActiveIME* This,HIMC hIMC,UINT uVirKey,DWORD lParam,BYTE *pbKeyState) {
3456     return This->lpVtbl->ProcessKey(This,hIMC,uVirKey,lParam,pbKeyState);
3457 }
3458 static FORCEINLINE HRESULT IActiveIME_Notify(IActiveIME* This,HIMC hIMC,DWORD dwAction,DWORD dwIndex,DWORD dwValue) {
3459     return This->lpVtbl->Notify(This,hIMC,dwAction,dwIndex,dwValue);
3460 }
3461 static FORCEINLINE HRESULT IActiveIME_Select(IActiveIME* This,HIMC hIMC,WINBOOL fSelect) {
3462     return This->lpVtbl->Select(This,hIMC,fSelect);
3463 }
3464 static FORCEINLINE HRESULT IActiveIME_SetCompositionString(IActiveIME* This,HIMC hIMC,DWORD dwIndex,void *pComp,DWORD dwCompLen,void *pRead,DWORD dwReadLen) {
3465     return This->lpVtbl->SetCompositionString(This,hIMC,dwIndex,pComp,dwCompLen,pRead,dwReadLen);
3466 }
3467 static FORCEINLINE HRESULT IActiveIME_ToAsciiEx(IActiveIME* This,UINT uVirKey,UINT uScanCode,BYTE *pbKeyState,UINT fuState,HIMC hIMC,DWORD *pdwTransBuf,UINT *puSize) {
3468     return This->lpVtbl->ToAsciiEx(This,uVirKey,uScanCode,pbKeyState,fuState,hIMC,pdwTransBuf,puSize);
3469 }
3470 static FORCEINLINE HRESULT IActiveIME_RegisterWord(IActiveIME* This,LPWSTR szReading,DWORD dwStyle,LPWSTR szString) {
3471     return This->lpVtbl->RegisterWord(This,szReading,dwStyle,szString);
3472 }
3473 static FORCEINLINE HRESULT IActiveIME_UnregisterWord(IActiveIME* This,LPWSTR szReading,DWORD dwStyle,LPWSTR szString) {
3474     return This->lpVtbl->UnregisterWord(This,szReading,dwStyle,szString);
3475 }
3476 static FORCEINLINE HRESULT IActiveIME_GetRegisterWordStyle(IActiveIME* This,UINT nItem,STYLEBUFW *pStyleBuf,UINT *puBufSize) {
3477     return This->lpVtbl->GetRegisterWordStyle(This,nItem,pStyleBuf,puBufSize);
3478 }
3479 static FORCEINLINE HRESULT IActiveIME_EnumRegisterWord(IActiveIME* This,LPWSTR szReading,DWORD dwStyle,LPWSTR szRegister,LPVOID pData,IEnumRegisterWordW **ppEnum) {
3480     return This->lpVtbl->EnumRegisterWord(This,szReading,dwStyle,szRegister,pData,ppEnum);
3481 }
3482 static FORCEINLINE HRESULT IActiveIME_GetCodePageA(IActiveIME* This,UINT *uCodePage) {
3483     return This->lpVtbl->GetCodePageA(This,uCodePage);
3484 }
3485 static FORCEINLINE HRESULT IActiveIME_GetLangId(IActiveIME* This,LANGID *plid) {
3486     return This->lpVtbl->GetLangId(This,plid);
3487 }
3488 #endif
3489 #endif
3490 
3491 #endif
3492 
3493 
3494 #endif  /* __IActiveIME_INTERFACE_DEFINED__ */
3495 
3496 /*****************************************************************************
3497  * IActiveIME2 interface
3498  */
3499 #ifndef __IActiveIME2_INTERFACE_DEFINED__
3500 #define __IActiveIME2_INTERFACE_DEFINED__
3501 
3502 DEFINE_GUID(IID_IActiveIME2, 0xe1c4bf0e, 0x2d53, 0x11d2, 0x93,0xe1, 0x00,0x60,0xb0,0x67,0xb8,0x6e);
3503 #if defined(__cplusplus) && !defined(CINTERFACE)
3504 MIDL_INTERFACE("e1c4bf0e-2d53-11d2-93e1-0060b067b86e")
3505 IActiveIME2 : public IActiveIME
3506 {
3507     virtual HRESULT STDMETHODCALLTYPE Sleep(
3508         ) = 0;
3509 
3510     virtual HRESULT STDMETHODCALLTYPE Unsleep(
3511         WINBOOL fDead) = 0;
3512 
3513 };
3514 #ifdef __CRT_UUID_DECL
3515 __CRT_UUID_DECL(IActiveIME2, 0xe1c4bf0e, 0x2d53, 0x11d2, 0x93,0xe1, 0x00,0x60,0xb0,0x67,0xb8,0x6e)
3516 #endif
3517 #else
3518 typedef struct IActiveIME2Vtbl {
3519     BEGIN_INTERFACE
3520 
3521     /*** IUnknown methods ***/
3522     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3523         IActiveIME2 *This,
3524         REFIID riid,
3525         void **ppvObject);
3526 
3527     ULONG (STDMETHODCALLTYPE *AddRef)(
3528         IActiveIME2 *This);
3529 
3530     ULONG (STDMETHODCALLTYPE *Release)(
3531         IActiveIME2 *This);
3532 
3533     /*** IActiveIME methods ***/
3534     HRESULT (STDMETHODCALLTYPE *Inquire)(
3535         IActiveIME2 *This,
3536         DWORD dwSystemInfoFlags,
3537         IMEINFO *pIMEInfo,
3538         LPWSTR szWndClass,
3539         DWORD *pdwPrivate);
3540 
3541     HRESULT (STDMETHODCALLTYPE *ConversionList)(
3542         IActiveIME2 *This,
3543         HIMC hIMC,
3544         LPWSTR szSource,
3545         UINT uFlag,
3546         UINT uBufLen,
3547         CANDIDATELIST *pDest,
3548         UINT *puCopied);
3549 
3550     HRESULT (STDMETHODCALLTYPE *Configure)(
3551         IActiveIME2 *This,
3552         HKL hKL,
3553         HWND hWnd,
3554         DWORD dwMode,
3555         REGISTERWORDW *pRegisterWord);
3556 
3557     HRESULT (STDMETHODCALLTYPE *Destroy)(
3558         IActiveIME2 *This,
3559         UINT uReserved);
3560 
3561     HRESULT (STDMETHODCALLTYPE *Escape)(
3562         IActiveIME2 *This,
3563         HIMC hIMC,
3564         UINT uEscape,
3565         void *pData,
3566         LRESULT *plResult);
3567 
3568     HRESULT (STDMETHODCALLTYPE *SetActiveContext)(
3569         IActiveIME2 *This,
3570         HIMC hIMC,
3571         WINBOOL fFlag);
3572 
3573     HRESULT (STDMETHODCALLTYPE *ProcessKey)(
3574         IActiveIME2 *This,
3575         HIMC hIMC,
3576         UINT uVirKey,
3577         DWORD lParam,
3578         BYTE *pbKeyState);
3579 
3580     HRESULT (STDMETHODCALLTYPE *Notify)(
3581         IActiveIME2 *This,
3582         HIMC hIMC,
3583         DWORD dwAction,
3584         DWORD dwIndex,
3585         DWORD dwValue);
3586 
3587     HRESULT (STDMETHODCALLTYPE *Select)(
3588         IActiveIME2 *This,
3589         HIMC hIMC,
3590         WINBOOL fSelect);
3591 
3592     HRESULT (STDMETHODCALLTYPE *SetCompositionString)(
3593         IActiveIME2 *This,
3594         HIMC hIMC,
3595         DWORD dwIndex,
3596         void *pComp,
3597         DWORD dwCompLen,
3598         void *pRead,
3599         DWORD dwReadLen);
3600 
3601     HRESULT (STDMETHODCALLTYPE *ToAsciiEx)(
3602         IActiveIME2 *This,
3603         UINT uVirKey,
3604         UINT uScanCode,
3605         BYTE *pbKeyState,
3606         UINT fuState,
3607         HIMC hIMC,
3608         DWORD *pdwTransBuf,
3609         UINT *puSize);
3610 
3611     HRESULT (STDMETHODCALLTYPE *RegisterWord)(
3612         IActiveIME2 *This,
3613         LPWSTR szReading,
3614         DWORD dwStyle,
3615         LPWSTR szString);
3616 
3617     HRESULT (STDMETHODCALLTYPE *UnregisterWord)(
3618         IActiveIME2 *This,
3619         LPWSTR szReading,
3620         DWORD dwStyle,
3621         LPWSTR szString);
3622 
3623     HRESULT (STDMETHODCALLTYPE *GetRegisterWordStyle)(
3624         IActiveIME2 *This,
3625         UINT nItem,
3626         STYLEBUFW *pStyleBuf,
3627         UINT *puBufSize);
3628 
3629     HRESULT (STDMETHODCALLTYPE *EnumRegisterWord)(
3630         IActiveIME2 *This,
3631         LPWSTR szReading,
3632         DWORD dwStyle,
3633         LPWSTR szRegister,
3634         LPVOID pData,
3635         IEnumRegisterWordW **ppEnum);
3636 
3637     HRESULT (STDMETHODCALLTYPE *GetCodePageA)(
3638         IActiveIME2 *This,
3639         UINT *uCodePage);
3640 
3641     HRESULT (STDMETHODCALLTYPE *GetLangId)(
3642         IActiveIME2 *This,
3643         LANGID *plid);
3644 
3645     /*** IActiveIME2 methods ***/
3646     HRESULT (STDMETHODCALLTYPE *Sleep)(
3647         IActiveIME2 *This);
3648 
3649     HRESULT (STDMETHODCALLTYPE *Unsleep)(
3650         IActiveIME2 *This,
3651         WINBOOL fDead);
3652 
3653     END_INTERFACE
3654 } IActiveIME2Vtbl;
3655 
3656 interface IActiveIME2 {
3657     CONST_VTBL IActiveIME2Vtbl* lpVtbl;
3658 };
3659 
3660 #ifdef COBJMACROS
3661 #ifndef WIDL_C_INLINE_WRAPPERS
3662 /*** IUnknown methods ***/
3663 #define IActiveIME2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3664 #define IActiveIME2_AddRef(This) (This)->lpVtbl->AddRef(This)
3665 #define IActiveIME2_Release(This) (This)->lpVtbl->Release(This)
3666 /*** IActiveIME methods ***/
3667 #define IActiveIME2_Inquire(This,dwSystemInfoFlags,pIMEInfo,szWndClass,pdwPrivate) (This)->lpVtbl->Inquire(This,dwSystemInfoFlags,pIMEInfo,szWndClass,pdwPrivate)
3668 #define IActiveIME2_ConversionList(This,hIMC,szSource,uFlag,uBufLen,pDest,puCopied) (This)->lpVtbl->ConversionList(This,hIMC,szSource,uFlag,uBufLen,pDest,puCopied)
3669 #define IActiveIME2_Configure(This,hKL,hWnd,dwMode,pRegisterWord) (This)->lpVtbl->Configure(This,hKL,hWnd,dwMode,pRegisterWord)
3670 #define IActiveIME2_Destroy(This,uReserved) (This)->lpVtbl->Destroy(This,uReserved)
3671 #define IActiveIME2_Escape(This,hIMC,uEscape,pData,plResult) (This)->lpVtbl->Escape(This,hIMC,uEscape,pData,plResult)
3672 #define IActiveIME2_SetActiveContext(This,hIMC,fFlag) (This)->lpVtbl->SetActiveContext(This,hIMC,fFlag)
3673 #define IActiveIME2_ProcessKey(This,hIMC,uVirKey,lParam,pbKeyState) (This)->lpVtbl->ProcessKey(This,hIMC,uVirKey,lParam,pbKeyState)
3674 #define IActiveIME2_Notify(This,hIMC,dwAction,dwIndex,dwValue) (This)->lpVtbl->Notify(This,hIMC,dwAction,dwIndex,dwValue)
3675 #define IActiveIME2_Select(This,hIMC,fSelect) (This)->lpVtbl->Select(This,hIMC,fSelect)
3676 #define IActiveIME2_SetCompositionString(This,hIMC,dwIndex,pComp,dwCompLen,pRead,dwReadLen) (This)->lpVtbl->SetCompositionString(This,hIMC,dwIndex,pComp,dwCompLen,pRead,dwReadLen)
3677 #define IActiveIME2_ToAsciiEx(This,uVirKey,uScanCode,pbKeyState,fuState,hIMC,pdwTransBuf,puSize) (This)->lpVtbl->ToAsciiEx(This,uVirKey,uScanCode,pbKeyState,fuState,hIMC,pdwTransBuf,puSize)
3678 #define IActiveIME2_RegisterWord(This,szReading,dwStyle,szString) (This)->lpVtbl->RegisterWord(This,szReading,dwStyle,szString)
3679 #define IActiveIME2_UnregisterWord(This,szReading,dwStyle,szString) (This)->lpVtbl->UnregisterWord(This,szReading,dwStyle,szString)
3680 #define IActiveIME2_GetRegisterWordStyle(This,nItem,pStyleBuf,puBufSize) (This)->lpVtbl->GetRegisterWordStyle(This,nItem,pStyleBuf,puBufSize)
3681 #define IActiveIME2_EnumRegisterWord(This,szReading,dwStyle,szRegister,pData,ppEnum) (This)->lpVtbl->EnumRegisterWord(This,szReading,dwStyle,szRegister,pData,ppEnum)
3682 #define IActiveIME2_GetCodePageA(This,uCodePage) (This)->lpVtbl->GetCodePageA(This,uCodePage)
3683 #define IActiveIME2_GetLangId(This,plid) (This)->lpVtbl->GetLangId(This,plid)
3684 /*** IActiveIME2 methods ***/
3685 #define IActiveIME2_Sleep(This) (This)->lpVtbl->Sleep(This)
3686 #define IActiveIME2_Unsleep(This,fDead) (This)->lpVtbl->Unsleep(This,fDead)
3687 #else
3688 /*** IUnknown methods ***/
3689 static FORCEINLINE HRESULT IActiveIME2_QueryInterface(IActiveIME2* This,REFIID riid,void **ppvObject) {
3690     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3691 }
3692 static FORCEINLINE ULONG IActiveIME2_AddRef(IActiveIME2* This) {
3693     return This->lpVtbl->AddRef(This);
3694 }
3695 static FORCEINLINE ULONG IActiveIME2_Release(IActiveIME2* This) {
3696     return This->lpVtbl->Release(This);
3697 }
3698 /*** IActiveIME methods ***/
3699 static FORCEINLINE HRESULT IActiveIME2_Inquire(IActiveIME2* This,DWORD dwSystemInfoFlags,IMEINFO *pIMEInfo,LPWSTR szWndClass,DWORD *pdwPrivate) {
3700     return This->lpVtbl->Inquire(This,dwSystemInfoFlags,pIMEInfo,szWndClass,pdwPrivate);
3701 }
3702 static FORCEINLINE HRESULT IActiveIME2_ConversionList(IActiveIME2* This,HIMC hIMC,LPWSTR szSource,UINT uFlag,UINT uBufLen,CANDIDATELIST *pDest,UINT *puCopied) {
3703     return This->lpVtbl->ConversionList(This,hIMC,szSource,uFlag,uBufLen,pDest,puCopied);
3704 }
3705 static FORCEINLINE HRESULT IActiveIME2_Configure(IActiveIME2* This,HKL hKL,HWND hWnd,DWORD dwMode,REGISTERWORDW *pRegisterWord) {
3706     return This->lpVtbl->Configure(This,hKL,hWnd,dwMode,pRegisterWord);
3707 }
3708 static FORCEINLINE HRESULT IActiveIME2_Destroy(IActiveIME2* This,UINT uReserved) {
3709     return This->lpVtbl->Destroy(This,uReserved);
3710 }
3711 static FORCEINLINE HRESULT IActiveIME2_Escape(IActiveIME2* This,HIMC hIMC,UINT uEscape,void *pData,LRESULT *plResult) {
3712     return This->lpVtbl->Escape(This,hIMC,uEscape,pData,plResult);
3713 }
3714 static FORCEINLINE HRESULT IActiveIME2_SetActiveContext(IActiveIME2* This,HIMC hIMC,WINBOOL fFlag) {
3715     return This->lpVtbl->SetActiveContext(This,hIMC,fFlag);
3716 }
3717 static FORCEINLINE HRESULT IActiveIME2_ProcessKey(IActiveIME2* This,HIMC hIMC,UINT uVirKey,DWORD lParam,BYTE *pbKeyState) {
3718     return This->lpVtbl->ProcessKey(This,hIMC,uVirKey,lParam,pbKeyState);
3719 }
3720 static FORCEINLINE HRESULT IActiveIME2_Notify(IActiveIME2* This,HIMC hIMC,DWORD dwAction,DWORD dwIndex,DWORD dwValue) {
3721     return This->lpVtbl->Notify(This,hIMC,dwAction,dwIndex,dwValue);
3722 }
3723 static FORCEINLINE HRESULT IActiveIME2_Select(IActiveIME2* This,HIMC hIMC,WINBOOL fSelect) {
3724     return This->lpVtbl->Select(This,hIMC,fSelect);
3725 }
3726 static FORCEINLINE HRESULT IActiveIME2_SetCompositionString(IActiveIME2* This,HIMC hIMC,DWORD dwIndex,void *pComp,DWORD dwCompLen,void *pRead,DWORD dwReadLen) {
3727     return This->lpVtbl->SetCompositionString(This,hIMC,dwIndex,pComp,dwCompLen,pRead,dwReadLen);
3728 }
3729 static FORCEINLINE HRESULT IActiveIME2_ToAsciiEx(IActiveIME2* This,UINT uVirKey,UINT uScanCode,BYTE *pbKeyState,UINT fuState,HIMC hIMC,DWORD *pdwTransBuf,UINT *puSize) {
3730     return This->lpVtbl->ToAsciiEx(This,uVirKey,uScanCode,pbKeyState,fuState,hIMC,pdwTransBuf,puSize);
3731 }
3732 static FORCEINLINE HRESULT IActiveIME2_RegisterWord(IActiveIME2* This,LPWSTR szReading,DWORD dwStyle,LPWSTR szString) {
3733     return This->lpVtbl->RegisterWord(This,szReading,dwStyle,szString);
3734 }
3735 static FORCEINLINE HRESULT IActiveIME2_UnregisterWord(IActiveIME2* This,LPWSTR szReading,DWORD dwStyle,LPWSTR szString) {
3736     return This->lpVtbl->UnregisterWord(This,szReading,dwStyle,szString);
3737 }
3738 static FORCEINLINE HRESULT IActiveIME2_GetRegisterWordStyle(IActiveIME2* This,UINT nItem,STYLEBUFW *pStyleBuf,UINT *puBufSize) {
3739     return This->lpVtbl->GetRegisterWordStyle(This,nItem,pStyleBuf,puBufSize);
3740 }
3741 static FORCEINLINE HRESULT IActiveIME2_EnumRegisterWord(IActiveIME2* This,LPWSTR szReading,DWORD dwStyle,LPWSTR szRegister,LPVOID pData,IEnumRegisterWordW **ppEnum) {
3742     return This->lpVtbl->EnumRegisterWord(This,szReading,dwStyle,szRegister,pData,ppEnum);
3743 }
3744 static FORCEINLINE HRESULT IActiveIME2_GetCodePageA(IActiveIME2* This,UINT *uCodePage) {
3745     return This->lpVtbl->GetCodePageA(This,uCodePage);
3746 }
3747 static FORCEINLINE HRESULT IActiveIME2_GetLangId(IActiveIME2* This,LANGID *plid) {
3748     return This->lpVtbl->GetLangId(This,plid);
3749 }
3750 /*** IActiveIME2 methods ***/
3751 static FORCEINLINE HRESULT IActiveIME2_Sleep(IActiveIME2* This) {
3752     return This->lpVtbl->Sleep(This);
3753 }
3754 static FORCEINLINE HRESULT IActiveIME2_Unsleep(IActiveIME2* This,WINBOOL fDead) {
3755     return This->lpVtbl->Unsleep(This,fDead);
3756 }
3757 #endif
3758 #endif
3759 
3760 #endif
3761 
3762 
3763 #endif  /* __IActiveIME2_INTERFACE_DEFINED__ */
3764 
3765 /*****************************************************************************
3766  * IEnumRegisterWordA interface
3767  */
3768 #ifndef __IEnumRegisterWordA_INTERFACE_DEFINED__
3769 #define __IEnumRegisterWordA_INTERFACE_DEFINED__
3770 
3771 DEFINE_GUID(IID_IEnumRegisterWordA, 0x08c03412, 0xf96b, 0x11d0, 0xa4,0x75, 0x00,0xaa,0x00,0x6b,0xcc,0x59);
3772 #if defined(__cplusplus) && !defined(CINTERFACE)
3773 MIDL_INTERFACE("08c03412-f96b-11d0-a475-00aa006bcc59")
3774 IEnumRegisterWordA : public IUnknown
3775 {
3776     virtual HRESULT STDMETHODCALLTYPE Clone(
3777         IEnumRegisterWordA **ppEnum) = 0;
3778 
3779     virtual HRESULT STDMETHODCALLTYPE Next(
3780         ULONG ulCount,
3781         REGISTERWORDA *rgRegisterWord,
3782         ULONG *pcFetched) = 0;
3783 
3784     virtual HRESULT STDMETHODCALLTYPE Reset(
3785         ) = 0;
3786 
3787     virtual HRESULT STDMETHODCALLTYPE Skip(
3788         ULONG ulCount) = 0;
3789 
3790 };
3791 #ifdef __CRT_UUID_DECL
3792 __CRT_UUID_DECL(IEnumRegisterWordA, 0x08c03412, 0xf96b, 0x11d0, 0xa4,0x75, 0x00,0xaa,0x00,0x6b,0xcc,0x59)
3793 #endif
3794 #else
3795 typedef struct IEnumRegisterWordAVtbl {
3796     BEGIN_INTERFACE
3797 
3798     /*** IUnknown methods ***/
3799     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3800         IEnumRegisterWordA *This,
3801         REFIID riid,
3802         void **ppvObject);
3803 
3804     ULONG (STDMETHODCALLTYPE *AddRef)(
3805         IEnumRegisterWordA *This);
3806 
3807     ULONG (STDMETHODCALLTYPE *Release)(
3808         IEnumRegisterWordA *This);
3809 
3810     /*** IEnumRegisterWordA methods ***/
3811     HRESULT (STDMETHODCALLTYPE *Clone)(
3812         IEnumRegisterWordA *This,
3813         IEnumRegisterWordA **ppEnum);
3814 
3815     HRESULT (STDMETHODCALLTYPE *Next)(
3816         IEnumRegisterWordA *This,
3817         ULONG ulCount,
3818         REGISTERWORDA *rgRegisterWord,
3819         ULONG *pcFetched);
3820 
3821     HRESULT (STDMETHODCALLTYPE *Reset)(
3822         IEnumRegisterWordA *This);
3823 
3824     HRESULT (STDMETHODCALLTYPE *Skip)(
3825         IEnumRegisterWordA *This,
3826         ULONG ulCount);
3827 
3828     END_INTERFACE
3829 } IEnumRegisterWordAVtbl;
3830 
3831 interface IEnumRegisterWordA {
3832     CONST_VTBL IEnumRegisterWordAVtbl* lpVtbl;
3833 };
3834 
3835 #ifdef COBJMACROS
3836 #ifndef WIDL_C_INLINE_WRAPPERS
3837 /*** IUnknown methods ***/
3838 #define IEnumRegisterWordA_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3839 #define IEnumRegisterWordA_AddRef(This) (This)->lpVtbl->AddRef(This)
3840 #define IEnumRegisterWordA_Release(This) (This)->lpVtbl->Release(This)
3841 /*** IEnumRegisterWordA methods ***/
3842 #define IEnumRegisterWordA_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
3843 #define IEnumRegisterWordA_Next(This,ulCount,rgRegisterWord,pcFetched) (This)->lpVtbl->Next(This,ulCount,rgRegisterWord,pcFetched)
3844 #define IEnumRegisterWordA_Reset(This) (This)->lpVtbl->Reset(This)
3845 #define IEnumRegisterWordA_Skip(This,ulCount) (This)->lpVtbl->Skip(This,ulCount)
3846 #else
3847 /*** IUnknown methods ***/
3848 static FORCEINLINE HRESULT IEnumRegisterWordA_QueryInterface(IEnumRegisterWordA* This,REFIID riid,void **ppvObject) {
3849     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3850 }
3851 static FORCEINLINE ULONG IEnumRegisterWordA_AddRef(IEnumRegisterWordA* This) {
3852     return This->lpVtbl->AddRef(This);
3853 }
3854 static FORCEINLINE ULONG IEnumRegisterWordA_Release(IEnumRegisterWordA* This) {
3855     return This->lpVtbl->Release(This);
3856 }
3857 /*** IEnumRegisterWordA methods ***/
3858 static FORCEINLINE HRESULT IEnumRegisterWordA_Clone(IEnumRegisterWordA* This,IEnumRegisterWordA **ppEnum) {
3859     return This->lpVtbl->Clone(This,ppEnum);
3860 }
3861 static FORCEINLINE HRESULT IEnumRegisterWordA_Next(IEnumRegisterWordA* This,ULONG ulCount,REGISTERWORDA *rgRegisterWord,ULONG *pcFetched) {
3862     return This->lpVtbl->Next(This,ulCount,rgRegisterWord,pcFetched);
3863 }
3864 static FORCEINLINE HRESULT IEnumRegisterWordA_Reset(IEnumRegisterWordA* This) {
3865     return This->lpVtbl->Reset(This);
3866 }
3867 static FORCEINLINE HRESULT IEnumRegisterWordA_Skip(IEnumRegisterWordA* This,ULONG ulCount) {
3868     return This->lpVtbl->Skip(This,ulCount);
3869 }
3870 #endif
3871 #endif
3872 
3873 #endif
3874 
3875 
3876 #endif  /* __IEnumRegisterWordA_INTERFACE_DEFINED__ */
3877 
3878 /*****************************************************************************
3879  * IEnumRegisterWordW interface
3880  */
3881 #ifndef __IEnumRegisterWordW_INTERFACE_DEFINED__
3882 #define __IEnumRegisterWordW_INTERFACE_DEFINED__
3883 
3884 DEFINE_GUID(IID_IEnumRegisterWordW, 0x4955dd31, 0xb159, 0x11d0, 0x8f,0xcf, 0x00,0xaa,0x00,0x6b,0xcc,0x59);
3885 #if defined(__cplusplus) && !defined(CINTERFACE)
3886 MIDL_INTERFACE("4955dd31-b159-11d0-8fcf-00aa006bcc59")
3887 IEnumRegisterWordW : public IUnknown
3888 {
3889     virtual HRESULT STDMETHODCALLTYPE Clone(
3890         IEnumRegisterWordW **ppEnum) = 0;
3891 
3892     virtual HRESULT STDMETHODCALLTYPE Next(
3893         ULONG ulCount,
3894         REGISTERWORDW *rgRegisterWord,
3895         ULONG *pcFetched) = 0;
3896 
3897     virtual HRESULT STDMETHODCALLTYPE Reset(
3898         ) = 0;
3899 
3900     virtual HRESULT STDMETHODCALLTYPE Skip(
3901         ULONG ulCount) = 0;
3902 
3903 };
3904 #ifdef __CRT_UUID_DECL
3905 __CRT_UUID_DECL(IEnumRegisterWordW, 0x4955dd31, 0xb159, 0x11d0, 0x8f,0xcf, 0x00,0xaa,0x00,0x6b,0xcc,0x59)
3906 #endif
3907 #else
3908 typedef struct IEnumRegisterWordWVtbl {
3909     BEGIN_INTERFACE
3910 
3911     /*** IUnknown methods ***/
3912     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3913         IEnumRegisterWordW *This,
3914         REFIID riid,
3915         void **ppvObject);
3916 
3917     ULONG (STDMETHODCALLTYPE *AddRef)(
3918         IEnumRegisterWordW *This);
3919 
3920     ULONG (STDMETHODCALLTYPE *Release)(
3921         IEnumRegisterWordW *This);
3922 
3923     /*** IEnumRegisterWordW methods ***/
3924     HRESULT (STDMETHODCALLTYPE *Clone)(
3925         IEnumRegisterWordW *This,
3926         IEnumRegisterWordW **ppEnum);
3927 
3928     HRESULT (STDMETHODCALLTYPE *Next)(
3929         IEnumRegisterWordW *This,
3930         ULONG ulCount,
3931         REGISTERWORDW *rgRegisterWord,
3932         ULONG *pcFetched);
3933 
3934     HRESULT (STDMETHODCALLTYPE *Reset)(
3935         IEnumRegisterWordW *This);
3936 
3937     HRESULT (STDMETHODCALLTYPE *Skip)(
3938         IEnumRegisterWordW *This,
3939         ULONG ulCount);
3940 
3941     END_INTERFACE
3942 } IEnumRegisterWordWVtbl;
3943 
3944 interface IEnumRegisterWordW {
3945     CONST_VTBL IEnumRegisterWordWVtbl* lpVtbl;
3946 };
3947 
3948 #ifdef COBJMACROS
3949 #ifndef WIDL_C_INLINE_WRAPPERS
3950 /*** IUnknown methods ***/
3951 #define IEnumRegisterWordW_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3952 #define IEnumRegisterWordW_AddRef(This) (This)->lpVtbl->AddRef(This)
3953 #define IEnumRegisterWordW_Release(This) (This)->lpVtbl->Release(This)
3954 /*** IEnumRegisterWordW methods ***/
3955 #define IEnumRegisterWordW_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
3956 #define IEnumRegisterWordW_Next(This,ulCount,rgRegisterWord,pcFetched) (This)->lpVtbl->Next(This,ulCount,rgRegisterWord,pcFetched)
3957 #define IEnumRegisterWordW_Reset(This) (This)->lpVtbl->Reset(This)
3958 #define IEnumRegisterWordW_Skip(This,ulCount) (This)->lpVtbl->Skip(This,ulCount)
3959 #else
3960 /*** IUnknown methods ***/
3961 static FORCEINLINE HRESULT IEnumRegisterWordW_QueryInterface(IEnumRegisterWordW* This,REFIID riid,void **ppvObject) {
3962     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3963 }
3964 static FORCEINLINE ULONG IEnumRegisterWordW_AddRef(IEnumRegisterWordW* This) {
3965     return This->lpVtbl->AddRef(This);
3966 }
3967 static FORCEINLINE ULONG IEnumRegisterWordW_Release(IEnumRegisterWordW* This) {
3968     return This->lpVtbl->Release(This);
3969 }
3970 /*** IEnumRegisterWordW methods ***/
3971 static FORCEINLINE HRESULT IEnumRegisterWordW_Clone(IEnumRegisterWordW* This,IEnumRegisterWordW **ppEnum) {
3972     return This->lpVtbl->Clone(This,ppEnum);
3973 }
3974 static FORCEINLINE HRESULT IEnumRegisterWordW_Next(IEnumRegisterWordW* This,ULONG ulCount,REGISTERWORDW *rgRegisterWord,ULONG *pcFetched) {
3975     return This->lpVtbl->Next(This,ulCount,rgRegisterWord,pcFetched);
3976 }
3977 static FORCEINLINE HRESULT IEnumRegisterWordW_Reset(IEnumRegisterWordW* This) {
3978     return This->lpVtbl->Reset(This);
3979 }
3980 static FORCEINLINE HRESULT IEnumRegisterWordW_Skip(IEnumRegisterWordW* This,ULONG ulCount) {
3981     return This->lpVtbl->Skip(This,ulCount);
3982 }
3983 #endif
3984 #endif
3985 
3986 #endif
3987 
3988 
3989 #endif  /* __IEnumRegisterWordW_INTERFACE_DEFINED__ */
3990 
3991 /*****************************************************************************
3992  * CActiveIMM coclass
3993  */
3994 
3995 DEFINE_GUID(CLSID_CActiveIMM, 0x4955dd33, 0xb159, 0x11d0, 0x8f,0xcf, 0x00,0xaa,0x00,0x6b,0xcc,0x59);
3996 
3997 #ifdef __cplusplus
3998 class DECLSPEC_UUID("4955dd33-b159-11d0-8fcf-00aa006bcc59") CActiveIMM;
3999 #ifdef __CRT_UUID_DECL
4000 __CRT_UUID_DECL(CActiveIMM, 0x4955dd33, 0xb159, 0x11d0, 0x8f,0xcf, 0x00,0xaa,0x00,0x6b,0xcc,0x59)
4001 #endif
4002 #endif
4003 
4004 #endif
4005 /* Begin additional prototypes for all interfaces */
4006 
4007 ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
4008 unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
4009 unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
4010 void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
4011 ULONG           __RPC_USER HBITMAP_UserSize     (ULONG *, ULONG, HBITMAP *);
4012 unsigned char * __RPC_USER HBITMAP_UserMarshal  (ULONG *, unsigned char *, HBITMAP *);
4013 unsigned char * __RPC_USER HBITMAP_UserUnmarshal(ULONG *, unsigned char *, HBITMAP *);
4014 void            __RPC_USER HBITMAP_UserFree     (ULONG *, HBITMAP *);
4015 
4016 /* End additional prototypes */
4017 
4018 #ifdef __cplusplus
4019 }
4020 #endif
4021 
4022 #endif /* __dimm_h__ */
4023