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