/*** Autogenerated by WIDL 1.3.27 from dimm.idl - Do not edit ***/

#include <rpc.h>
#include <rpcndr.h>

#if !defined(COM_NO_WINDOWS_H) && !defined(__WINESRC__)
#include <windows.h>
#include <ole2.h>
#endif

#ifndef __WIDL_DIMM_H
#define __WIDL_DIMM_H

/* Forward declarations */

#ifndef __IEnumRegisterWordA_FWD_DEFINED__
#define __IEnumRegisterWordA_FWD_DEFINED__
typedef interface IEnumRegisterWordA IEnumRegisterWordA;
#endif

#ifndef __IEnumRegisterWordW_FWD_DEFINED__
#define __IEnumRegisterWordW_FWD_DEFINED__
typedef interface IEnumRegisterWordW IEnumRegisterWordW;
#endif

#ifndef __IEnumInputContext_FWD_DEFINED__
#define __IEnumInputContext_FWD_DEFINED__
typedef interface IEnumInputContext IEnumInputContext;
#endif

#ifndef __IActiveIMMApp_FWD_DEFINED__
#define __IActiveIMMApp_FWD_DEFINED__
typedef interface IActiveIMMApp IActiveIMMApp;
#endif

#ifndef __CActiveIMM_FWD_DEFINED__
#define __CActiveIMM_FWD_DEFINED__
typedef struct CActiveIMM CActiveIMM;
#endif /* defined __CActiveIMM_FWD_DEFINED__ */

/* Headers for imported files */

#include <unknwn.h>

#ifdef __cplusplus
extern "C" {
#endif

#include <imm.h>
#if 0
typedef struct __WIDL_dimm_generated_name_00000000 {
    LPSTR lpReading;
    LPSTR lpWord;
} REGISTERWORDA;
typedef struct __WIDL_dimm_generated_name_00000001 {
    LPWSTR lpReading;
    LPWSTR lpWord;
} REGISTERWORDW;
typedef struct __WIDL_dimm_generated_name_00000002 {
    LONG lfHeight;
    LONG lfWidth;
    LONG lfEscapement;
    LONG lfOrientation;
    LONG lfWeight;
    BYTE lfItalic;
    BYTE lfUnderline;
    BYTE lfStrikeOut;
    BYTE lfCharSet;
    BYTE lfOutPrecision;
    BYTE lfClipPrecision;
    BYTE lfQuality;
    BYTE lfPitchAndFamily;
    CHAR lfFaceName[32];
} LOGFONTA;
typedef struct __WIDL_dimm_generated_name_00000003 {
    LONG lfHeight;
    LONG lfWidth;
    LONG lfEscapement;
    LONG lfOrientation;
    LONG lfWeight;
    BYTE lfItalic;
    BYTE lfUnderline;
    BYTE lfStrikeOut;
    BYTE lfCharSet;
    BYTE lfOutPrecision;
    BYTE lfClipPrecision;
    BYTE lfQuality;
    BYTE lfPitchAndFamily;
    WCHAR lfFaceName[32];
} LOGFONTW;
typedef DWORD HIMC;
typedef DWORD HIMCC;
typedef struct __WIDL_dimm_generated_name_00000004 {
    DWORD dwIndex;
    DWORD dwStyle;
    POINT ptCurrentPos;
    RECT rcArea;
} CANDIDATEFORM;
typedef struct __WIDL_dimm_generated_name_00000005 {
    DWORD dwStyle;
    POINT ptCurrentPos;
    RECT rcArea;
} COMPOSITIONFORM;
typedef struct __WIDL_dimm_generated_name_00000006 {
    DWORD dwSize;
    DWORD dwStyle;
    DWORD dwCount;
    DWORD dwSelection;
    DWORD dwPageStart;
    DWORD dwPageSize;
    DWORD dwOffset[1];
} CANDIDATELIST;
typedef struct __WIDL_dimm_generated_name_00000007 {
    DWORD dwStyle;
    CHAR szDescription[32];
} STYLEBUFA;
typedef struct __WIDL_dimm_generated_name_00000008 {
    DWORD dwStyle;
    WCHAR szDescription[32];
} STYLEBUFW;
typedef WORD ATOM;
typedef struct __WIDL_dimm_generated_name_00000009 {
    UINT cbSize;
    UINT fType;
    UINT fState;
    UINT wID;
    HBITMAP hbmpChecked;
    HBITMAP hbmpUnchecked;
    DWORD dwItemData;
    CHAR szString[80];
    HBITMAP hbmpItem;
} IMEMENUITEMINFOA;
typedef struct __WIDL_dimm_generated_name_0000000A {
    UINT cbSize;
    UINT fType;
    UINT fState;
    UINT wID;
    HBITMAP hbmpChecked;
    HBITMAP hbmpUnchecked;
    DWORD dwItemData;
    WCHAR szString[80];
    HBITMAP hbmpItem;
} IMEMENUITEMINFOW;
#endif
/*****************************************************************************
 * IEnumRegisterWordA interface
 */
#ifndef __IEnumRegisterWordA_INTERFACE_DEFINED__
#define __IEnumRegisterWordA_INTERFACE_DEFINED__

DEFINE_GUID(IID_IEnumRegisterWordA, 0x08c03412, 0xf96b, 0x11d0, 0xa4,0x75, 0x00,0xaa,0x00,0x6b,0xcc,0x59);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("08c03412-f96b-11d0-a475-00aa006bcc59")
IEnumRegisterWordA : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE Clone(
        IEnumRegisterWordA **ppEnum) = 0;

    virtual HRESULT STDMETHODCALLTYPE Next(
        ULONG ulCount,
        REGISTERWORDA *rgRegisterword,
        ULONG *pcFetched) = 0;

    virtual HRESULT STDMETHODCALLTYPE Reset(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE Skip(
        ULONG ulCount) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IEnumRegisterWordA, 0x08c03412, 0xf96b, 0x11d0, 0xa4,0x75, 0x00,0xaa,0x00,0x6b,0xcc,0x59)
#endif
#else
typedef struct IEnumRegisterWordAVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IEnumRegisterWordA* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IEnumRegisterWordA* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IEnumRegisterWordA* This);

    /*** IEnumRegisterWordA methods ***/
    HRESULT (STDMETHODCALLTYPE *Clone)(
        IEnumRegisterWordA* This,
        IEnumRegisterWordA **ppEnum);

    HRESULT (STDMETHODCALLTYPE *Next)(
        IEnumRegisterWordA* This,
        ULONG ulCount,
        REGISTERWORDA *rgRegisterword,
        ULONG *pcFetched);

    HRESULT (STDMETHODCALLTYPE *Reset)(
        IEnumRegisterWordA* This);

    HRESULT (STDMETHODCALLTYPE *Skip)(
        IEnumRegisterWordA* This,
        ULONG ulCount);

    END_INTERFACE
} IEnumRegisterWordAVtbl;
interface IEnumRegisterWordA {
    CONST_VTBL IEnumRegisterWordAVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IEnumRegisterWordA_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IEnumRegisterWordA_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IEnumRegisterWordA_Release(This) (This)->lpVtbl->Release(This)
/*** IEnumRegisterWordA methods ***/
#define IEnumRegisterWordA_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
#define IEnumRegisterWordA_Next(This,ulCount,rgRegisterword,pcFetched) (This)->lpVtbl->Next(This,ulCount,rgRegisterword,pcFetched)
#define IEnumRegisterWordA_Reset(This) (This)->lpVtbl->Reset(This)
#define IEnumRegisterWordA_Skip(This,ulCount) (This)->lpVtbl->Skip(This,ulCount)
#endif

#endif

HRESULT STDMETHODCALLTYPE IEnumRegisterWordA_Clone_Proxy(
    IEnumRegisterWordA* This,
    IEnumRegisterWordA **ppEnum);
void __RPC_STUB IEnumRegisterWordA_Clone_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IEnumRegisterWordA_Next_Proxy(
    IEnumRegisterWordA* This,
    ULONG ulCount,
    REGISTERWORDA *rgRegisterword,
    ULONG *pcFetched);
void __RPC_STUB IEnumRegisterWordA_Next_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IEnumRegisterWordA_Reset_Proxy(
    IEnumRegisterWordA* This);
void __RPC_STUB IEnumRegisterWordA_Reset_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IEnumRegisterWordA_Skip_Proxy(
    IEnumRegisterWordA* This,
    ULONG ulCount);
void __RPC_STUB IEnumRegisterWordA_Skip_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IEnumRegisterWordA_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IEnumRegisterWordW interface
 */
#ifndef __IEnumRegisterWordW_INTERFACE_DEFINED__
#define __IEnumRegisterWordW_INTERFACE_DEFINED__

DEFINE_GUID(IID_IEnumRegisterWordW, 0x4955dd31, 0xb159, 0x11d0, 0x8f,0xcf, 0x00,0xaa,0x00,0x6b,0xcc,0x59);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("4955dd31-b159-11d0-8fcf-00aa006bcc59")
IEnumRegisterWordW : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE Clone(
        IEnumRegisterWordW **ppEnum) = 0;

