1/*** Autogenerated by WIDL 10.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__
  23typedef interface IEnumInputContext IEnumInputContext;
  24#ifdef __cplusplus
  25interface IEnumInputContext;
  26#endif /* __cplusplus */
  27#endif
  28
  29#ifndef __IActiveIMMRegistrar_FWD_DEFINED__
  30#define __IActiveIMMRegistrar_FWD_DEFINED__
  31typedef interface IActiveIMMRegistrar IActiveIMMRegistrar;
  32#ifdef __cplusplus
  33interface IActiveIMMRegistrar;
  34#endif /* __cplusplus */
  35#endif
  36
  37#ifndef __IActiveIMMMessagePumpOwner_FWD_DEFINED__
  38#define __IActiveIMMMessagePumpOwner_FWD_DEFINED__
  39typedef interface IActiveIMMMessagePumpOwner IActiveIMMMessagePumpOwner;
  40#ifdef __cplusplus
  41interface IActiveIMMMessagePumpOwner;
  42#endif /* __cplusplus */
  43#endif
  44
  45#ifndef __IActiveIMMApp_FWD_DEFINED__
  46#define __IActiveIMMApp_FWD_DEFINED__
  47typedef interface IActiveIMMApp IActiveIMMApp;
  48#ifdef __cplusplus
  49interface IActiveIMMApp;
  50#endif /* __cplusplus */
  51#endif
  52
  53#ifndef __IActiveIMMIME_FWD_DEFINED__
  54#define __IActiveIMMIME_FWD_DEFINED__
  55typedef interface IActiveIMMIME IActiveIMMIME;
  56#ifdef __cplusplus
  57interface IActiveIMMIME;
  58#endif /* __cplusplus */
  59#endif
  60
  61#ifndef __IActiveIME_FWD_DEFINED__
  62#define __IActiveIME_FWD_DEFINED__
  63typedef interface IActiveIME IActiveIME;
  64#ifdef __cplusplus
  65interface IActiveIME;
  66#endif /* __cplusplus */
  67#endif
  68
  69#ifndef __IActiveIME2_FWD_DEFINED__
  70#define __IActiveIME2_FWD_DEFINED__
  71typedef interface IActiveIME2 IActiveIME2;
  72#ifdef __cplusplus
  73interface IActiveIME2;
  74#endif /* __cplusplus */
  75#endif
  76
  77#ifndef __IEnumRegisterWordA_FWD_DEFINED__
  78#define __IEnumRegisterWordA_FWD_DEFINED__
  79typedef interface IEnumRegisterWordA IEnumRegisterWordA;
  80#ifdef __cplusplus
  81interface IEnumRegisterWordA;
  82#endif /* __cplusplus */
  83#endif
  84
  85#ifndef __IEnumRegisterWordW_FWD_DEFINED__
  86#define __IEnumRegisterWordW_FWD_DEFINED__
  87typedef interface IEnumRegisterWordW IEnumRegisterWordW;
  88#ifdef __cplusplus
  89interface IEnumRegisterWordW;
  90#endif /* __cplusplus */
  91#endif
  92
  93#ifndef __CActiveIMM_FWD_DEFINED__
  94#define __CActiveIMM_FWD_DEFINED__
  95#ifdef __cplusplus
  96typedef class CActiveIMM CActiveIMM;
  97#else
  98typedef 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
 107extern "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__
 117typedef interface IEnumRegisterWordA IEnumRegisterWordA;
 118#ifdef __cplusplus
 119interface IEnumRegisterWordA;
 120#endif /* __cplusplus */
 121#endif
 122
 123#ifndef __IEnumRegisterWordW_FWD_DEFINED__
 124#define __IEnumRegisterWordW_FWD_DEFINED__
 125typedef interface IEnumRegisterWordW IEnumRegisterWordW;
 126#ifdef __cplusplus
 127interface 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
 137DEFINE_GUID(LIBID_ActiveIMM, 0x4955dd30, 0xb159, 0x11d0, 0x8f,0xcf, 0x00,0xaa,0x00,0x6b,0xcc,0x59);
 138
 139#include <imm.h>
 140#if 0
 141typedef WORD LANGID;
 142typedef struct __WIDL_dimm_generated_name_0000000C {
 143    LPSTR lpReading;
 144    LPSTR lpWord;
 145} REGISTERWORDA;
 146typedef struct __WIDL_dimm_generated_name_0000000D {
 147    LPWSTR lpReading;
 148    LPWSTR lpWord;
 149} REGISTERWORDW;
 150typedef 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;
 166typedef 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;
 182typedef DWORD HIMC;
 183typedef DWORD HIMCC;
 184typedef struct __WIDL_dimm_generated_name_00000010 {
 185    DWORD dwIndex;
 186    DWORD dwStyle;
 187    POINT ptCurrentPos;
 188    RECT rcArea;
 189} CANDIDATEFORM;
 190typedef struct __WIDL_dimm_generated_name_00000011 {
 191    DWORD dwStyle;
 192    POINT ptCurrentPos;
 193    RECT rcArea;
 194} COMPOSITIONFORM;
 195typedef 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;
 204typedef struct __WIDL_dimm_generated_name_00000013 {
 205    DWORD dwStyle;
 206    CHAR szDescription[32];
 207} STYLEBUFA;
 208typedef struct __WIDL_dimm_generated_name_00000014 {
 209    DWORD dwStyle;
 210    WCHAR szDescription[32];
 211} STYLEBUFW;
 212typedef WORD ATOM;
 213typedef 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;
 224typedef 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_
 237typedef 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;
 259typedef 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
 275DEFINE_GUID(IID_IEnumInputContext, 0x09b5eab0, 0xf997, 0x11d1, 0x93,0xd4, 0x00,0x60,0xb0,0x67,0xb8,0x6e);
 276#if defined(__cplusplus) && !defined(CINTERFACE)
 277MIDL_INTERFACE("09b5eab0-f997-11d1-93d4-0060b067b86e")
 278IEnumInputContext : 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
 299typedef 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
 335interface 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 ***/
 352static inline HRESULT IEnumInputContext_QueryInterface(IEnumInputContext* This,REFIID riid,void **ppvObject) {
 353    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 354}
 355static inline ULONG IEnumInputContext_AddRef(IEnumInputContext* This) {
 356    return This->lpVtbl->AddRef(This);
 357}
 358static inline ULONG IEnumInputContext_Release(IEnumInputContext* This) {
 359    return This->lpVtbl->Release(This);
 360}
 361/*** IEnumInputContext methods ***/
 362static inline HRESULT IEnumInputContext_Clone(IEnumInputContext* This,IEnumInputContext **ppEnum) {
 363    return This->lpVtbl->Clone(This,ppEnum);
 364}
 365static inline HRESULT IEnumInputContext_Next(IEnumInputContext* This,ULONG ulCount,HIMC *rgInputContext,ULONG *pcFetched) {
 366    return This->lpVtbl->Next(This,ulCount,rgInputContext,pcFetched);
 367}
 368static inline HRESULT IEnumInputContext_Reset(IEnumInputContext* This) {
 369    return This->lpVtbl->Reset(This);
 370}
 371static inline 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
 388DEFINE_GUID(IID_IActiveIMMRegistrar, 0xb3458082, 0xbd00, 0x11d1, 0x93,0x9b, 0x00,0x60,0xb0,0x67,0xb8,0x6e);
 389#if defined(__cplusplus) && !defined(CINTERFACE)
 390MIDL_INTERFACE("b3458082-bd00-11d1-939b-0060b067b86e")
 391IActiveIMMRegistrar : 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
 407typedef 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
 437interface 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 ***/
 452static inline HRESULT IActiveIMMRegistrar_QueryInterface(IActiveIMMRegistrar* This,REFIID riid,void **ppvObject) {
 453    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 454}
 455static inline ULONG IActiveIMMRegistrar_AddRef(IActiveIMMRegistrar* This) {
 456    return This->lpVtbl->AddRef(This);
 457}
 458static inline ULONG IActiveIMMRegistrar_Release(IActiveIMMRegistrar* This) {
 459    return This->lpVtbl->Release(This);
 460}
 461/*** IActiveIMMRegistrar methods ***/
 462static inline HRESULT IActiveIMMRegistrar_RegisterIME(IActiveIMMRegistrar* This,REFCLSID rclsid,LANGID lgid,LPCWSTR pszIconFile,LPCWSTR pszDesc) {
 463    return This->lpVtbl->RegisterIME(This,rclsid,lgid,pszIconFile,pszDesc);
 464}
 465static inline 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
 482DEFINE_GUID(IID_IActiveIMMMessagePumpOwner, 0xb5cf2cfa, 0x8aeb, 0x11d1, 0x93,0x64, 0x00,0x60,0xb0,0x67,0xb8,0x6e);
 483#if defined(__cplusplus) && !defined(CINTERFACE)
 484MIDL_INTERFACE("b5cf2cfa-8aeb-11d1-9364-0060b067b86e")
 485IActiveIMMMessagePumpOwner : 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
 507typedef 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
 544interface 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 ***/
 562static inline HRESULT IActiveIMMMessagePumpOwner_QueryInterface(IActiveIMMMessagePumpOwner* This,REFIID riid,void **ppvObject) {
 563    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 564}
 565static inline ULONG IActiveIMMMessagePumpOwner_AddRef(IActiveIMMMessagePumpOwner* This) {
 566    return This->lpVtbl->AddRef(This);
 567}
 568static inline ULONG IActiveIMMMessagePumpOwner_Release(IActiveIMMMessagePumpOwner* This) {
 569    return This->lpVtbl->Release(This);
 570}
 571/*** IActiveIMMMessagePumpOwner methods ***/
 572static inline HRESULT IActiveIMMMessagePumpOwner_Start(IActiveIMMMessagePumpOwner* This) {
 573    return This->lpVtbl->Start(This);
 574}
 575static inline HRESULT IActiveIMMMessagePumpOwner_End(IActiveIMMMessagePumpOwner* This) {
 576    return This->lpVtbl->End(This);
 577}
 578static inline HRESULT IActiveIMMMessagePumpOwner_OnTranslateMessage(IActiveIMMMessagePumpOwner* This,const MSG *pMsg) {
 579    return This->lpVtbl->OnTranslateMessage(This,pMsg);
 580}
 581static inline HRESULT IActiveIMMMessagePumpOwner_Pause(IActiveIMMMessagePumpOwner* This,DWORD *pdwCookie) {
 582    return This->lpVtbl->Pause(This,pdwCookie);
 583}
 584static inline 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
 601DEFINE_GUID(IID_IActiveIMMApp, 0x08c0e040, 0x62d1, 0x11d1, 0x93,0x26, 0x00,0x60,0xb0,0x67,0xb8,0x6e);
 602#if defined(__cplusplus) && !defined(CINTERFACE)
 603MIDL_INTERFACE("08c0e040-62d1-11d1-9326-0060b067b86e")
 604IActiveIMMApp : 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
 979typedef 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
