#ifndef __SURROGATE_DIMM_H__ #define __SURROGATE_DIMM_H__ /* The Win32api headers doesn't include , thus we need * this file, which covers just the stuff we need from . */ typedef struct IActiveIMMApp IActiveIMMApp; typedef struct IActiveIMMMessagePumpOwner IActiveIMMMessagePumpOwner; /* Dummy vtable structs that contain real names and arg lists for * only those methods we need. */ typedef struct { HRESULT (__stdcall *QueryInterface) (IActiveIMMApp *This, REFIID riid, void *ppvObject); /* Dummy method prototypes for those we don't use */ ULONG (__stdcall *dummy_AddRef)(); ULONG (__stdcall *dummy_Release)(); HRESULT (__stdcall *dummy_AssociateContext)(); HRESULT (__stdcall *dummy_ConfigureIMEA)(); HRESULT (__stdcall *dummy_ConfigureIMEW)(); HRESULT (__stdcall *dummy_CreateContext)(); HRESULT (__stdcall *dummy_DestroyContext)(); HRESULT (__stdcall *dummy_EnumRegisterWordA)(); HRESULT (__stdcall *dummy_EnumRegisterWordW)(); HRESULT (__stdcall *dummy_EscapeA)(); HRESULT (__stdcall *dummy_EscapeW)(); HRESULT (__stdcall *dummy_GetCandidateListA)(); HRESULT (__stdcall *dummy_GetCandidateListW)(); HRESULT (__stdcall *dummy_GetCandidateListCountA)(); HRESULT (__stdcall *dummy_GetCandidateListCountW)(); HRESULT (__stdcall *dummy_GetCandidateWindow)(); HRESULT (__stdcall *dummy_GetCompositionFontA)(); HRESULT (__stdcall *dummy_GetCompositionFontW)(); HRESULT (__stdcall *dummy_GetCompositionStringA)(); HRESULT (__stdcall *dummy_GetCompositionStringW)(); HRESULT (__stdcall *dummy_GetCompositionWindow)(); HRESULT (__stdcall *dummy_GetContext)(); HRESULT (__stdcall *dummy_GetConversionListA)(); HRESULT (__stdcall *dummy_GetConversionListW)(); HRESULT (__stdcall *dummy_GetConversionStatus)(); HRESULT (__stdcall *GetDefaultIMEWnd)(IActiveIMMApp *This, HWND hWnd, HWND *phDefWnd); HRESULT (__stdcall *dummy_GetDescriptionA)(); HRESULT (__stdcall *dummy_GetDescriptionW)(); HRESULT (__stdcall *dummy_GetGuideLineA)(); HRESULT (__stdcall *dummy_GetGuideLineW)(); HRESULT (__stdcall *dummy_GetIMEFileNameA)(); HRESULT (__stdcall *dummy_GetIMEFileNameW)(); HRESULT (__stdcall *dummy_GetOpenStatus)(); HRESULT (__stdcall *dummy_GetProperty)(); HRESULT (__stdcall *dummy_GetRegisterWordStyleA)(); HRESULT (__stdcall *dummy_GetRegisterWordStyleW)(); HRESULT (__stdcall *dummy_GetStatusWindowPos)(); HRESULT (__stdcall *dummy_GetVirtualKey)(); HRESULT (__stdcall *dummy_InstallIMEA)(); HRESULT (__stdcall *dummy_InstallIMEW)(); HRESULT (__stdcall *IsIME)(IActiveIMMApp *This, HKL hKL); HRESULT (__stdcall *IsUIMessageA )(IActiveIMMApp *This, HWND hWndIME, UINT msg, WPARAM wParam, LPARAM lParam); HRESULT (__stdcall *dummy_IsUIMessageW)(); HRESULT (__stdcall *dummy_NotifyIME)(); HRESULT (__stdcall *dummy_RegisterWordA)(); HRESULT (__stdcall *dummy_RegisterWordW)(); HRESULT (__stdcall *dummy_ReleaseContext)(); HRESULT (__stdcall *dummy_SetCandidateWindow)(); HRESULT (__stdcall *dummy_SetCompositionFontA)(); HRESULT (__stdcall *dummy_SetCompositionFontW)(); HRESULT (__stdcall *dummy_SetCompositionStringA)(); HRESULT (__stdcall *dummy_SetCompositionStringW)(); HRESULT (__stdcall *dummy_SetCompositionWindow)(); HRESULT (__stdcall *dummy_SetConversionStatus)(); HRESULT (__stdcall *dummy_SetOpenStatus)(); HRESULT (__stdcall *dummy_SetStatusWindowPos)(); HRESULT (__stdcall *dummy_SimulateHotKey)(); HRESULT (__stdcall *dummy_UnregisterWordA)(); HRESULT (__stdcall *dummy_UnregisterWordW)(); HRESULT (__stdcall *Activate)(IActiveIMMApp *This, BOOL restore); HRESULT (__stdcall *Deactivate)(IActiveIMMApp *This); HRESULT (__stdcall *OnDefWindowProc)(IActiveIMMApp *This, HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam, LRESULT *plResult); HRESULT (__stdcall *dummy_FilterClientWindows)(); HRESULT (__stdcall *GetCodePageA)(IActiveIMMApp *This, HKL hKL, UINT *uCodePage); HRESULT (__stdcall *GetLangId)(IActiveIMMApp *This, HKL hKL, LANGID *plid); HRESULT (__stdcall *dummy_AssociateContextEx)(); HRESULT (__stdcall *dummy_DisableIME)(); HRESULT (__stdcall *dummy_GetImeMenuItemsA)(); HRESULT (__stdcall *dummy_GetImeMenuItemsW)(); HRESULT (__stdcall *dummy_EnumInputContext)(); } IActiveIMMAppVtbl; struct IActiveIMMApp { IActiveIMMAppVtbl *lpVtbl; }; typedef struct { HRESULT (__stdcall *dummy_QueryInterface)(); ULONG (__stdcall *dummy_AddRef)(); ULONG (__stdcall *dummy_Release)(); HRESULT (__stdcall *Start)(IActiveIMMMessagePumpOwner *This); HRESULT (__stdcall *End)(IActiveIMMMessagePumpOwner *This); HRESULT (__stdcall *OnTranslateMessage)(IActiveIMMMessagePumpOwner *This, MSG *pMSG); HRESULT (__stdcall *dummy_Pause)(); HRESULT (__stdcall *dummy_Resume)(); } IActiveIMMMessagePumpOwnerVtbl; struct IActiveIMMMessagePumpOwner { IActiveIMMMessagePumpOwnerVtbl *lpVtbl; }; static UUID CLSID_CActiveIMM = { 0x4955DD33, 0xB159, 0x11d0, { 0x8F,0xCF,0x00,0xAA,0x00,0x6B,0xCC,0x59 } }; static IID IID_IActiveIMMApp = { 0x08C0E040, 0x62D1, 0x11D1, { 0x93,0x26,0x00,0x60,0xB0,0x67,0xB8,0x6E } }; static IID IID_IActiveIMMMessagePumpOwner = { 0xB5CF2CFA, 0x8AEB, 0x11D1, { 0x93,0x64,0x00,0x60,0xB0,0x67,0xB8,0x6E } }; #endif /* __SURROGATE_DIMM_H__ */