    virtual HRESULT STDMETHODCALLTYPE Next(
        ULONG ulCount,
        REGISTERWORDW *rgRegisterword,
        ULONG *pcFetched) = 0;

    virtual HRESULT STDMETHODCALLTYPE Reset(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE Skip(
        ULONG ulCount) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IEnumRegisterWordW, 0x4955dd31, 0xb159, 0x11d0, 0x8f,0xcf, 0x00,0xaa,0x00,0x6b,0xcc,0x59)
#endif
#else
typedef struct IEnumRegisterWordWVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IEnumRegisterWordW* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IEnumRegisterWordW* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IEnumRegisterWordW* This);

    /*** IEnumRegisterWordW methods ***/
    HRESULT (STDMETHODCALLTYPE *Clone)(
        IEnumRegisterWordW* This,
        IEnumRegisterWordW **ppEnum);

    HRESULT (STDMETHODCALLTYPE *Next)(
        IEnumRegisterWordW* This,
        ULONG ulCount,
        REGISTERWORDW *rgRegisterword,
        ULONG *pcFetched);

    HRESULT (STDMETHODCALLTYPE *Reset)(
        IEnumRegisterWordW* This);

    HRESULT (STDMETHODCALLTYPE *Skip)(
        IEnumRegisterWordW* This,
        ULONG ulCount);

    END_INTERFACE
} IEnumRegisterWordWVtbl;
interface IEnumRegisterWordW {
    CONST_VTBL IEnumRegisterWordWVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IEnumRegisterWordW_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IEnumRegisterWordW_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IEnumRegisterWordW_Release(This) (This)->lpVtbl->Release(This)
/*** IEnumRegisterWordW methods ***/
#define IEnumRegisterWordW_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
#define IEnumRegisterWordW_Next(This,ulCount,rgRegisterword,pcFetched) (This)->lpVtbl->Next(This,ulCount,rgRegisterword,pcFetched)
#define IEnumRegisterWordW_Reset(This) (This)->lpVtbl->Reset(This)
#define IEnumRegisterWordW_Skip(This,ulCount) (This)->lpVtbl->Skip(This,ulCount)
#endif

#endif

HRESULT STDMETHODCALLTYPE IEnumRegisterWordW_Clone_Proxy(
    IEnumRegisterWordW* This,
    IEnumRegisterWordW **ppEnum);
void __RPC_STUB IEnumRegisterWordW_Clone_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IEnumRegisterWordW_Next_Proxy(
    IEnumRegisterWordW* This,
    ULONG ulCount,
    REGISTERWORDW *rgRegisterword,
    ULONG *pcFetched);
void __RPC_STUB IEnumRegisterWordW_Next_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IEnumRegisterWordW_Reset_Proxy(
    IEnumRegisterWordW* This);
void __RPC_STUB IEnumRegisterWordW_Reset_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IEnumRegisterWordW_Skip_Proxy(
    IEnumRegisterWordW* This,
    ULONG ulCount);
void __RPC_STUB IEnumRegisterWordW_Skip_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IEnumRegisterWordW_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IEnumInputContext interface
 */
#ifndef __IEnumInputContext_INTERFACE_DEFINED__
#define __IEnumInputContext_INTERFACE_DEFINED__

DEFINE_GUID(IID_IEnumInputContext, 0x09b5eab0, 0xf997, 0x11d1, 0x93,0xd4, 0x00,0x60,0xb0,0x67,0xb8,0x6e);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("09b5eab0-f997-11d1-93d4-0060b067b86e")
IEnumInputContext : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE Clone(
        IEnumInputContext **ppEnum) = 0;

    virtual HRESULT STDMETHODCALLTYPE Next(
        ULONG ulCount,
        HIMC *rgInputContext,
        ULONG *pcFetched) = 0;

    virtual HRESULT STDMETHODCALLTYPE Reset(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE Skip(
        ULONG ulCount) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IEnumInputContext, 0x09b5eab0, 0xf997, 0x11d1, 0x93,0xd4, 0x00,0x60,0xb0,0x67,0xb8,0x6e)
#endif
#else
typedef struct IEnumInputContextVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IEnumInputContext* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IEnumInputContext* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IEnumInputContext* This);

    /*** IEnumInputContext methods ***/
    HRESULT (STDMETHODCALLTYPE *Clone)(
        IEnumInputContext* This,
        IEnumInputContext **ppEnum);

    HRESULT (STDMETHODCALLTYPE *Next)(
        IEnumInputContext* This,
        ULONG ulCount,
        HIMC *rgInputContext,
        ULONG *pcFetched);

    HRESULT (STDMETHODCALLTYPE *Reset)(
        IEnumInputContext* This);

    HRESULT (STDMETHODCALLTYPE *Skip)(
        IEnumInputContext* This,
        ULONG ulCount);

    END_INTERFACE
} IEnumInputContextVtbl;
interface IEnumInputContext {
    CONST_VTBL IEnumInputContextVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IEnumInputContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IEnumInputContext_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IEnumInputContext_Release(This) (This)->lpVtbl->Release(This)
/*** IEnumInputContext methods ***/
#define IEnumInputContext_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
#define IEnumInputContext_Next(This,ulCount,rgInputContext,pcFetched) (This)->lpVtbl->Next(This,ulCount,rgInputContext,pcFetched)
#define IEnumInputContext_Reset(This) (This)->lpVtbl->Reset(This)
#define IEnumInputContext_Skip(This,ulCount) (This)->lpVtbl->Skip(This,ulCount)
#endif

#endif

HRESULT STDMETHODCALLTYPE IEnumInputContext_Clone_Proxy(
    IEnumInputContext* This,
    IEnumInputContext **ppEnum);
void __RPC_STUB IEnumInputContext_Clone_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IEnumInputContext_Next_Proxy(
    IEnumInputContext* This,
    ULONG ulCount,
    HIMC *rgInputContext,
    ULONG *pcFetched);
void __RPC_STUB IEnumInputContext_Next_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IEnumInputContext_Reset_Proxy(
    IEnumInputContext* This);
void __RPC_STUB IEnumInputContext_Reset_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IEnumInputContext_Skip_Proxy(
    IEnumInputContext* This,
    ULONG ulCount);
void __RPC_STUB IEnumInputContext_Skip_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IEnumInputContext_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IActiveIMMApp interface
 */
#ifndef __IActiveIMMApp_INTERFACE_DEFINED__
#define __IActiveIMMApp_INTERFACE_DEFINED__

DEFINE_GUID(IID_IActiveIMMApp, 0x08c0e040, 0x62d1, 0x11d1, 0x93,0x26, 0x00,0x60,0xb0,0x67,0xb8,0x6e);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("08c0e040-62d1-11d1-9326-0060b067b86e")
IActiveIMMApp : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE AssociateContext(
        HWND hWnd,
        HIMC hIME,
        HIMC *phPrev) = 0;

    virtual HRESULT STDMETHODCALLTYPE ConfigureIMEA(
        HKL hKL,
        HWND hwnd,
        DWORD dwMode,
        REGISTERWORDA *pData) = 0;

    virtual HRESULT STDMETHODCALLTYPE ConfigureIMEW(
        HKL hKL,
        HWND hWnd,
        DWORD dwMode,
        REGISTERWORDW *pData) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateContext(
        HIMC *phIMC) = 0;

    virtual HRESULT STDMETHODCALLTYPE DestroyContext(
        HIMC hIME) = 0;

    virtual HRESULT STDMETHODCALLTYPE EnumRegisterWordA(
        HKL hKL,
        LPSTR szReading,
        DWORD dwStyle,
        LPSTR szRegister,
        LPVOID pData,
        IEnumRegisterWordA **pEnum) = 0;

    virtual HRESULT STDMETHODCALLTYPE EnumRegisterWordW(
        HKL hKL,
        LPWSTR szReading,
        DWORD dwStyle,
        LPWSTR szRegister,
        LPVOID pData,
        IEnumRegisterWordW **pEnum) = 0;

    virtual HRESULT STDMETHODCALLTYPE EscapeA(
        HKL hKL,
        HIMC hIMC,
        UINT uEscape,
        LPVOID pData,
        LRESULT *plResult) = 0;