1433interface 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 ***/
1514static inline HRESULT IActiveIMMApp_QueryInterface(IActiveIMMApp* This,REFIID riid,void **ppvObject) {
1515    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1516}
1517static inline ULONG IActiveIMMApp_AddRef(IActiveIMMApp* This) {
1518    return This->lpVtbl->AddRef(This);
1519}
1520static inline ULONG IActiveIMMApp_Release(IActiveIMMApp* This) {
1521    return This->lpVtbl->Release(This);
1522}
1523/*** IActiveIMMApp methods ***/
1524static inline HRESULT IActiveIMMApp_AssociateContext(IActiveIMMApp* This,HWND hWnd,HIMC hIME,HIMC *phPrev) {
1525    return This->lpVtbl->AssociateContext(This,hWnd,hIME,phPrev);
1526}
1527static inline HRESULT IActiveIMMApp_ConfigureIMEA(IActiveIMMApp* This,HKL hKL,HWND hWnd,DWORD dwMode,REGISTERWORDA *pData) {
1528    return This->lpVtbl->ConfigureIMEA(This,hKL,hWnd,dwMode,pData);
1529}
1530static inline HRESULT IActiveIMMApp_ConfigureIMEW(IActiveIMMApp* This,HKL hKL,HWND hWnd,DWORD dwMode,REGISTERWORDW *pData) {
1531    return This->lpVtbl->ConfigureIMEW(This,hKL,hWnd,dwMode,pData);
1532}
1533static inline HRESULT IActiveIMMApp_CreateContext(IActiveIMMApp* This,HIMC *phIMC) {
1534    return This->lpVtbl->CreateContext(This,phIMC);
1535}
1536static inline HRESULT IActiveIMMApp_DestroyContext(IActiveIMMApp* This,HIMC hIME) {
1537    return This->lpVtbl->DestroyContext(This,hIME);
1538}
1539static inline 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}
1542static inline 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}
1545static inline 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}
1548static inline 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}
1551static inline 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}
1554static inline 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}
1557static inline HRESULT IActiveIMMApp_GetCandidateListCountA(IActiveIMMApp* This,HIMC hIMC,DWORD *pdwListSize,DWORD *pdwBufLen) {
1558    return This->lpVtbl->GetCandidateListCountA(This,hIMC,pdwListSize,pdwBufLen);
1559}
1560static inline HRESULT IActiveIMMApp_GetCandidateListCountW(IActiveIMMApp* This,HIMC hIMC,DWORD *pdwListSize,DWORD *pdwBufLen) {
1561    return This->lpVtbl->GetCandidateListCountW(This,hIMC,pdwListSize,pdwBufLen);
1562}
1563static inline HRESULT IActiveIMMApp_GetCandidateWindow(IActiveIMMApp* This,HIMC hIMC,DWORD dwIndex,CANDIDATEFORM *pCandidate) {
1564    return This->lpVtbl->GetCandidateWindow(This,hIMC,dwIndex,pCandidate);
1565}
1566static inline HRESULT IActiveIMMApp_GetCompositionFontA(IActiveIMMApp* This,HIMC hIMC,LOGFONTA *plf) {
1567    return This->lpVtbl->GetCompositionFontA(This,hIMC,plf);
1568}
1569static inline HRESULT IActiveIMMApp_GetCompositionFontW(IActiveIMMApp* This,HIMC hIMC,LOGFONTW *plf) {
1570    return This->lpVtbl->GetCompositionFontW(This,hIMC,plf);
1571}
1572static inline 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}
1575static inline 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}
1578static inline HRESULT IActiveIMMApp_GetCompositionWindow(IActiveIMMApp* This,HIMC hIMC,COMPOSITIONFORM *pCompForm) {
1579    return This->lpVtbl->GetCompositionWindow(This,hIMC,pCompForm);
1580}
1581static inline HRESULT IActiveIMMApp_GetContext(IActiveIMMApp* This,HWND hWnd,HIMC *phIMC) {
1582    return This->lpVtbl->GetContext(This,hWnd,phIMC);
1583}
1584static inline 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}
1587static inline 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}
1590static inline HRESULT IActiveIMMApp_GetConversionStatus(IActiveIMMApp* This,HIMC hIMC,DWORD *pfdwConversion,DWORD *pfdwSentence) {
1591    return This->lpVtbl->GetConversionStatus(This,hIMC,pfdwConversion,pfdwSentence);
1592}
1593static inline HRESULT IActiveIMMApp_GetDefaultIMEWnd(IActiveIMMApp* This,HWND hWnd,HWND *phDefWnd) {
1594    return This->lpVtbl->GetDefaultIMEWnd(This,hWnd,phDefWnd);
1595}
1596static inline HRESULT IActiveIMMApp_GetDescriptionA(IActiveIMMApp* This,HKL hKL,UINT uBufLen,LPSTR szDescription,UINT *puCopied) {
1597    return This->lpVtbl->GetDescriptionA(This,hKL,uBufLen,szDescription,puCopied);
1598}
1599static inline HRESULT IActiveIMMApp_GetDescriptionW(IActiveIMMApp* This,HKL hKL,UINT uBufLen,LPWSTR szDescription,UINT *puCopied) {
1600    return This->lpVtbl->GetDescriptionW(This,hKL,uBufLen,szDescription,puCopied);
1601}
1602static inline 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}
1605static inline 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}
1608static inline HRESULT IActiveIMMApp_GetIMEFileNameA(IActiveIMMApp* This,HKL hKL,UINT uBufLen,LPSTR szFileName,UINT *puCopied) {
1609    return This->lpVtbl->GetIMEFileNameA(This,hKL,uBufLen,szFileName,puCopied);
1610}
1611static inline HRESULT IActiveIMMApp_GetIMEFileNameW(IActiveIMMApp* This,HKL hKL,UINT uBufLen,LPWSTR szFileName,UINT *puCopied) {
1612    return This->lpVtbl->GetIMEFileNameW(This,hKL,uBufLen,szFileName,puCopied);
1613}
1614static inline HRESULT IActiveIMMApp_GetOpenStatus(IActiveIMMApp* This,HIMC hIMC) {
1615    return This->lpVtbl->GetOpenStatus(This,hIMC);
1616}
1617static inline HRESULT IActiveIMMApp_GetProperty(IActiveIMMApp* This,HKL hKL,DWORD fdwIndex,DWORD *pdwProperty) {
1618    return This->lpVtbl->GetProperty(This,hKL,fdwIndex,pdwProperty);
1619}
1620static inline HRESULT IActiveIMMApp_GetRegisterWordStyleA(IActiveIMMApp* This,HKL hKL,UINT nItem,STYLEBUFA *pStyleBuf,UINT *puCopied) {
1621    return This->lpVtbl->GetRegisterWordStyleA(This,hKL,nItem,pStyleBuf,puCopied);
1622}
1623static inline HRESULT IActiveIMMApp_GetRegisterWordStyleW(IActiveIMMApp* This,HKL hKL,UINT nItem,STYLEBUFW *pStyleBuf,UINT *puCopied) {
1624    return This->lpVtbl->GetRegisterWordStyleW(This,hKL,nItem,pStyleBuf,puCopied);
1625}
1626static inline HRESULT IActiveIMMApp_GetStatusWindowPos(IActiveIMMApp* This,HIMC hIMC,POINT *pptPos) {
1627    return This->lpVtbl->GetStatusWindowPos(This,hIMC,pptPos);
1628}
1629static inline HRESULT IActiveIMMApp_GetVirtualKey(IActiveIMMApp* This,HWND hWnd,UINT *puVirtualKey) {
1630    return This->lpVtbl->GetVirtualKey(This,hWnd,puVirtualKey);
1631}
1632static inline HRESULT IActiveIMMApp_InstallIMEA(IActiveIMMApp* This,LPSTR szIMEFileName,LPSTR szLayoutText,HKL *phKL) {
1633    return This->lpVtbl->InstallIMEA(This,szIMEFileName,szLayoutText,phKL);
1634}
1635static inline HRESULT IActiveIMMApp_InstallIMEW(IActiveIMMApp* This,LPWSTR szIMEFileName,LPWSTR szLayoutText,HKL *phKL) {
1636    return This->lpVtbl->InstallIMEW(This,szIMEFileName,szLayoutText,phKL);
1637}
1638static inline HRESULT IActiveIMMApp_IsIME(IActiveIMMApp* This,HKL hKL) {
1639    return This->lpVtbl->IsIME(This,hKL);
1640}
1641static inline HRESULT IActiveIMMApp_IsUIMessageA(IActiveIMMApp* This,HWND hWndIME,UINT msg,WPARAM wParam,LPARAM lParam) {
1642    return This->lpVtbl->IsUIMessageA(This,hWndIME,msg,wParam,lParam);
1643}
1644static inline HRESULT IActiveIMMApp_IsUIMessageW(IActiveIMMApp* This,HWND hWndIME,UINT msg,WPARAM wParam,LPARAM lParam) {
1645    return This->lpVtbl->IsUIMessageW(This,hWndIME,msg,wParam,lParam);
1646}
1647static inline HRESULT IActiveIMMApp_NotifyIME(IActiveIMMApp* This,HIMC hIMC,DWORD dwAction,DWORD dwIndex,DWORD dwValue) {
1648    return This->lpVtbl->NotifyIME(This,hIMC,dwAction,dwIndex,dwValue);
1649}
1650static inline HRESULT IActiveIMMApp_RegisterWordA(IActiveIMMApp* This,HKL hKL,LPSTR szReading,DWORD dwStyle,LPSTR szRegister) {
1651    return This->lpVtbl->RegisterWordA(This,hKL,szReading,dwStyle,szRegister);
1652}
1653static inline HRESULT IActiveIMMApp_RegisterWordW(IActiveIMMApp* This,HKL hKL,LPWSTR szReading,DWORD dwStyle,LPWSTR szRegister) {
1654    return This->lpVtbl->RegisterWordW(This,hKL,szReading,dwStyle,szRegister);
1655}
1656static inline HRESULT IActiveIMMApp_ReleaseContext(IActiveIMMApp* This,HWND hWnd,HIMC hIMC) {
1657    return This->lpVtbl->ReleaseContext(This,hWnd,hIMC);
1658}
1659static inline HRESULT IActiveIMMApp_SetCandidateWindow(IActiveIMMApp* This,HIMC hIMC,CANDIDATEFORM *pCandidate) {
1660    return This->lpVtbl->SetCandidateWindow(This,hIMC,pCandidate);
1661}
1662static inline HRESULT IActiveIMMApp_SetCompositionFontA(IActiveIMMApp* This,HIMC hIMC,LOGFONTA *plf) {
1663    return This->lpVtbl->SetCompositionFontA(This,hIMC,plf);
1664}
1665static inline HRESULT IActiveIMMApp_SetCompositionFontW(IActiveIMMApp* This,HIMC hIMC,LOGFONTW *plf) {
1666    return This->lpVtbl->SetCompositionFontW(This,hIMC,plf);
1667}
1668static inline 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}
1671static inline 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}
1674static inline HRESULT IActiveIMMApp_SetCompositionWindow(IActiveIMMApp* This,HIMC hIMC,COMPOSITIONFORM *pCompForm) {
1675    return This->lpVtbl->SetCompositionWindow(This,hIMC,pCompForm);
1676}
1677static inline HRESULT IActiveIMMApp_SetConversionStatus(IActiveIMMApp* This,HIMC hIMC,DWORD fdwConversion,DWORD fdwSentence) {
1678    return This->lpVtbl->SetConversionStatus(This,hIMC,fdwConversion,fdwSentence);
1679}
1680static inline HRESULT IActiveIMMApp_SetOpenStatus(IActiveIMMApp* This,HIMC hIMC,WINBOOL fOpen) {
1681    return This->lpVtbl->SetOpenStatus(This,hIMC,fOpen);
1682}
1683static inline HRESULT IActiveIMMApp_SetStatusWindowPos(IActiveIMMApp* This,HIMC hIMC,POINT *pptPos) {
1684    return This->lpVtbl->SetStatusWindowPos(This,hIMC,pptPos);
1685}
1686static inline HRESULT IActiveIMMApp_SimulateHotKey(IActiveIMMApp* This,HWND hWnd,DWORD dwHotKeyID) {
1687    return This->lpVtbl->SimulateHotKey(This,hWnd,dwHotKeyID);
1688}
1689static inline HRESULT IActiveIMMApp_UnregisterWordA(IActiveIMMApp* This,HKL hKL,LPSTR szReading,DWORD dwStyle,LPSTR szUnregister) {
1690    return This->lpVtbl->UnregisterWordA(This,hKL,szReading,dwStyle,szUnregister);
1691}
1692static inline HRESULT IActiveIMMApp_UnregisterWordW(IActiveIMMApp* This,HKL hKL,LPWSTR szReading,DWORD dwStyle,LPWSTR szUnregister) {
1693    return This->lpVtbl->UnregisterWordW(This,hKL,szReading,dwStyle,szUnregister);
1694}
1695static inline HRESULT IActiveIMMApp_Activate(IActiveIMMApp* This,WINBOOL fRestoreLayout) {
1696    return This->lpVtbl->Activate(This,fRestoreLayout);
1697}
1698static inline HRESULT IActiveIMMApp_Deactivate(IActiveIMMApp* This) {
1699    return This->lpVtbl->Deactivate(This);
1700}
1701static inline 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}
1704static inline HRESULT IActiveIMMApp_FilterClientWindows(IActiveIMMApp* This,ATOM *aaClassList,UINT uSize) {
1705    return This->lpVtbl->FilterClientWindows(This,aaClassList,uSize);
1706}
1707static inline HRESULT IActiveIMMApp_GetCodePageA(IActiveIMMApp* This,HKL hKL,UINT *uCodePage) {
1708    return This->lpVtbl->GetCodePageA(This,hKL,uCodePage);
1709}
1710static inline HRESULT IActiveIMMApp_GetLangId(IActiveIMMApp* This,HKL hKL,LANGID *plid) {
1711    return This->lpVtbl->GetLangId(This,hKL,plid);
1712}
1713static inline HRESULT IActiveIMMApp_AssociateContextEx(IActiveIMMApp* This,HWND hWnd,HIMC hIMC,DWORD dwFlags) {
1714    return This->lpVtbl->AssociateContextEx(This,hWnd,hIMC,dwFlags);
1715}
1716static inline HRESULT IActiveIMMApp_DisableIME(IActiveIMMApp* This,DWORD idThread) {
1717    return This->lpVtbl->DisableIME(This,idThread);
1718}
1719static inline 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}
1722static inline 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}
1725static inline 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
1742DEFINE_GUID(IID_IActiveIMMIME, 0x08c03411, 0xf96b, 0x11d0, 0xa4,0x75, 0x00,0xaa,0x00,0x6b,0xcc,0x59);
1743#if defined(__cplusplus) && !defined(CINTERFACE)
1744MIDL_INTERFACE("08c03411-f96b-11d0-a475-00aa006bcc59")
1745IActiveIMMIME : 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
2212typedef 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
2776interface 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 ***/
2877static inline HRESULT IActiveIMMIME_QueryInterface(IActiveIMMIME* This,REFIID riid,void **ppvObject) {
2878    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2879}
2880static inline ULONG IActiveIMMIME_AddRef(IActiveIMMIME* This) {
2881    return This->lpVtbl->AddRef(This);
2882}
2883static inline ULONG IActiveIMMIME_Release(IActiveIMMIME* This) {
2884    return This->lpVtbl->Release(This);
2885}
2886/*** IActiveIMMIME methods ***/
2887static inline HRESULT IActiveIMMIME_AssociateContext(IActiveIMMIME* This,HWND hWnd,HIMC hIME,HIMC *phPrev) {
2888    return This->lpVtbl->AssociateContext(This,hWnd,hIME,phPrev);
2889}
2890static inline HRESULT IActiveIMMIME_ConfigureIMEA(IActiveIMMIME* This,HKL hKL,HWND hWnd,DWORD dwMode,REGISTERWORDA *pData) {
2891    return This->lpVtbl->ConfigureIMEA(This,hKL,hWnd,dwMode,pData);
2892}
2893static inline HRESULT IActiveIMMIME_ConfigureIMEW(IActiveIMMIME* This,HKL hKL,HWND hWnd,DWORD dwMode,REGISTERWORDW *pData) {
2894    return This->lpVtbl->ConfigureIMEW(This,hKL,hWnd,dwMode,pData);
2895}
2896static inline HRESULT IActiveIMMIME_CreateContext(IActiveIMMIME* This,HIMC *phIMC) {
2897    return This->lpVtbl->CreateContext(This,phIMC);
2898}
2899static inline HRESULT IActiveIMMIME_DestroyContext(IActiveIMMIME* This,HIMC hIME) {
2900    return This->lpVtbl->DestroyContext(This,hIME);
2901}
2902static inline 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}
2905static inline 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}
2908static inline 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}
2911static inline 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}
2914static inline 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}
2917static inline 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}
2920static inline HRESULT IActiveIMMIME_GetCandidateListCountA(IActiveIMMIME* This,HIMC hIMC,DWORD *pdwListSize,DWORD *pdwBufLen) {
2921    return This->lpVtbl->GetCandidateListCountA(This,hIMC,pdwListSize,pdwBufLen);
2922}
2923static inline HRESULT IActiveIMMIME_GetCandidateListCountW(IActiveIMMIME* This,HIMC hIMC,DWORD *pdwListSize,DWORD *pdwBufLen) {
2924    return This->lpVtbl->GetCandidateListCountW(This,hIMC,pdwListSize,pdwBufLen);
2925}
2926static inline HRESULT IActiveIMMIME_GetCandidateWindow(IActiveIMMIME* This,HIMC hIMC,DWORD dwIndex,CANDIDATEFORM *pCandidate) {
2927    return This->lpVtbl->GetCandidateWindow(This,hIMC,dwIndex,pCandidate);
2928}
2929static inline HRESULT IActiveIMMIME_GetCompositionFontA(IActiveIMMIME* This,HIMC hIMC,LOGFONTA *plf) {
2930    return This->lpVtbl->GetCompositionFontA(This,hIMC,plf);
2931}
2932static inline HRESULT IActiveIMMIME_GetCompositionFontW(IActiveIMMIME* This,HIMC hIMC,LOGFONTW *plf) {
2933    return This->lpVtbl->GetCompositionFontW(This,hIMC,plf);
2934}
2935static inline 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}
2938static inline 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}
2941static inline HRESULT IActiveIMMIME_GetCompositionWindow(IActiveIMMIME* This,HIMC hIMC,COMPOSITIONFORM *pCompForm) {
2942    return This->lpVtbl->GetCompositionWindow(This,hIMC,pCompForm);
2943}
2944static inline HRESULT IActiveIMMIME_GetContext(IActiveIMMIME* This,HWND hWnd,HIMC *phIMC) {
2945    return This->lpVtbl->GetContext(This,hWnd,phIMC);
2946}
2947static inline 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}
2950static inline 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}
2953static inline HRESULT IActiveIMMIME_GetConversionStatus(IActiveIMMIME* This,HIMC hIMC,DWORD *pfdwConversion,DWORD *pfdwSentence) {
2954    return This->lpVtbl->GetConversionStatus(This,hIMC,pfdwConversion,pfdwSentence);
2955}
2956static inline HRESULT IActiveIMMIME_GetDefaultIMEWnd(IActiveIMMIME* This,HWND hWnd,HWND *phDefWnd) {
2957    return This->lpVtbl->GetDefaultIMEWnd(This,hWnd,phDefWnd);
2958}
2959static inline HRESULT IActiveIMMIME_GetDescriptionA(IActiveIMMIME* This,HKL hKL,UINT uBufLen,LPSTR szDescription,UINT *puCopied) {
2960    return This->lpVtbl->GetDescriptionA(This,hKL,uBufLen,szDescription,puCopied);
2961}
2962static inline HRESULT IActiveIMMIME_GetDescriptionW(IActiveIMMIME* This,HKL hKL,UINT uBufLen,LPWSTR szDescription,UINT *puCopied) {
2963    return This->lpVtbl->GetDescriptionW(This,hKL,uBufLen,szDescription,puCopied);
2964}
2965static inline 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}
2968static inline 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}
2971static inline HRESULT IActiveIMMIME_GetIMEFileNameA(IActiveIMMIME* This,HKL hKL,UINT uBufLen,LPSTR szFileName,UINT *puCopied) {
2972    return This->lpVtbl->GetIMEFileNameA(This,hKL,uBufLen,szFileName,puCopied);
2973}
2974static inline HRESULT IActiveIMMIME_GetIMEFileNameW(IActiveIMMIME* This,HKL hKL,UINT uBufLen,LPWSTR szFileName,UINT *puCopied) {
2975    return This->lpVtbl->GetIMEFileNameW(This,hKL,uBufLen,szFileName,puCopied);
2976}
2977static inline HRESULT IActiveIMMIME_GetOpenStatus(IActiveIMMIME* This,HIMC hIMC) {
2978    return This->lpVtbl->GetOpenStatus(This,hIMC);
2979}
2980static inline HRESULT IActiveIMMIME_GetProperty(IActiveIMMIME* This,HKL hKL,DWORD fdwIndex,DWORD *pdwProperty) {
2981    return This->lpVtbl->GetProperty(This,hKL,fdwIndex,pdwProperty);
2982}
2983static inline HRESULT IActiveIMMIME_GetRegisterWordStyleA(IActiveIMMIME* This,HKL hKL,UINT nItem,STYLEBUFA *pStyleBuf,UINT *puCopied) {
2984    return This->lpVtbl->GetRegisterWordStyleA(This,hKL,nItem,pStyleBuf,puCopied);
2985}
2986static inline HRESULT IActiveIMMIME_GetRegisterWordStyleW(IActiveIMMIME* This,HKL hKL,UINT nItem,STYLEBUFW *pStyleBuf,UINT *puCopied) {
2987    return This->lpVtbl->GetRegisterWordStyleW(This,hKL,nItem,pStyleBuf,puCopied);
2988}
2989static inline HRESULT IActiveIMMIME_GetStatusWindowPos(IActiveIMMIME* This,HIMC hIMC,POINT *pptPos) {
2990    return This->lpVtbl->GetStatusWindowPos(This,hIMC,pptPos);
2991}
2992static inline HRESULT IActiveIMMIME_GetVirtualKey(IActiveIMMIME* This,HWND hWnd,UINT *puVirtualKey) {
2993    return This->lpVtbl->GetVirtualKey(This,hWnd,puVirtualKey);
2994}
2995static inline HRESULT IActiveIMMIME_InstallIMEA(IActiveIMMIME* This,LPSTR szIMEFileName,LPSTR szLayoutText,HKL *phKL) {
2996    return This->lpVtbl->InstallIMEA(This,szIMEFileName,szLayoutText,phKL);
2997}
2998static inline HRESULT IActiveIMMIME_InstallIMEW(IActiveIMMIME* This,LPWSTR szIMEFileName,LPWSTR szLayoutText,HKL *phKL) {
2999    return This->lpVtbl->InstallIMEW(This,szIMEFileName,szLayoutText,phKL);
3000}
3001static inline HRESULT IActiveIMMIME_IsIME(IActiveIMMIME* This,HKL hKL) {
3002    return This->lpVtbl->IsIME(This,hKL);
3003}
3004static inline HRESULT IActiveIMMIME_IsUIMessageA(IActiveIMMIME* This,HWND hWndIME,UINT msg,WPARAM wParam,LPARAM lParam) {
3005    return This->lpVtbl->IsUIMessageA(This,hWndIME,msg,wParam,lParam);
3006}
3007static inline HRESULT IActiveIMMIME_IsUIMessageW(IActiveIMMIME* This,HWND hWndIME,UINT msg,WPARAM wParam,LPARAM lParam) {
3008    return This->lpVtbl->IsUIMessageW(This,hWndIME,msg,wParam,lParam);
3009}
3010static inline HRESULT IActiveIMMIME_NotifyIME(IActiveIMMIME* This,HIMC hIMC,DWORD dwAction,DWORD dwIndex,DWORD dwValue) {
3011    return This->lpVtbl->NotifyIME(This,hIMC,dwAction,dwIndex,dwValue);
3012}
3013static inline HRESULT IActiveIMMIME_RegisterWordA(IActiveIMMIME* This,HKL hKL,LPSTR szReading,DWORD dwStyle,LPSTR szRegister) {
3014    return This->lpVtbl->RegisterWordA(This,hKL,szReading,dwStyle,szRegister);
3015}
3016static inline HRESULT IActiveIMMIME_RegisterWordW(IActiveIMMIME* This,HKL hKL,LPWSTR szReading,DWORD dwStyle,LPWSTR szRegister) {
3017    return This->lpVtbl->RegisterWordW(This,hKL,szReading,dwStyle,szRegister);
3018}
3019static inline HRESULT IActiveIMMIME_ReleaseContext(IActiveIMMIME* This,HWND hWnd,HIMC hIMC) {
3020    return This->lpVtbl->ReleaseContext(This,hWnd,hIMC);
3021}
3022static inline HRESULT IActiveIMMIME_SetCandidateWindow(IActiveIMMIME* This,HIMC hIMC,CANDIDATEFORM *pCandidate) {
3023    return This->lpVtbl->SetCandidateWindow(This,hIMC,pCandidate);
3024}
3025static inline HRESULT IActiveIMMIME_SetCompositionFontA(IActiveIMMIME* This,HIMC hIMC,LOGFONTA *plf) {
3026    return This->lpVtbl->SetCompositionFontA(This,hIMC,plf);
3027}
3028static inline HRESULT IActiveIMMIME_SetCompositionFontW(IActiveIMMIME* This,HIMC hIMC,LOGFONTW *plf) {
3029    return This->lpVtbl->SetCompositionFontW(This,hIMC,plf);
3030}
3031static inline 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}
3034static inline 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}
3037static inline HRESULT IActiveIMMIME_SetCompositionWindow(IActiveIMMIME* This,HIMC hIMC,COMPOSITIONFORM *pCompForm) {
3038    return This->lpVtbl->SetCompositionWindow(This,hIMC,pCompForm);
3039}
3040static inline HRESULT IActiveIMMIME_SetConversionStatus(IActiveIMMIME* This,HIMC hIMC,DWORD fdwConversion,DWORD fdwSentence) {
3041    return This->lpVtbl->SetConversionStatus(This,hIMC,fdwConversion,fdwSentence);
3042}
3043static inline HRESULT IActiveIMMIME_SetOpenStatus(IActiveIMMIME* This,HIMC hIMC,WINBOOL fOpen) {
3044    return This->lpVtbl->SetOpenStatus(This,hIMC,fOpen);
3045}
3046static inline HRESULT IActiveIMMIME_SetStatusWindowPos(IActiveIMMIME* This,HIMC hIMC,POINT *pptPos) {
3047    return This->lpVtbl->SetStatusWindowPos(This,hIMC,pptPos);
3048}
3049static inline HRESULT IActiveIMMIME_SimulateHotKey(IActiveIMMIME* This,HWND hWnd,DWORD dwHotKeyID) {
3050    return This->lpVtbl->SimulateHotKey(This,hWnd,dwHotKeyID);
3051}
3052static inline HRESULT IActiveIMMIME_UnregisterWordA(IActiveIMMIME* This,HKL hKL,LPSTR szReading,DWORD dwStyle,LPSTR szUnregister) {
3053    return This->lpVtbl->UnregisterWordA(This,hKL,szReading,dwStyle,szUnregister);
3054}
3055static inline HRESULT IActiveIMMIME_UnregisterWordW(IActiveIMMIME* This,HKL hKL,LPWSTR szReading,DWORD dwStyle,LPWSTR szUnregister) {
3056    return This->lpVtbl->UnregisterWordW(This,hKL,szReading,dwStyle,szUnregister);
3057}
3058static inline HRESULT IActiveIMMIME_GenerateMessage(IActiveIMMIME* This,HIMC hIMC) {
3059    return This->lpVtbl->GenerateMessage(This,hIMC);
3060}
3061static inline HRESULT IActiveIMMIME_LockIMC(IActiveIMMIME* This,HIMC hIMC,INPUTCONTEXT **ppIMC) {
3062    return This->lpVtbl->LockIMC(This,hIMC,ppIMC);
3063}
3064static inline HRESULT IActiveIMMIME_UnlockIMC(IActiveIMMIME* This,HIMC hIMC) {
3065    return This->lpVtbl->UnlockIMC(This,hIMC);
3066}
3067static inline HRESULT IActiveIMMIME_GetIMCLockCount(IActiveIMMIME* This,HIMC hIMC,DWORD *pdwLockCount) {
3068    return This->lpVtbl->GetIMCLockCount(This,hIMC,pdwLockCount);
3069}
3070static inline HRESULT IActiveIMMIME_CreateIMCC(IActiveIMMIME* This,DWORD dwSize,HIMCC *phIMCC) {
3071    return This->lpVtbl->CreateIMCC(This,dwSize,phIMCC);
3072}
3073static inline HRESULT IActiveIMMIME_DestroyIMCC(IActiveIMMIME* This,HIMCC hIMCC) {
3074    return This->lpVtbl->DestroyIMCC(This,hIMCC);
3075}
3076static inline HRESULT IActiveIMMIME_LockIMCC(IActiveIMMIME* This,HIMCC hIMCC,void **ppv) {
3077    return This->lpVtbl->LockIMCC(This,hIMCC,ppv);
3078}
3079static inline HRESULT IActiveIMMIME_UnlockIMCC(IActiveIMMIME* This,HIMCC hIMCC) {
3080    return This->lpVtbl->UnlockIMCC(This,hIMCC);
3081}
3082static inline HRESULT IActiveIMMIME_ReSizeIMCC(IActiveIMMIME* This,HIMCC hIMCC,DWORD dwSize,HIMCC *phIMCC) {
3083    return This->lpVtbl->ReSizeIMCC(This,hIMCC,dwSize,phIMCC);
3084}
3085static inline HRESULT IActiveIMMIME_GetIMCCSize(IActiveIMMIME* This,HIMCC hIMCC,DWORD *pdwSize) {
3086    return This->lpVtbl->GetIMCCSize(This,hIMCC,pdwSize);
3087}
3088static inline HRESULT IActiveIMMIME_GetIMCCLockCount(IActiveIMMIME* This,HIMCC hIMCC,DWORD *pdwLockCount) {
3089    return This->lpVtbl->GetIMCCLockCount(This,hIMCC,pdwLockCount);
3090}
3091static inline HRESULT IActiveIMMIME_GetHotKey(IActiveIMMIME* This,DWORD dwHotKeyID,UINT *puModifiers,UINT *puVKey,HKL *phKL) {
3092    return This->lpVtbl->GetHotKey(This,dwHotKeyID,puModifiers,puVKey,phKL);
3093}
3094static inline HRESULT IActiveIMMIME_SetHotKey(IActiveIMMIME* This,DWORD dwHotKeyID,UINT uModifiers,UINT uVKey,HKL hKL) {
3095    return This->lpVtbl->SetHotKey(This,dwHotKeyID,uModifiers,uVKey,hKL);
3096}
3097static inline 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}
3100static inline HRESULT IActiveIMMIME_DestroySoftKeyboard(IActiveIMMIME* This,HWND hSoftKbdWnd) {
3101    return This->lpVtbl->DestroySoftKeyboard(This,hSoftKbdWnd);
3102}
3103static inline HRESULT IActiveIMMIME_ShowSoftKeyboard(IActiveIMMIME* This,HWND hSoftKbdWnd,int nCmdShow) {
3104    return This->lpVtbl->ShowSoftKeyboard(This,hSoftKbdWnd,nCmdShow);
3105}
3106static inline HRESULT IActiveIMMIME_GetCodePageA(IActiveIMMIME* This,HKL hKL,UINT *uCodePage) {
3107    return This->lpVtbl->GetCodePageA(This,hKL,uCodePage);
3108}
3109static inline HRESULT IActiveIMMIME_GetLangId(IActiveIMMIME* This,HKL hKL,LANGID *plid) {
3110    return This->lpVtbl->GetLangId(This,hKL,plid);
3111}
3112static inline 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}
3115static inline HRESULT IActiveIMMIME_LockModal(IActiveIMMIME* This) {
3116    return This->lpVtbl->LockModal(This);
3117}
3118static inline HRESULT IActiveIMMIME_UnlockModal(IActiveIMMIME* This) {
3119    return This->lpVtbl->UnlockModal(This);
3120}
3121static inline HRESULT IActiveIMMIME_AssociateContextEx(IActiveIMMIME* This,HWND hWnd,HIMC hIMC,DWORD dwFlags) {
3122    return This->lpVtbl->AssociateContextEx(This,hWnd,hIMC,dwFlags);
3123}
3124static inline HRESULT IActiveIMMIME_DisableIME(IActiveIMMIME* This,DWORD idThread) {
3125    return This->lpVtbl->DisableIME(This,idThread);
3126}
3127static inline 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}
3130static inline 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}
3133static inline HRESULT IActiveIMMIME_EnumInputContext(IActiveIMMIME* This,DWORD idThread,IEnumInputContext **ppEnum) {
3134    return This->lpVtbl->EnumInputContext(This,idThread,ppEnum);
3135}
3136static inline HRESULT IActiveIMMIME_RequestMessageA(IActiveIMMIME* This,HIMC hIMC,WPARAM wParam,LPARAM lParam,LRESULT *plResult) {
3137    return This->lpVtbl->RequestMessageA(This,hIMC,wParam,lParam,plResult);
3138}
3139static inline HRESULT IActiveIMMIME_RequestMessageW(IActiveIMMIME* This,HIMC hIMC,WPARAM wParam,LPARAM lParam,LRESULT *plResult) {
3140    return This->lpVtbl->RequestMessageW(This,hIMC,wParam,lParam,plResult);
3141}
3142static inline 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}
3145static inline 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}
3148static inline 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
3165DEFINE_GUID(IID_IActiveIME, 0x6fe20962, 0xd077, 0x11d0, 0x8f,0xe7, 0x00,0xaa,0x00,0x6b,0xcc,0x59);
3166#if defined(__cplusplus) && !defined(CINTERFACE)
3167MIDL_INTERFACE("6fe20962-d077-11d0-8fe7-00aa006bcc59")
3168IActiveIME : 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
3269typedef 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
3399interface 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 ***/
3429static inline HRESULT IActiveIME_QueryInterface(IActiveIME* This,REFIID riid,void **ppvObject) {
3430    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3431}
3432static inline ULONG IActiveIME_AddRef(IActiveIME* This) {
3433    return This->lpVtbl->AddRef(This);
3434}
3435static inline ULONG IActiveIME_Release(IActiveIME* This) {
3436    return This->lpVtbl->Release(This);
3437}
3438/*** IActiveIME methods ***/
3439static inline HRESULT IActiveIME_Inquire(IActiveIME* This,DWORD dwSystemInfoFlags,IMEINFO *pIMEInfo,LPWSTR szWndClass,DWORD *pdwPrivate) {
3440    return This->lpVtbl->Inquire(This,dwSystemInfoFlags,pIMEInfo,szWndClass,pdwPrivate);
3441}
3442static inline 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}
3445static inline HRESULT IActiveIME_Configure(IActiveIME* This,HKL hKL,HWND hWnd,DWORD dwMode,REGISTERWORDW *pRegisterWord) {
3446    return This->lpVtbl->Configure(This,hKL,hWnd,dwMode,pRegisterWord);
3447}
3448static inline HRESULT IActiveIME_Destroy(IActiveIME* This,UINT uReserved) {
3449    return This->lpVtbl->Destroy(This,uReserved);
3450}
3451static inline HRESULT IActiveIME_Escape(IActiveIME* This,HIMC hIMC,UINT uEscape,void *pData,LRESULT *plResult) {
3452    return This->lpVtbl->Escape(This,hIMC,uEscape,pData,plResult);
3453}
3454static inline HRESULT IActiveIME_SetActiveContext(IActiveIME* This,HIMC hIMC,WINBOOL fFlag) {
3455    return This->lpVtbl->SetActiveContext(This,hIMC,fFlag);
3456}
3457static inline HRESULT IActiveIME_ProcessKey(IActiveIME* This,HIMC hIMC,UINT uVirKey,DWORD lParam,BYTE *pbKeyState) {
3458    return This->lpVtbl->ProcessKey(This,hIMC,uVirKey,lParam,pbKeyState);
3459}
3460static inline HRESULT IActiveIME_Notify(IActiveIME* This,HIMC hIMC,DWORD dwAction,DWORD dwIndex,DWORD dwValue) {
3461    return This->lpVtbl->Notify(This,hIMC,dwAction,dwIndex,dwValue);
3462}
3463static inline HRESULT IActiveIME_Select(IActiveIME* This,HIMC hIMC,WINBOOL fSelect) {
3464    return This->lpVtbl->Select(This,hIMC,fSelect);
3465}
3466static inline 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}
3469static inline 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}
3472static inline HRESULT IActiveIME_RegisterWord(IActiveIME* This,LPWSTR szReading,DWORD dwStyle,LPWSTR szString) {
3473    return This->lpVtbl->RegisterWord(This,szReading,dwStyle,szString);
3474}
3475static inline HRESULT IActiveIME_UnregisterWord(IActiveIME* This,LPWSTR szReading,DWORD dwStyle,LPWSTR szString) {
3476    return This->lpVtbl->UnregisterWord(This,szReading,dwStyle,szString);
3477}
3478static inline HRESULT IActiveIME_GetRegisterWordStyle(IActiveIME* This,UINT nItem,STYLEBUFW *pStyleBuf,UINT *puBufSize) {
3479    return This->lpVtbl->GetRegisterWordStyle(This,nItem,pStyleBuf,puBufSize);
3480}
3481static inline 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}
3484static inline HRESULT IActiveIME_GetCodePageA(IActiveIME* This,UINT *uCodePage) {
3485    return This->lpVtbl->GetCodePageA(This,uCodePage);
3486}
3487static inline 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
3504DEFINE_GUID(IID_IActiveIME2, 0xe1c4bf0e, 0x2d53, 0x11d2, 0x93,0xe1, 0x00,0x60,0xb0,0x67,0xb8,0x6e);
3505#if defined(__cplusplus) && !defined(CINTERFACE)
3506MIDL_INTERFACE("e1c4bf0e-2d53-11d2-93e1-0060b067b86e")
3507IActiveIME2 : 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
3520typedef 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
3658interface 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 ***/
3691static inline HRESULT IActiveIME2_QueryInterface(IActiveIME2* This,REFIID riid,void **ppvObject) {
3692    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3693}
3694static inline ULONG IActiveIME2_AddRef(IActiveIME2* This) {
3695    return This->lpVtbl->AddRef(This);
3696}
3697static inline ULONG IActiveIME2_Release(IActiveIME2* This) {
3698    return This->lpVtbl->Release(This);
3699}
3700/*** IActiveIME methods ***/
3701static inline HRESULT IActiveIME2_Inquire(IActiveIME2* This,DWORD dwSystemInfoFlags,IMEINFO *pIMEInfo,LPWSTR szWndClass,DWORD *pdwPrivate) {
3702    return This->lpVtbl->Inquire(This,dwSystemInfoFlags,pIMEInfo,szWndClass,pdwPrivate);
3703}
3704static inline 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}
3707static inline HRESULT IActiveIME2_Configure(IActiveIME2* This,HKL hKL,HWND hWnd,DWORD dwMode,REGISTERWORDW *pRegisterWord) {
3708    return This->lpVtbl->Configure(This,hKL,hWnd,dwMode,pRegisterWord);
3709}
3710static inline HRESULT IActiveIME2_Destroy(IActiveIME2* This,UINT uReserved) {
3711    return This->lpVtbl->Destroy(This,uReserved);
3712}
3713static inline HRESULT IActiveIME2_Escape(IActiveIME2* This,HIMC hIMC,UINT uEscape,void *pData,LRESULT *plResult) {
3714    return This->lpVtbl->Escape(This,hIMC,uEscape,pData,plResult);
3715}
3716static inline HRESULT IActiveIME2_SetActiveContext(IActiveIME2* This,HIMC hIMC,WINBOOL fFlag) {
3717    return This->lpVtbl->SetActiveContext(This,hIMC,fFlag);
3718}
3719static inline HRESULT IActiveIME2_ProcessKey(IActiveIME2* This,HIMC hIMC,UINT uVirKey,DWORD lParam,BYTE *pbKeyState) {
3720    return This->lpVtbl->ProcessKey(This,hIMC,uVirKey,lParam,pbKeyState);
3721}
3722static inline HRESULT IActiveIME2_Notify(IActiveIME2* This,HIMC hIMC,DWORD dwAction,DWORD dwIndex,DWORD dwValue) {
3723    return This->lpVtbl->Notify(This,hIMC,dwAction,dwIndex,dwValue);
3724}
3725static inline HRESULT IActiveIME2_Select(IActiveIME2* This,HIMC hIMC,WINBOOL fSelect) {
3726    return This->lpVtbl->Select(This,hIMC,fSelect);
3727}
3728static inline 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}
3731static inline 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}
3734static inline HRESULT IActiveIME2_RegisterWord(IActiveIME2* This,LPWSTR szReading,DWORD dwStyle,LPWSTR szString) {
3735    return This->lpVtbl->RegisterWord(This,szReading,dwStyle,szString);
3736}
3737static inline HRESULT IActiveIME2_UnregisterWord(IActiveIME2* This,LPWSTR szReading,DWORD dwStyle,LPWSTR szString) {
3738    return This->lpVtbl->UnregisterWord(This,szReading,dwStyle,szString);
3739}
3740static inline HRESULT IActiveIME2_GetRegisterWordStyle(IActiveIME2* This,UINT nItem,STYLEBUFW *pStyleBuf,UINT *puBufSize) {
3741    return This->lpVtbl->GetRegisterWordStyle(This,nItem,pStyleBuf,puBufSize);
3742}
3743static inline 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}
3746static inline HRESULT IActiveIME2_GetCodePageA(IActiveIME2* This,UINT *uCodePage) {
3747    return This->lpVtbl->GetCodePageA(This,uCodePage);
3748}
3749static inline HRESULT IActiveIME2_GetLangId(IActiveIME2* This,LANGID *plid) {
3750    return This->lpVtbl->GetLangId(This,plid);
3751}
3752/*** IActiveIME2 methods ***/
3753static inline HRESULT IActiveIME2_Sleep(IActiveIME2* This) {
3754    return This->lpVtbl->Sleep(This);
3755}
3756static inline 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
3773DEFINE_GUID(IID_IEnumRegisterWordA, 0x08c03412, 0xf96b, 0x11d0, 0xa4,0x75, 0x00,0xaa,0x00,0x6b,0xcc,0x59);
3774#if defined(__cplusplus) && !defined(CINTERFACE)
3775MIDL_INTERFACE("08c03412-f96b-11d0-a475-00aa006bcc59")
3776IEnumRegisterWordA : 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
3797typedef 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
3833interface 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 ***/
3850static inline HRESULT IEnumRegisterWordA_QueryInterface(IEnumRegisterWordA* This,REFIID riid,void **ppvObject) {
3851    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3852}
3853static inline ULONG IEnumRegisterWordA_AddRef(IEnumRegisterWordA* This) {
3854    return This->lpVtbl->AddRef(This);
3855}
3856static inline ULONG IEnumRegisterWordA_Release(IEnumRegisterWordA* This) {
3857    return This->lpVtbl->Release(This);
3858}
3859/*** IEnumRegisterWordA methods ***/
3860static inline HRESULT IEnumRegisterWordA_Clone(IEnumRegisterWordA* This,IEnumRegisterWordA **ppEnum) {
3861    return This->lpVtbl->Clone(This,ppEnum);
3862}
3863static inline HRESULT IEnumRegisterWordA_Next(IEnumRegisterWordA* This,ULONG ulCount,REGISTERWORDA *rgRegisterWord,ULONG *pcFetched) {
3864    return This->lpVtbl->Next(This,ulCount,rgRegisterWord,pcFetched);
3865}
3866static inline HRESULT IEnumRegisterWordA_Reset(IEnumRegisterWordA* This) {
3867    return This->lpVtbl->Reset(This);
3868}
3869static inline 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
3886DEFINE_GUID(IID_IEnumRegisterWordW, 0x4955dd31, 0xb159, 0x11d0, 0x8f,0xcf, 0x00,0xaa,0x00,0x6b,0xcc,0x59);
3887#if defined(__cplusplus) && !defined(CINTERFACE)
3888MIDL_INTERFACE("4955dd31-b159-11d0-8fcf-00aa006bcc59")
3889IEnumRegisterWordW : 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
3910typedef 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
3946interface 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 ***/
3963static inline HRESULT IEnumRegisterWordW_QueryInterface(IEnumRegisterWordW* This,REFIID riid,void **ppvObject) {
3964    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3965}
3966static inline ULONG IEnumRegisterWordW_AddRef(IEnumRegisterWordW* This) {
3967    return This->lpVtbl->AddRef(This);
3968}
3969static inline ULONG IEnumRegisterWordW_Release(IEnumRegisterWordW* This) {
3970    return This->lpVtbl->Release(This);
3971}
3972/*** IEnumRegisterWordW methods ***/
3973static inline HRESULT IEnumRegisterWordW_Clone(IEnumRegisterWordW* This,IEnumRegisterWordW **ppEnum) {
3974    return This->lpVtbl->Clone(This,ppEnum);
3975}
3976static inline HRESULT IEnumRegisterWordW_Next(IEnumRegisterWordW* This,ULONG ulCount,REGISTERWORDW *rgRegisterWord,ULONG *pcFetched) {
3977    return This->lpVtbl->Next(This,ulCount,rgRegisterWord,pcFetched);
3978}
3979static inline HRESULT IEnumRegisterWordW_Reset(IEnumRegisterWordW* This) {
3980    return This->lpVtbl->Reset(This);
3981}
3982static inline 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
3997DEFINE_GUID(CLSID_CActiveIMM, 0x4955dd33, 0xb159, 0x11d0, 0x8f,0xcf, 0x00,0xaa,0x00,0x6b,0xcc,0x59);
3998
3999#ifdef __cplusplus
4000class 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
4010ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
4011unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
4012unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
4013void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
4014ULONG           __RPC_USER HBITMAP_UserSize     (ULONG *, ULONG, HBITMAP *);
4015unsigned char * __RPC_USER HBITMAP_UserMarshal  (ULONG *, unsigned char *, HBITMAP *);
4016unsigned char * __RPC_USER HBITMAP_UserUnmarshal(ULONG *, unsigned char *, HBITMAP *);
4017void            __RPC_USER HBITMAP_UserFree     (ULONG *, HBITMAP *);
4018
4019/* End additional prototypes */
4020
4021#ifdef __cplusplus
4022}
4023#endif
4024
4025#endif /* __dimm_h__ */