    virtual HRESULT STDMETHODCALLTYPE EscapeW(
        HKL hKL,
        HIMC hIMC,
        UINT uEscape,
        LPVOID pData,
        LRESULT *plResult) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetCandidateListA(
        HIMC hIMC,
        DWORD dwIndex,
        UINT uBufLen,
        CANDIDATELIST *pCandList,
        UINT *puCopied) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetCandidateListW(
        HIMC hIMC,
        DWORD dwIndex,
        UINT uBufLen,
        CANDIDATELIST *pCandList,
        UINT *puCopied) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetCandidateListCountA(
        HIMC hIMC,
        DWORD *pdwListSize,
        DWORD *pdwBufLen) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetCandidateListCountW(
        HIMC hIMC,
        DWORD *pdwListSize,
        DWORD *pdwBufLen) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetCandidateWindow(
        HIMC hIMC,
        DWORD dwIndex,
        CANDIDATEFORM *pCandidate) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetCompositionFontA(
        HIMC hIMC,
        LOGFONTA *plf) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetCompositionFontW(
        HIMC hIMC,
        LOGFONTW *plf) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetCompositionStringA(
        HIMC hIMC,
        DWORD dwIndex,
        DWORD dwBufLen,
        LONG *plCopied,
        LPVOID pBuf) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetCompositionStringW(
        HIMC hIMC,
        DWORD dwIndex,
        DWORD dwBufLen,
        LONG *plCopied,
        LPVOID pBuf) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetCompositionWindow(
        HIMC hIMC,
        COMPOSITIONFORM *pCompForm) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetContext(
        HWND hwnd,
        HIMC *phIMC) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetConversionListA(
        HKL hKL,
        HIMC hIMC,
        LPSTR pSrc,
        UINT uBufLen,
        UINT uFlag,
        CANDIDATELIST *pDst,
        UINT *puCopied) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetConversionListW(
        HKL hKL,
        HIMC hIMC,
        LPWSTR pSrc,
        UINT uBufLen,
        UINT uFlag,
        CANDIDATELIST *pDst,
        UINT *puCopied) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetConversionStatus(
        HIMC hIMC,
        DWORD *pfdwConversion,
        DWORD *pfdwSentence) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetDefaultIMEWnd(
        HWND hWnd,
        HWND *phDefWnd) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetDescriptionA(
        HKL hKL,
        UINT uBufLen,
        LPSTR szDescription,
        UINT *puCopied) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetDescriptionW(
        HKL hKL,
        UINT uBufLen,
        LPWSTR szDescription,
        UINT *puCopied) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetGuideLineA(
        HIMC hIMC,
        DWORD dwIndex,
        DWORD dwBufLen,
        LPSTR pBuf,
        DWORD *pdwResult) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetGuideLineW(
        HIMC hIMC,
        DWORD dwIndex,
        DWORD dwBufLen,
        LPWSTR pBuf,
        DWORD *pdwResult) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetIMEFileNameA(
        HKL hKL,
        UINT uBufLen,
        LPSTR szFileName,
        UINT *puCopied) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetIMEFileNameW(
        HKL hKL,
        UINT uBufLen,
        LPWSTR szFileName,
        UINT *puCopied) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetOpenStatus(
        HIMC hIMC) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetProperty(
        HKL hKL,
        DWORD fdwIndex,
        DWORD *pdwProperty) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetRegisterWordStyleA(
        HKL hKL,
        UINT nItem,
        STYLEBUFA *pStyleBuf,
        UINT *puCopied) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetRegisterWordStyleW(
        HKL hKL,
        UINT nItem,
        STYLEBUFW *pStyleBuf,
        UINT *puCopied) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetStatusWindowPos(
        HIMC hIMC,
        POINT *pptPos) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetVirtualKey(
        HWND hWnd,
        UINT *puVirtualKey) = 0;

    virtual HRESULT STDMETHODCALLTYPE InstallIMEA(
        LPSTR szIMEFileName,
        LPSTR szLayoutText,
        HKL *phKL) = 0;

    virtual HRESULT STDMETHODCALLTYPE InstallIMEW(
        LPWSTR szIMEFileName,
        LPWSTR szLayoutText,
        HKL *phKL) = 0;

    virtual HRESULT STDMETHODCALLTYPE IsIME(
        HKL hKL) = 0;

    virtual HRESULT STDMETHODCALLTYPE IsUIMessageA(
        HWND hWndIME,
        UINT msg,
        WPARAM wParam,
        LPARAM lParam) = 0;

    virtual HRESULT STDMETHODCALLTYPE IsUIMessageW(
        HWND hWndIME,
        UINT msg,
        WPARAM wParam,
        LPARAM lParam) = 0;

    virtual HRESULT STDMETHODCALLTYPE NotifyIME(
        HIMC hIMC,
        DWORD dwAction,
        DWORD dwIndex,
        DWORD dwValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE RegisterWordA(
        HKL hKL,
        LPSTR szReading,
        DWORD dwStyle,
        LPSTR szRegister) = 0;

    virtual HRESULT STDMETHODCALLTYPE RegisterWordW(
        HKL hKL,
        LPWSTR szReading,
        DWORD dwStyle,
        LPWSTR szRegister) = 0;

    virtual HRESULT STDMETHODCALLTYPE ReleaseContext(
        HWND hWnd,
        HIMC hIMC) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetCandidateWindow(
        HIMC hIMC,
        CANDIDATEFORM *pCandidate) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetCompositionFontA(
        HIMC hIMC,
        LOGFONTA *plf) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetCompositionFontW(
        HIMC hIMC,
        LOGFONTW *plf) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetCompositionStringA(
        HIMC hIMC,
        DWORD dwIndex,
        LPVOID pComp,
        DWORD dwCompLen,
        LPVOID pRead,
        DWORD dwReadLen) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetCompositionStringW(
        HIMC hIMC,
        DWORD dwIndex,
        LPVOID pComp,
        DWORD dwCompLen,
        LPVOID pRead,
        DWORD dwReadLen) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetCompositionWindow(
        HIMC hIMC,
        COMPOSITIONFORM *pCompForm) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetConversionStatus(
        HIMC hIMC,
        DWORD fdwConversion,
        DWORD fdwSentence) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetOpenStatus(
        HIMC hIMC,
        BOOL fOpen) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetStatusWindowPos(
        HIMC hIMC,
        POINT *pptPos) = 0;

    virtual HRESULT STDMETHODCALLTYPE SimulateHotKey(
        HWND hwnd,
        DWORD dwHotKeyID) = 0;

    virtual HRESULT STDMETHODCALLTYPE UnregisterWordA(
        HKL hKL,
        LPSTR szReading,
        DWORD dwStyle,
        LPSTR szUnregister) = 0;

    virtual HRESULT STDMETHODCALLTYPE UnregisterWordW(
        HKL hKL,
        LPWSTR szReading,
        DWORD dwStyle,
        LPWSTR szUnregister) = 0;

    virtual HRESULT STDMETHODCALLTYPE Activate(
        BOOL fRestoreLayout) = 0;

    virtual HRESULT STDMETHODCALLTYPE Deactivate(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE OnDefWindowProc(
        HWND hWnd,
        UINT Msg,
        WPARAM wParam,
        LPARAM lParam,
        LRESULT *plResult) = 0;

    virtual HRESULT STDMETHODCALLTYPE FilterClientWindows(
        ATOM *aaClassList,
        UINT uSize) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetCodePageA(
        HKL hKL,
        UINT *uCodePage) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetLangId(
        HKL hKL,
        LANGID *plid) = 0;

    virtual HRESULT STDMETHODCALLTYPE AssociateContextEx(
        HWND hWnd,
        HIMC hIMC,
        DWORD dwFlags) = 0;

    virtual HRESULT STDMETHODCALLTYPE DisableIME(
        DWORD idThread) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetImeMenuItemsA(
        HIMC hIMC,
        DWORD dwFlags,
        DWORD dwType,
        IMEMENUITEMINFOA *pImeParentMenu,
        IMEMENUITEMINFOA *pImeMenu,
        DWORD dwSize,
        DWORD *pdwResult) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetImeMenuItemsW(
        HIMC hIMC,
        DWORD dwFlags,
        DWORD dwType,
        IMEMENUITEMINFOW *pImeParentMenu,
        IMEMENUITEMINFOW *pImeMenu,
        DWORD dwSize,
        DWORD *pdwResult) = 0;

    virtual HRESULT STDMETHODCALLTYPE EnumInputContext(
        DWORD idThread,
        IEnumInputContext **ppEnum) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IActiveIMMApp, 0x08c0e040, 0x62d1, 0x11d1, 0x93,0x26, 0x00,0x60,0xb0,0x67,0xb8,0x6e)
#endif
#else
typedef struct IActiveIMMAppVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IActiveIMMApp* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IActiveIMMApp* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IActiveIMMApp* This);

    /*** IActiveIMMApp methods ***/
    HRESULT (STDMETHODCALLTYPE *AssociateContext)(
        IActiveIMMApp* This,
        HWND hWnd,
        HIMC hIME,
        HIMC *phPrev);

    HRESULT (STDMETHODCALLTYPE *ConfigureIMEA)(
        IActiveIMMApp* This,
        HKL hKL,
        HWND hwnd,
        DWORD dwMode,
        REGISTERWORDA *pData);

    HRESULT (STDMETHODCALLTYPE *ConfigureIMEW)(
        IActiveIMMApp* This,
        HKL hKL,
        HWND hWnd,
        DWORD dwMode,
        REGISTERWORDW *pData);

    HRESULT (STDMETHODCALLTYPE *CreateContext)(
        IActiveIMMApp* This,
        HIMC *phIMC);

    HRESULT (STDMETHODCALLTYPE *DestroyContext)(
        IActiveIMMApp* This,
        HIMC hIME);

    HRESULT (STDMETHODCALLTYPE *EnumRegisterWordA)(
        IActiveIMMApp* This,
        HKL hKL,
        LPSTR szReading,
        DWORD dwStyle,
        LPSTR szRegister,
        LPVOID pData,
        IEnumRegisterWordA **pEnum);

    HRESULT (STDMETHODCALLTYPE *EnumRegisterWordW)(
        IActiveIMMApp* This,
        HKL hKL,
        LPWSTR szReading,
        DWORD dwStyle,
        LPWSTR szRegister,
        LPVOID pData,
        IEnumRegisterWordW **pEnum);

    HRESULT (STDMETHODCALLTYPE *EscapeA)(
        IActiveIMMApp* This,
        HKL hKL,
        HIMC hIMC,
        UINT uEscape,
        LPVOID pData,
        LRESULT *plResult);

    HRESULT (STDMETHODCALLTYPE *EscapeW)(
        IActiveIMMApp* This,
        HKL hKL,
        HIMC hIMC,
        UINT uEscape,
        LPVOID pData,
        LRESULT *plResult);

    HRESULT (STDMETHODCALLTYPE *GetCandidateListA)(
        IActiveIMMApp* This,
        HIMC hIMC,
        DWORD dwIndex,
        UINT uBufLen,
        CANDIDATELIST *pCandList,
        UINT *puCopied);

    HRESULT (STDMETHODCALLTYPE *GetCandidateListW)(
        IActiveIMMApp* This,
        HIMC hIMC,
        DWORD dwIndex,
        UINT uBufLen,
        CANDIDATELIST *pCandList,
        UINT *puCopied);

    HRESULT (STDMETHODCALLTYPE *GetCandidateListCountA)(
        IActiveIMMApp* This,
        HIMC hIMC,
        DWORD *pdwListSize,
        DWORD *pdwBufLen);

    HRESULT (STDMETHODCALLTYPE *GetCandidateListCountW)(
        IActiveIMMApp* This,
        HIMC hIMC,
        DWORD *pdwListSize,
        DWORD *pdwBufLen);

    HRESULT (STDMETHODCALLTYPE *GetCandidateWindow)(
        IActiveIMMApp* This,
        HIMC hIMC,
        DWORD dwIndex,
        CANDIDATEFORM *pCandidate);

    HRESULT (STDMETHODCALLTYPE *GetCompositionFontA)(
        IActiveIMMApp* This,
        HIMC hIMC,
        LOGFONTA *plf);

    HRESULT (STDMETHODCALLTYPE *GetCompositionFontW)(
        IActiveIMMApp* This,
        HIMC hIMC,
        LOGFONTW *plf);

    HRESULT (STDMETHODCALLTYPE *GetCompositionStringA)(
        IActiveIMMApp* This,
        HIMC hIMC,
        DWORD dwIndex,
        DWORD dwBufLen,
        LONG *plCopied,
        LPVOID pBuf);

    HRESULT (STDMETHODCALLTYPE *GetCompositionStringW)(
        IActiveIMMApp* This,
        HIMC hIMC,
        DWORD dwIndex,
        DWORD dwBufLen,
        LONG *plCopied,
        LPVOID pBuf);

    HRESULT (STDMETHODCALLTYPE *GetCompositionWindow)(
        IActiveIMMApp* This,
        HIMC hIMC,
        COMPOSITIONFORM *pCompForm);

    HRESULT (STDMETHODCALLTYPE *GetContext)(
        IActiveIMMApp* This,
        HWND hwnd,
        HIMC *phIMC);

    HRESULT (STDMETHODCALLTYPE *GetConversionListA)(
        IActiveIMMApp* This,
        HKL hKL,
        HIMC hIMC,
        LPSTR pSrc,
        UINT uBufLen,
        UINT uFlag,
        CANDIDATELIST *pDst,
        UINT *puCopied);

    HRESULT (STDMETHODCALLTYPE *GetConversionListW)(
        IActiveIMMApp* This,
        HKL hKL,
        HIMC hIMC,
        LPWSTR pSrc,
        UINT uBufLen,
        UINT uFlag,
        CANDIDATELIST *pDst,
        UINT *puCopied);

    HRESULT (STDMETHODCALLTYPE *GetConversionStatus)(
        IActiveIMMApp* This,
        HIMC hIMC,
        DWORD *pfdwConversion,
        DWORD *pfdwSentence);

    HRESULT (STDMETHODCALLTYPE *GetDefaultIMEWnd)(
        IActiveIMMApp* This,
        HWND hWnd,
        HWND *phDefWnd);

    HRESULT (STDMETHODCALLTYPE *GetDescriptionA)(
        IActiveIMMApp* This,
        HKL hKL,
        UINT uBufLen,
        LPSTR szDescription,
        UINT *puCopied);

    HRESULT (STDMETHODCALLTYPE *GetDescriptionW)(
        IActiveIMMApp* This,
        HKL hKL,
        UINT uBufLen,
        LPWSTR szDescription,
        UINT *puCopied);

    HRESULT (STDMETHODCALLTYPE *GetGuideLineA)(
        IActiveIMMApp* This,
        HIMC hIMC,
        DWORD dwIndex,
        DWORD dwBufLen,
        LPSTR pBuf,
        DWORD *pdwResult);

    HRESULT (STDMETHODCALLTYPE *GetGuideLineW)(
        IActiveIMMApp* This,
        HIMC hIMC,
        DWORD dwIndex,
        DWORD dwBufLen,
        LPWSTR pBuf,
        DWORD *pdwResult);

    HRESULT (STDMETHODCALLTYPE *GetIMEFileNameA)(
        IActiveIMMApp* This,
        HKL hKL,
        UINT uBufLen,
        LPSTR szFileName,
        UINT *puCopied);

    HRESULT (STDMETHODCALLTYPE *GetIMEFileNameW)(
        IActiveIMMApp* This,
        HKL hKL,
        UINT uBufLen,
        LPWSTR szFileName,
        UINT *puCopied);

    HRESULT (STDMETHODCALLTYPE *GetOpenStatus)(
        IActiveIMMApp* This,
        HIMC hIMC);

    HRESULT (STDMETHODCALLTYPE *GetProperty)(
        IActiveIMMApp* This,
        HKL hKL,
        DWORD fdwIndex,
        DWORD *pdwProperty);

    HRESULT (STDMETHODCALLTYPE *GetRegisterWordStyleA)(
        IActiveIMMApp* This,
        HKL hKL,
        UINT nItem,
        STYLEBUFA *pStyleBuf,
        UINT *puCopied);

    HRESULT (STDMETHODCALLTYPE *GetRegisterWordStyleW)(
        IActiveIMMApp* This,
        HKL hKL,
        UINT nItem,
        STYLEBUFW *pStyleBuf,
        UINT *puCopied);

    HRESULT (STDMETHODCALLTYPE *GetStatusWindowPos)(
        IActiveIMMApp* This,
        HIMC hIMC,
        POINT *pptPos);

    HRESULT (STDMETHODCALLTYPE *GetVirtualKey)(
        IActiveIMMApp* This,
        HWND hWnd,
        UINT *puVirtualKey);

    HRESULT (STDMETHODCALLTYPE *InstallIMEA)(
        IActiveIMMApp* This,
        LPSTR szIMEFileName,
        LPSTR szLayoutText,
        HKL *phKL);

    HRESULT (STDMETHODCALLTYPE *InstallIMEW)(
        IActiveIMMApp* This,
        LPWSTR szIMEFileName,
        LPWSTR szLayoutText,
        HKL *phKL);

    HRESULT (STDMETHODCALLTYPE *IsIME)(
        IActiveIMMApp* This,
        HKL hKL);

    HRESULT (STDMETHODCALLTYPE *IsUIMessageA)(
        IActiveIMMApp* This,
        HWND hWndIME,
        UINT msg,
        WPARAM wParam,
        LPARAM lParam);

    HRESULT (STDMETHODCALLTYPE *IsUIMessageW)(
        IActiveIMMApp* This,
        HWND hWndIME,
        UINT msg,
        WPARAM wParam,
        LPARAM lParam);

    HRESULT (STDMETHODCALLTYPE *NotifyIME)(
        IActiveIMMApp* This,
        HIMC hIMC,
        DWORD dwAction,
        DWORD dwIndex,
        DWORD dwValue);

    HRESULT (STDMETHODCALLTYPE *RegisterWordA)(
        IActiveIMMApp* This,
        HKL hKL,
        LPSTR szReading,
        DWORD dwStyle,
        LPSTR szRegister);

    HRESULT (STDMETHODCALLTYPE *RegisterWordW)(
        IActiveIMMApp* This,
        HKL hKL,
        LPWSTR szReading,
        DWORD dwStyle,
        LPWSTR szRegister);

    HRESULT (STDMETHODCALLTYPE *ReleaseContext)(
        IActiveIMMApp* This,
        HWND hWnd,
        HIMC hIMC);

    HRESULT (STDMETHODCALLTYPE *SetCandidateWindow)(
        IActiveIMMApp* This,
        HIMC hIMC,
        CANDIDATEFORM *pCandidate);

    HRESULT (STDMETHODCALLTYPE *SetCompositionFontA)(
        IActiveIMMApp* This,
        HIMC hIMC,
        LOGFONTA *plf);

    HRESULT (STDMETHODCALLTYPE *SetCompositionFontW)(
        IActiveIMMApp* This,
        HIMC hIMC,
        LOGFONTW *plf);

    HRESULT (STDMETHODCALLTYPE *SetCompositionStringA)(
        IActiveIMMApp* This,
        HIMC hIMC,
        DWORD dwIndex,
        LPVOID pComp,
        DWORD dwCompLen,
        LPVOID pRead,
        DWORD dwReadLen);

    HRESULT (STDMETHODCALLTYPE *SetCompositionStringW)(
        IActiveIMMApp* This,
        HIMC hIMC,
        DWORD dwIndex,
        LPVOID pComp,
        DWORD dwCompLen,
        LPVOID pRead,
        DWORD dwReadLen);

    HRESULT (STDMETHODCALLTYPE *SetCompositionWindow)(
        IActiveIMMApp* This,
        HIMC hIMC,
        COMPOSITIONFORM *pCompForm);

    HRESULT (STDMETHODCALLTYPE *SetConversionStatus)(
        IActiveIMMApp* This,
        HIMC hIMC,
        DWORD fdwConversion,
        DWORD fdwSentence);

    HRESULT (STDMETHODCALLTYPE *SetOpenStatus)(
        IActiveIMMApp* This,
        HIMC hIMC,
        BOOL fOpen);

    HRESULT (STDMETHODCALLTYPE *SetStatusWindowPos)(
        IActiveIMMApp* This,
        HIMC hIMC,
        POINT *pptPos);

    HRESULT (STDMETHODCALLTYPE *SimulateHotKey)(
        IActiveIMMApp* This,
        HWND hwnd,
        DWORD dwHotKeyID);

    HRESULT (STDMETHODCALLTYPE *UnregisterWordA)(
        IActiveIMMApp* This,
        HKL hKL,
        LPSTR szReading,
        DWORD dwStyle,
        LPSTR szUnregister);

    HRESULT (STDMETHODCALLTYPE *UnregisterWordW)(
        IActiveIMMApp* This,
        HKL hKL,
        LPWSTR szReading,
        DWORD dwStyle,
        LPWSTR szUnregister);

    HRESULT (STDMETHODCALLTYPE *Activate)(
        IActiveIMMApp* This,
        BOOL fRestoreLayout);

    HRESULT (STDMETHODCALLTYPE *Deactivate)(
        IActiveIMMApp* This);

    HRESULT (STDMETHODCALLTYPE *OnDefWindowProc)(
        IActiveIMMApp* This,
        HWND hWnd,
        UINT Msg,
        WPARAM wParam,
        LPARAM lParam,
        LRESULT *plResult);

    HRESULT (STDMETHODCALLTYPE *FilterClientWindows)(
        IActiveIMMApp* This,
        ATOM *aaClassList,
        UINT uSize);

    HRESULT (STDMETHODCALLTYPE *GetCodePageA)(
        IActiveIMMApp* This,
        HKL hKL,
        UINT *uCodePage);

    HRESULT (STDMETHODCALLTYPE *GetLangId)(
        IActiveIMMApp* This,
        HKL hKL,
        LANGID *plid);

    HRESULT (STDMETHODCALLTYPE *AssociateContextEx)(
        IActiveIMMApp* This,
        HWND hWnd,
        HIMC hIMC,
        DWORD dwFlags);

    HRESULT (STDMETHODCALLTYPE *DisableIME)(
        IActiveIMMApp* This,
        DWORD idThread);

    HRESULT (STDMETHODCALLTYPE *GetImeMenuItemsA)(
        IActiveIMMApp* This,
        HIMC hIMC,
        DWORD dwFlags,
        DWORD dwType,
        IMEMENUITEMINFOA *pImeParentMenu,
        IMEMENUITEMINFOA *pImeMenu,
        DWORD dwSize,
        DWORD *pdwResult);

    HRESULT (STDMETHODCALLTYPE *GetImeMenuItemsW)(
        IActiveIMMApp* This,
        HIMC hIMC,
        DWORD dwFlags,
        DWORD dwType,
        IMEMENUITEMINFOW *pImeParentMenu,
        IMEMENUITEMINFOW *pImeMenu,
        DWORD dwSize,
        DWORD *pdwResult);

    HRESULT (STDMETHODCALLTYPE *EnumInputContext)(
        IActiveIMMApp* This,
        DWORD idThread,
        IEnumInputContext **ppEnum);

    END_INTERFACE
} IActiveIMMAppVtbl;
interface IActiveIMMApp {
    CONST_VTBL IActiveIMMAppVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IActiveIMMApp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IActiveIMMApp_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IActiveIMMApp_Release(This) (This)->lpVtbl->Release(This)
/*** IActiveIMMApp methods ***/
#define IActiveIMMApp_AssociateContext(This,hWnd,hIME,phPrev) (This)->lpVtbl->AssociateContext(This,hWnd,hIME,phPrev)
#define IActiveIMMApp_ConfigureIMEA(This,hKL,hwnd,dwMode,pData) (This)->lpVtbl->ConfigureIMEA(This,hKL,hwnd,dwMode,pData)
#define IActiveIMMApp_ConfigureIMEW(This,hKL,hWnd,dwMode,pData) (This)->lpVtbl->ConfigureIMEW(This,hKL,hWnd,dwMode,pData)
#define IActiveIMMApp_CreateContext(This,phIMC) (This)->lpVtbl->CreateContext(This,phIMC)
#define IActiveIMMApp_DestroyContext(This,hIME) (This)->lpVtbl->DestroyContext(This,hIME)
#define IActiveIMMApp_EnumRegisterWordA(This,hKL,szReading,dwStyle,szRegister,pData,pEnum) (This)->lpVtbl->EnumRegisterWordA(This,hKL,szReading,dwStyle,szRegister,pData,pEnum)
#define IActiveIMMApp_EnumRegisterWordW(This,hKL,szReading,dwStyle,szRegister,pData,pEnum) (This)->lpVtbl->EnumRegisterWordW(This,hKL,szReading,dwStyle,szRegister,pData,pEnum)
#define IActiveIMMApp_EscapeA(This,hKL,hIMC,uEscape,pData,plResult) (This)->lpVtbl->EscapeA(This,hKL,hIMC,uEscape,pData,plResult)
#define IActiveIMMApp_EscapeW(This,hKL,hIMC,uEscape,pData,plResult) (This)->lpVtbl->EscapeW(This,hKL,hIMC,uEscape,pData,plResult)
#define IActiveIMMApp_GetCandidateListA(This,hIMC,dwIndex,uBufLen,pCandList,puCopied) (This)->lpVtbl->GetCandidateListA(This,hIMC,dwIndex,uBufLen,pCandList,puCopied)
#define IActiveIMMApp_GetCandidateListW(This,hIMC,dwIndex,uBufLen,pCandList,puCopied) (This)->lpVtbl->GetCandidateListW(This,hIMC,dwIndex,uBufLen,pCandList,puCopied)
#define IActiveIMMApp_GetCandidateListCountA(This,hIMC,pdwListSize,pdwBufLen) (This)->lpVtbl->GetCandidateListCountA(This,hIMC,pdwListSize,pdwBufLen)
#define IActiveIMMApp_GetCandidateListCountW(This,hIMC,pdwListSize,pdwBufLen) (This)->lpVtbl->GetCandidateListCountW(This,hIMC,pdwListSize,pdwBufLen)
#define IActiveIMMApp_GetCandidateWindow(This,hIMC,dwIndex,pCandidate) (This)->lpVtbl->GetCandidateWindow(This,hIMC,dwIndex,pCandidate)
#define IActiveIMMApp_GetCompositionFontA(This,hIMC,plf) (This)->lpVtbl->GetCompositionFontA(This,hIMC,plf)
#define IActiveIMMApp_GetCompositionFontW(This,hIMC,plf) (This)->lpVtbl->GetCompositionFontW(This,hIMC,plf)
#define IActiveIMMApp_GetCompositionStringA(This,hIMC,dwIndex,dwBufLen,plCopied,pBuf) (This)->lpVtbl->GetCompositionStringA(This,hIMC,dwIndex,dwBufLen,plCopied,pBuf)
#define IActiveIMMApp_GetCompositionStringW(This,hIMC,dwIndex,dwBufLen,plCopied,pBuf) (This)->lpVtbl->GetCompositionStringW(This,hIMC,dwIndex,dwBufLen,plCopied,pBuf)
#define IActiveIMMApp_GetCompositionWindow(This,hIMC,pCompForm) (This)->lpVtbl->GetCompositionWindow(This,hIMC,pCompForm)
#define IActiveIMMApp_GetContext(This,hwnd,phIMC) (This)->lpVtbl->GetContext(This,hwnd,phIMC)
#define IActiveIMMApp_GetConversionListA(This,hKL,hIMC,pSrc,uBufLen,uFlag,pDst,puCopied) (This)->lpVtbl->GetConversionListA(This,hKL,hIMC,pSrc,uBufLen,uFlag,pDst,puCopied)
#define IActiveIMMApp_GetConversionListW(This,hKL,hIMC,pSrc,uBufLen,uFlag,pDst,puCopied) (This)->lpVtbl->GetConversionListW(This,hKL,hIMC,pSrc,uBufLen,uFlag,pDst,puCopied)
#define IActiveIMMApp_GetConversionStatus(This,hIMC,pfdwConversion,pfdwSentence) (This)->lpVtbl->GetConversionStatus(This,hIMC,pfdwConversion,pfdwSentence)
#define IActiveIMMApp_GetDefaultIMEWnd(This,hWnd,phDefWnd) (This)->lpVtbl->GetDefaultIMEWnd(This,hWnd,phDefWnd)
#define IActiveIMMApp_GetDescriptionA(This,hKL,uBufLen,szDescription,puCopied) (This)->lpVtbl->GetDescriptionA(This,hKL,uBufLen,szDescription,puCopied)
#define IActiveIMMApp_GetDescriptionW(This,hKL,uBufLen,szDescription,puCopied) (This)->lpVtbl->GetDescriptionW(This,hKL,uBufLen,szDescription,puCopied)
#define IActiveIMMApp_GetGuideLineA(This,hIMC,dwIndex,dwBufLen,pBuf,pdwResult) (This)->lpVtbl->GetGuideLineA(This,hIMC,dwIndex,dwBufLen,pBuf,pdwResult)
#define IActiveIMMApp_GetGuideLineW(This,hIMC,dwIndex,dwBufLen,pBuf,pdwResult) (This)->lpVtbl->GetGuideLineW(This,hIMC,dwIndex,dwBufLen,pBuf,pdwResult)
#define IActiveIMMApp_GetIMEFileNameA(This,hKL,uBufLen,szFileName,puCopied) (This)->lpVtbl->GetIMEFileNameA(This,hKL,uBufLen,szFileName,puCopied)
#define IActiveIMMApp_GetIMEFileNameW(This,hKL,uBufLen,szFileName,puCopied) (This)->lpVtbl->GetIMEFileNameW(This,hKL,uBufLen,szFileName,puCopied)
#define IActiveIMMApp_GetOpenStatus(This,hIMC) (This)->lpVtbl->GetOpenStatus(This,hIMC)
#define IActiveIMMApp_GetProperty(This,hKL,fdwIndex,pdwProperty) (This)->lpVtbl->GetProperty(This,hKL,fdwIndex,pdwProperty)
#define IActiveIMMApp_GetRegisterWordStyleA(This,hKL,nItem,pStyleBuf,puCopied) (This)->lpVtbl->GetRegisterWordStyleA(This,hKL,nItem,pStyleBuf,puCopied)
#define IActiveIMMApp_GetRegisterWordStyleW(This,hKL,nItem,pStyleBuf,puCopied) (This)->lpVtbl->GetRegisterWordStyleW(This,hKL,nItem,pStyleBuf,puCopied)
#define IActiveIMMApp_GetStatusWindowPos(This,hIMC,pptPos) (This)->lpVtbl->GetStatusWindowPos(This,hIMC,pptPos)
#define IActiveIMMApp_GetVirtualKey(This,hWnd,puVirtualKey) (This)->lpVtbl->GetVirtualKey(This,hWnd,puVirtualKey)
#define IActiveIMMApp_InstallIMEA(This,szIMEFileName,szLayoutText,phKL) (This)->lpVtbl->InstallIMEA(This,szIMEFileName,szLayoutText,phKL)
#define IActiveIMMApp_InstallIMEW(This,szIMEFileName,szLayoutText,phKL) (This)->lpVtbl->InstallIMEW(This,szIMEFileName,szLayoutText,phKL)
#define IActiveIMMApp_IsIME(This,hKL) (This)->lpVtbl->IsIME(This,hKL)
#define IActiveIMMApp_IsUIMessageA(This,hWndIME,msg,wParam,lParam) (This)->lpVtbl->IsUIMessageA(This,hWndIME,msg,wParam,lParam)
#define IActiveIMMApp_IsUIMessageW(This,hWndIME,msg,wParam,lParam) (This)->lpVtbl->IsUIMessageW(This,hWndIME,msg,wParam,lParam)
#define IActiveIMMApp_NotifyIME(This,hIMC,dwAction,dwIndex,dwValue) (This)->lpVtbl->NotifyIME(This,hIMC,dwAction,dwIndex,dwValue)
#define IActiveIMMApp_RegisterWordA(This,hKL,szReading,dwStyle,szRegister) (This)->lpVtbl->RegisterWordA(This,hKL,szReading,dwStyle,szRegister)
#define IActiveIMMApp_RegisterWordW(This,hKL,szReading,dwStyle,szRegister) (This)->lpVtbl->RegisterWordW(This,hKL,szReading,dwStyle,szRegister)
#define IActiveIMMApp_ReleaseContext(This,hWnd,hIMC) (This)->lpVtbl->ReleaseContext(This,hWnd,hIMC)
#define IActiveIMMApp_SetCandidateWindow(This,hIMC,pCandidate) (This)->lpVtbl->SetCandidateWindow(This,hIMC,pCandidate)
#define IActiveIMMApp_SetCompositionFontA(This,hIMC,plf) (This)->lpVtbl->SetCompositionFontA(This,hIMC,plf)
#define IActiveIMMApp_SetCompositionFontW(This,hIMC,plf) (This)->lpVtbl->SetCompositionFontW(This,hIMC,plf)
#define IActiveIMMApp_SetCompositionStringA(This,hIMC,dwIndex,pComp,dwCompLen,pRead,dwReadLen) (This)->lpVtbl->SetCompositionStringA(This,hIMC,dwIndex,pComp,dwCompLen,pRead,dwReadLen)
#define IActiveIMMApp_SetCompositionStringW(This,hIMC,dwIndex,pComp,dwCompLen,pRead,dwReadLen) (This)->lpVtbl->SetCompositionStringW(This,hIMC,dwIndex,pComp,dwCompLen,pRead,dwReadLen)
#define IActiveIMMApp_SetCompositionWindow(This,hIMC,pCompForm) (This)->lpVtbl->SetCompositionWindow(This,hIMC,pCompForm)
#define IActiveIMMApp_SetConversionStatus(This,hIMC,fdwConversion,fdwSentence) (This)->lpVtbl->SetConversionStatus(This,hIMC,fdwConversion,fdwSentence)
#define IActiveIMMApp_SetOpenStatus(This,hIMC,fOpen) (This)->lpVtbl->SetOpenStatus(This,hIMC,fOpen)
#define IActiveIMMApp_SetStatusWindowPos(This,hIMC,pptPos) (This)->lpVtbl->SetStatusWindowPos(This,hIMC,pptPos)
#define IActiveIMMApp_SimulateHotKey(This,hwnd,dwHotKeyID) (This)->lpVtbl->SimulateHotKey(This,hwnd,dwHotKeyID)
#define IActiveIMMApp_UnregisterWordA(This,hKL,szReading,dwStyle,szUnregister) (This)->lpVtbl->UnregisterWordA(This,hKL,szReading,dwStyle,szUnregister)
#define IActiveIMMApp_UnregisterWordW(This,hKL,szReading,dwStyle,szUnregister) (This)->lpVtbl->UnregisterWordW(This,hKL,szReading,dwStyle,szUnregister)
#define IActiveIMMApp_Activate(This,fRestoreLayout) (This)->lpVtbl->Activate(This,fRestoreLayout)
#define IActiveIMMApp_Deactivate(This) (This)->lpVtbl->Deactivate(This)
#define IActiveIMMApp_OnDefWindowProc(This,hWnd,Msg,wParam,lParam,plResult) (This)->lpVtbl->OnDefWindowProc(This,hWnd,Msg,wParam,lParam,plResult)
#define IActiveIMMApp_FilterClientWindows(This,aaClassList,uSize) (This)->lpVtbl->FilterClientWindows(This,aaClassList,uSize)
#define IActiveIMMApp_GetCodePageA(This,hKL,uCodePage) (This)->lpVtbl->GetCodePageA(This,hKL,uCodePage)
#define IActiveIMMApp_GetLangId(This,hKL,plid) (This)->lpVtbl->GetLangId(This,hKL,plid)
#define IActiveIMMApp_AssociateContextEx(This,hWnd,hIMC,dwFlags) (This)->lpVtbl->AssociateContextEx(This,hWnd,hIMC,dwFlags)
#define IActiveIMMApp_DisableIME(This,idThread) (This)->lpVtbl->DisableIME(This,idThread)
#define IActiveIMMApp_GetImeMenuItemsA(This,hIMC,dwFlags,dwType,pImeParentMenu,pImeMenu,dwSize,pdwResult) (This)->lpVtbl->GetImeMenuItemsA(This,hIMC,dwFlags,dwType,pImeParentMenu,pImeMenu,dwSize,pdwResult)
#define IActiveIMMApp_GetImeMenuItemsW(This,hIMC,dwFlags,dwType,pImeParentMenu,pImeMenu,dwSize,pdwResult) (This)->lpVtbl->GetImeMenuItemsW(This,hIMC,dwFlags,dwType,pImeParentMenu,pImeMenu,dwSize,pdwResult)
#define IActiveIMMApp_EnumInputContext(This,idThread,ppEnum) (This)->lpVtbl->EnumInputContext(This,idThread,ppEnum)
#endif

#endif

HRESULT STDMETHODCALLTYPE IActiveIMMApp_AssociateContext_Proxy(
    IActiveIMMApp* This,
    HWND hWnd,
    HIMC hIME,
    HIMC *phPrev);
void __RPC_STUB IActiveIMMApp_AssociateContext_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_ConfigureIMEA_Proxy(
    IActiveIMMApp* This,
    HKL hKL,
    HWND hwnd,
    DWORD dwMode,
    REGISTERWORDA *pData);
void __RPC_STUB IActiveIMMApp_ConfigureIMEA_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_ConfigureIMEW_Proxy(
    IActiveIMMApp* This,
    HKL hKL,
    HWND hWnd,
    DWORD dwMode,
    REGISTERWORDW *pData);
void __RPC_STUB IActiveIMMApp_ConfigureIMEW_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_CreateContext_Proxy(
    IActiveIMMApp* This,
    HIMC *phIMC);
void __RPC_STUB IActiveIMMApp_CreateContext_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_DestroyContext_Proxy(
    IActiveIMMApp* This,
    HIMC hIME);
void __RPC_STUB IActiveIMMApp_DestroyContext_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_EnumRegisterWordA_Proxy(
    IActiveIMMApp* This,
    HKL hKL,
    LPSTR szReading,
    DWORD dwStyle,
    LPSTR szRegister,
    LPVOID pData,
    IEnumRegisterWordA **pEnum);
void __RPC_STUB IActiveIMMApp_EnumRegisterWordA_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_EnumRegisterWordW_Proxy(
    IActiveIMMApp* This,
    HKL hKL,
    LPWSTR szReading,
    DWORD dwStyle,
    LPWSTR szRegister,
    LPVOID pData,
    IEnumRegisterWordW **pEnum);
void __RPC_STUB IActiveIMMApp_EnumRegisterWordW_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_EscapeA_Proxy(
    IActiveIMMApp* This,
    HKL hKL,
    HIMC hIMC,
    UINT uEscape,
    LPVOID pData,
    LRESULT *plResult);
void __RPC_STUB IActiveIMMApp_EscapeA_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_EscapeW_Proxy(
    IActiveIMMApp* This,
    HKL hKL,
    HIMC hIMC,
    UINT uEscape,
    LPVOID pData,
    LRESULT *plResult);
void __RPC_STUB IActiveIMMApp_EscapeW_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_GetCandidateListA_Proxy(
    IActiveIMMApp* This,
    HIMC hIMC,
    DWORD dwIndex,
    UINT uBufLen,
    CANDIDATELIST *pCandList,
    UINT *puCopied);
void __RPC_STUB IActiveIMMApp_GetCandidateListA_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_GetCandidateListW_Proxy(
    IActiveIMMApp* This,
    HIMC hIMC,
    DWORD dwIndex,
    UINT uBufLen,
    CANDIDATELIST *pCandList,
    UINT *puCopied);
void __RPC_STUB IActiveIMMApp_GetCandidateListW_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_GetCandidateListCountA_Proxy(
    IActiveIMMApp* This,
    HIMC hIMC,
    DWORD *pdwListSize,
    DWORD *pdwBufLen);
void __RPC_STUB IActiveIMMApp_GetCandidateListCountA_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_GetCandidateListCountW_Proxy(
    IActiveIMMApp* This,
    HIMC hIMC,
    DWORD *pdwListSize,
    DWORD *pdwBufLen);
void __RPC_STUB IActiveIMMApp_GetCandidateListCountW_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_GetCandidateWindow_Proxy(
    IActiveIMMApp* This,
    HIMC hIMC,
    DWORD dwIndex,
    CANDIDATEFORM *pCandidate);
void __RPC_STUB IActiveIMMApp_GetCandidateWindow_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_GetCompositionFontA_Proxy(
    IActiveIMMApp* This,
    HIMC hIMC,
    LOGFONTA *plf);
void __RPC_STUB IActiveIMMApp_GetCompositionFontA_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_GetCompositionFontW_Proxy(
    IActiveIMMApp* This,
    HIMC hIMC,
    LOGFONTW *plf);
void __RPC_STUB IActiveIMMApp_GetCompositionFontW_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_GetCompositionStringA_Proxy(
    IActiveIMMApp* This,
    HIMC hIMC,
    DWORD dwIndex,
    DWORD dwBufLen,
    LONG *plCopied,
    LPVOID pBuf);
void __RPC_STUB IActiveIMMApp_GetCompositionStringA_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_GetCompositionStringW_Proxy(
    IActiveIMMApp* This,
    HIMC hIMC,
    DWORD dwIndex,
    DWORD dwBufLen,
    LONG *plCopied,
    LPVOID pBuf);
void __RPC_STUB IActiveIMMApp_GetCompositionStringW_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_GetCompositionWindow_Proxy(
    IActiveIMMApp* This,
    HIMC hIMC,
    COMPOSITIONFORM *pCompForm);
void __RPC_STUB IActiveIMMApp_GetCompositionWindow_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_GetContext_Proxy(
    IActiveIMMApp* This,
    HWND hwnd,
    HIMC *phIMC);
void __RPC_STUB IActiveIMMApp_GetContext_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_GetConversionListA_Proxy(
    IActiveIMMApp* This,
    HKL hKL,
    HIMC hIMC,
    LPSTR pSrc,
    UINT uBufLen,
    UINT uFlag,
    CANDIDATELIST *pDst,
    UINT *puCopied);
void __RPC_STUB IActiveIMMApp_GetConversionListA_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_GetConversionListW_Proxy(
    IActiveIMMApp* This,
    HKL hKL,
    HIMC hIMC,
    LPWSTR pSrc,
    UINT uBufLen,
    UINT uFlag,
    CANDIDATELIST *pDst,
    UINT *puCopied);
void __RPC_STUB IActiveIMMApp_GetConversionListW_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_GetConversionStatus_Proxy(
    IActiveIMMApp* This,
    HIMC hIMC,
    DWORD *pfdwConversion,
    DWORD *pfdwSentence);
void __RPC_STUB IActiveIMMApp_GetConversionStatus_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_GetDefaultIMEWnd_Proxy(
    IActiveIMMApp* This,
    HWND hWnd,
    HWND *phDefWnd);
void __RPC_STUB IActiveIMMApp_GetDefaultIMEWnd_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_GetDescriptionA_Proxy(
    IActiveIMMApp* This,
    HKL hKL,
    UINT uBufLen,
    LPSTR szDescription,
    UINT *puCopied);
void __RPC_STUB IActiveIMMApp_GetDescriptionA_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_GetDescriptionW_Proxy(
    IActiveIMMApp* This,
    HKL hKL,
    UINT uBufLen,
    LPWSTR szDescription,
    UINT *puCopied);
void __RPC_STUB IActiveIMMApp_GetDescriptionW_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_GetGuideLineA_Proxy(
    IActiveIMMApp* This,
    HIMC hIMC,
    DWORD dwIndex,
    DWORD dwBufLen,
    LPSTR pBuf,
    DWORD *pdwResult);
void __RPC_STUB IActiveIMMApp_GetGuideLineA_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_GetGuideLineW_Proxy(
    IActiveIMMApp* This,
    HIMC hIMC,
    DWORD dwIndex,
    DWORD dwBufLen,
    LPWSTR pBuf,
    DWORD *pdwResult);
void __RPC_STUB IActiveIMMApp_GetGuideLineW_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_GetIMEFileNameA_Proxy(
    IActiveIMMApp* This,
    HKL hKL,
    UINT uBufLen,
    LPSTR szFileName,
    UINT *puCopied);
void __RPC_STUB IActiveIMMApp_GetIMEFileNameA_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_GetIMEFileNameW_Proxy(
    IActiveIMMApp* This,
    HKL hKL,
    UINT uBufLen,
    LPWSTR szFileName,
    UINT *puCopied);
void __RPC_STUB IActiveIMMApp_GetIMEFileNameW_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_GetOpenStatus_Proxy(
    IActiveIMMApp* This,
    HIMC hIMC);
void __RPC_STUB IActiveIMMApp_GetOpenStatus_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_GetProperty_Proxy(
    IActiveIMMApp* This,
    HKL hKL,
    DWORD fdwIndex,
    DWORD *pdwProperty);
void __RPC_STUB IActiveIMMApp_GetProperty_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_GetRegisterWordStyleA_Proxy(
    IActiveIMMApp* This,
    HKL hKL,
    UINT nItem,
    STYLEBUFA *pStyleBuf,
    UINT *puCopied);
void __RPC_STUB IActiveIMMApp_GetRegisterWordStyleA_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_GetRegisterWordStyleW_Proxy(
    IActiveIMMApp* This,
    HKL hKL,
    UINT nItem,
    STYLEBUFW *pStyleBuf,
    UINT *puCopied);
void __RPC_STUB IActiveIMMApp_GetRegisterWordStyleW_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_GetStatusWindowPos_Proxy(
    IActiveIMMApp* This,
    HIMC hIMC,
    POINT *pptPos);
void __RPC_STUB IActiveIMMApp_GetStatusWindowPos_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_GetVirtualKey_Proxy(
    IActiveIMMApp* This,
    HWND hWnd,
    UINT *puVirtualKey);
void __RPC_STUB IActiveIMMApp_GetVirtualKey_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_InstallIMEA_Proxy(
    IActiveIMMApp* This,
    LPSTR szIMEFileName,
    LPSTR szLayoutText,
    HKL *phKL);
void __RPC_STUB IActiveIMMApp_InstallIMEA_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_InstallIMEW_Proxy(
    IActiveIMMApp* This,
    LPWSTR szIMEFileName,
    LPWSTR szLayoutText,
    HKL *phKL);
void __RPC_STUB IActiveIMMApp_InstallIMEW_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_IsIME_Proxy(
    IActiveIMMApp* This,
    HKL hKL);
void __RPC_STUB IActiveIMMApp_IsIME_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_IsUIMessageA_Proxy(
    IActiveIMMApp* This,
    HWND hWndIME,
    UINT msg,
    WPARAM wParam,
    LPARAM lParam);
void __RPC_STUB IActiveIMMApp_IsUIMessageA_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_IsUIMessageW_Proxy(
    IActiveIMMApp* This,
    HWND hWndIME,
    UINT msg,
    WPARAM wParam,
    LPARAM lParam);
void __RPC_STUB IActiveIMMApp_IsUIMessageW_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_NotifyIME_Proxy(
    IActiveIMMApp* This,
    HIMC hIMC,
    DWORD dwAction,
    DWORD dwIndex,
    DWORD dwValue);
void __RPC_STUB IActiveIMMApp_NotifyIME_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_RegisterWordA_Proxy(
    IActiveIMMApp* This,
    HKL hKL,
    LPSTR szReading,
    DWORD dwStyle,
    LPSTR szRegister);
void __RPC_STUB IActiveIMMApp_RegisterWordA_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_RegisterWordW_Proxy(
    IActiveIMMApp* This,
    HKL hKL,
    LPWSTR szReading,
    DWORD dwStyle,
    LPWSTR szRegister);
void __RPC_STUB IActiveIMMApp_RegisterWordW_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_ReleaseContext_Proxy(
    IActiveIMMApp* This,
    HWND hWnd,
    HIMC hIMC);
void __RPC_STUB IActiveIMMApp_ReleaseContext_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_SetCandidateWindow_Proxy(
    IActiveIMMApp* This,
    HIMC hIMC,
    CANDIDATEFORM *pCandidate);
void __RPC_STUB IActiveIMMApp_SetCandidateWindow_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_SetCompositionFontA_Proxy(
    IActiveIMMApp* This,
    HIMC hIMC,
    LOGFONTA *plf);
void __RPC_STUB IActiveIMMApp_SetCompositionFontA_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_SetCompositionFontW_Proxy(
    IActiveIMMApp* This,
    HIMC hIMC,
    LOGFONTW *plf);
void __RPC_STUB IActiveIMMApp_SetCompositionFontW_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_SetCompositionStringA_Proxy(
    IActiveIMMApp* This,
    HIMC hIMC,
    DWORD dwIndex,
    LPVOID pComp,
    DWORD dwCompLen,
    LPVOID pRead,
    DWORD dwReadLen);
void __RPC_STUB IActiveIMMApp_SetCompositionStringA_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_SetCompositionStringW_Proxy(
    IActiveIMMApp* This,
    HIMC hIMC,
    DWORD dwIndex,
    LPVOID pComp,
    DWORD dwCompLen,
    LPVOID pRead,
    DWORD dwReadLen);
void __RPC_STUB IActiveIMMApp_SetCompositionStringW_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_SetCompositionWindow_Proxy(
    IActiveIMMApp* This,
    HIMC hIMC,
    COMPOSITIONFORM *pCompForm);
void __RPC_STUB IActiveIMMApp_SetCompositionWindow_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_SetConversionStatus_Proxy(
    IActiveIMMApp* This,
    HIMC hIMC,
    DWORD fdwConversion,
    DWORD fdwSentence);
void __RPC_STUB IActiveIMMApp_SetConversionStatus_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_SetOpenStatus_Proxy(
    IActiveIMMApp* This,
    HIMC hIMC,
    BOOL fOpen);
void __RPC_STUB IActiveIMMApp_SetOpenStatus_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_SetStatusWindowPos_Proxy(
    IActiveIMMApp* This,
    HIMC hIMC,
    POINT *pptPos);
void __RPC_STUB IActiveIMMApp_SetStatusWindowPos_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_SimulateHotKey_Proxy(
    IActiveIMMApp* This,
    HWND hwnd,
    DWORD dwHotKeyID);
void __RPC_STUB IActiveIMMApp_SimulateHotKey_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_UnregisterWordA_Proxy(
    IActiveIMMApp* This,
    HKL hKL,
    LPSTR szReading,
    DWORD dwStyle,
    LPSTR szUnregister);
void __RPC_STUB IActiveIMMApp_UnregisterWordA_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_UnregisterWordW_Proxy(
    IActiveIMMApp* This,
    HKL hKL,
    LPWSTR szReading,
    DWORD dwStyle,
    LPWSTR szUnregister);
void __RPC_STUB IActiveIMMApp_UnregisterWordW_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_Activate_Proxy(
    IActiveIMMApp* This,
    BOOL fRestoreLayout);
void __RPC_STUB IActiveIMMApp_Activate_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_Deactivate_Proxy(
    IActiveIMMApp* This);
void __RPC_STUB IActiveIMMApp_Deactivate_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_OnDefWindowProc_Proxy(
    IActiveIMMApp* This,
    HWND hWnd,
    UINT Msg,
    WPARAM wParam,
    LPARAM lParam,
    LRESULT *plResult);
void __RPC_STUB IActiveIMMApp_OnDefWindowProc_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_FilterClientWindows_Proxy(
    IActiveIMMApp* This,
    ATOM *aaClassList,
    UINT uSize);
void __RPC_STUB IActiveIMMApp_FilterClientWindows_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_GetCodePageA_Proxy(
    IActiveIMMApp* This,
    HKL hKL,
    UINT *uCodePage);
void __RPC_STUB IActiveIMMApp_GetCodePageA_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_GetLangId_Proxy(
    IActiveIMMApp* This,
    HKL hKL,
    LANGID *plid);
void __RPC_STUB IActiveIMMApp_GetLangId_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_AssociateContextEx_Proxy(
    IActiveIMMApp* This,
    HWND hWnd,
    HIMC hIMC,
    DWORD dwFlags);
void __RPC_STUB IActiveIMMApp_AssociateContextEx_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_DisableIME_Proxy(
    IActiveIMMApp* This,
    DWORD idThread);
void __RPC_STUB IActiveIMMApp_DisableIME_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_GetImeMenuItemsA_Proxy(
    IActiveIMMApp* This,
    HIMC hIMC,
    DWORD dwFlags,
    DWORD dwType,
    IMEMENUITEMINFOA *pImeParentMenu,
    IMEMENUITEMINFOA *pImeMenu,
    DWORD dwSize,
    DWORD *pdwResult);
void __RPC_STUB IActiveIMMApp_GetImeMenuItemsA_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_GetImeMenuItemsW_Proxy(
    IActiveIMMApp* This,
    HIMC hIMC,
    DWORD dwFlags,
    DWORD dwType,
    IMEMENUITEMINFOW *pImeParentMenu,
    IMEMENUITEMINFOW *pImeMenu,
    DWORD dwSize,
    DWORD *pdwResult);
void __RPC_STUB IActiveIMMApp_GetImeMenuItemsW_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IActiveIMMApp_EnumInputContext_Proxy(
    IActiveIMMApp* This,
    DWORD idThread,
    IEnumInputContext **ppEnum);
void __RPC_STUB IActiveIMMApp_EnumInputContext_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IActiveIMMApp_INTERFACE_DEFINED__ */

/*****************************************************************************
 * CActiveIMM coclass
 */

DEFINE_GUID(CLSID_CActiveIMM, 0x4955dd33, 0xb159, 0x11d0, 0x8f,0xcf, 0x00,0xaa,0x00,0x6b,0xcc,0x59);

#ifdef __cplusplus
class DECLSPEC_UUID("4955dd33-b159-11d0-8fcf-00aa006bcc59") CActiveIMM;
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(CActiveIMM, 0x4955dd33, 0xb159, 0x11d0, 0x8f,0xcf, 0x00,0xaa,0x00,0x6b,0xcc,0x59)
#endif
#endif

/* Begin additional prototypes for all interfaces */


/* End additional prototypes */

#ifdef __cplusplus
}
#endif

#endif /* __WIDL_DIMM_H */
