diff options
Diffstat (limited to '')
-rw-r--r-- | src/dimm.idl | 544 |
1 files changed, 544 insertions, 0 deletions
diff --git a/src/dimm.idl b/src/dimm.idl new file mode 100644 index 0000000..ac44965 --- /dev/null +++ b/src/dimm.idl @@ -0,0 +1,544 @@ +//+------------------------------------------------------------------------- +// +// Microsoft Windows +// Copyright (C) Microsoft Corporation, 1992-2000. +// +// File: dimm.idl +// +// Contents: ActiveIMM interface definitions +// +// +//-------------------------------------------------------------------------- + +cpp_quote("//=--------------------------------------------------------------------------=") +cpp_quote("// dimm.h") +cpp_quote("//=--------------------------------------------------------------------------=") +cpp_quote("// (C) Copyright 1995-1998 Microsoft Corporation. All Rights Reserved.") +cpp_quote("//") +cpp_quote("// THIS CODE AND INFORMATION IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF") +cpp_quote("// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO") +cpp_quote("// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A") +cpp_quote("// PARTICULAR PURPOSE.") +cpp_quote("//=--------------------------------------------------------------------------=") +cpp_quote("") +cpp_quote("#pragma comment(lib,\"uuid.lib\")") +cpp_quote("") +cpp_quote("//--------------------------------------------------------------------------") +cpp_quote("// IActiveIMM Interfaces.") +cpp_quote("") + +/* +Disable a warning about lack of polymorphic type support for the following reasons +- the only reason to have library block in the file is to make midl accept coclass + statement and generate CLSID for CActiveIMM. +- the generated dimm_i.c has the clsid and that file is used to have clsid available +- the dimm.tlb is not used at all +- on top of it, there is no plans to port the app using dimm.idl to 64b platform. +*/ +/* + * midl_pragma is unsupported in midl version 3.01 shipped with VC5.0. + * It is supported in midl version 5.01 shipped with VC6.0 + * I could not produce message 2395. Is this needed? W.Briscoe 2001-08-14 + */ +#if (__midl >= 501) +midl_pragma warning( disable: 2395) // polymorphic types not supported in the TLB +#endif + +#ifndef DO_NO_IMPORTS +import "unknwn.idl"; +#endif + +[ + uuid(4955DD30-B159-11d0-8FCF-00AA006BCC59), + helpstring("ActiveIMM"), + lcid(0x0000), + version(0.1) +] +library ActiveIMM +{ + importlib("stdole2.tlb"); + + cpp_quote("#include <imm.h>") + + cpp_quote("#if 0") + + typedef WORD LANGID; + + typedef struct + { + LPSTR lpReading; + LPSTR lpWord; + } REGISTERWORDA; + + typedef struct + { + LPWSTR lpReading; + LPWSTR lpWord; + } REGISTERWORDW; + + #define LF_FACESIZE 32 + + typedef struct + { + 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[LF_FACESIZE]; + } LOGFONTA; + + typedef struct + { + 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[LF_FACESIZE]; + } LOGFONTW; + + typedef DWORD HIMC; + typedef DWORD HIMCC; + + typedef struct + { + DWORD dwIndex; + DWORD dwStyle; + POINT ptCurrentPos; + RECT rcArea; + } CANDIDATEFORM; + + typedef struct + { + DWORD dwStyle; + POINT ptCurrentPos; + RECT rcArea; + } COMPOSITIONFORM; + + typedef struct + { + DWORD dwSize; + DWORD dwStyle; + DWORD dwCount; + DWORD dwSelection; + DWORD dwPageStart; + DWORD dwPageSize; + DWORD dwOffset[1]; + } CANDIDATELIST; + + #define STYLE_DESCRIPTION_SIZE 32 + + typedef struct + { + DWORD dwStyle; + CHAR szDescription[STYLE_DESCRIPTION_SIZE]; + } STYLEBUFA; + + typedef struct + { + DWORD dwStyle; + WCHAR szDescription[STYLE_DESCRIPTION_SIZE]; + } STYLEBUFW; + + typedef WORD ATOM; + + cpp_quote("#endif") + + cpp_quote("#if (WINVER < 0x040A)") + + #define IMEMENUITEM_STRING_SIZE 80 + + typedef struct + { + UINT cbSize; + UINT fType; + UINT fState; + UINT wID; + HBITMAP hbmpChecked; + HBITMAP hbmpUnchecked; + DWORD dwItemData; + CHAR szString[IMEMENUITEM_STRING_SIZE]; + HBITMAP hbmpItem; + } IMEMENUITEMINFOA; + + typedef struct + { + UINT cbSize; + UINT fType; + UINT fState; + UINT wID; + HBITMAP hbmpChecked; + HBITMAP hbmpUnchecked; + DWORD dwItemData; + WCHAR szString[IMEMENUITEM_STRING_SIZE]; + HBITMAP hbmpItem; + } IMEMENUITEMINFOW; + + cpp_quote("#endif") + + cpp_quote("#ifndef _DDKIMM_H_") + + typedef struct + { + HWND hWnd; + BOOL fOpen; + POINT ptStatusWndPos; + POINT ptSoftKbdPos; + DWORD fdwConversion; + DWORD fdwSentence; + union + { + LOGFONTA A; + LOGFONTW W; + } lfFont; + COMPOSITIONFORM cfCompForm; + CANDIDATEFORM cfCandForm[4]; + HIMCC hCompStr; + HIMCC hCandInfo; + HIMCC hGuideLine; + HIMCC hPrivate; + DWORD dwNumMsgBuf; + HIMCC hMsgBuf; + DWORD fdwInit; + DWORD dwReserve[3]; + } INPUTCONTEXT; + + typedef struct + { + DWORD dwPrivateDataSize; + DWORD fdwProperty; + DWORD fdwConversionCaps; + DWORD fdwSentenceCaps; + DWORD fdwUICaps; + DWORD fdwSCSCaps; + DWORD fdwSelectCaps; + } IMEINFO; + + cpp_quote("#endif") + + [ + object, + uuid(08C03412-F96B-11d0-A475-00AA006BCC59), + pointer_default(unique) + ] + interface IEnumRegisterWordA : IUnknown + { + HRESULT Clone([out] IEnumRegisterWordA **ppEnum); + HRESULT Next([in] ULONG ulCount, [out] REGISTERWORDA *rgRegisterWord, [out] ULONG *pcFetched); + HRESULT Reset(); + HRESULT Skip([in] ULONG ulCount); + }; + + [ + object, + uuid(4955DD31-B159-11d0-8FCF-00AA006BCC59), + pointer_default(unique) + ] + interface IEnumRegisterWordW : IUnknown + { + HRESULT Clone([out] IEnumRegisterWordW **ppEnum); + HRESULT Next([in] ULONG ulCount, [out] REGISTERWORDW *rgRegisterWord, [out] ULONG *pcFetched); + HRESULT Reset(); + HRESULT Skip([in] ULONG ulCount); + }; + + + [ + object, + uuid(09b5eab0-f997-11d1-93d4-0060b067b86e), + pointer_default(unique) + ] + interface IEnumInputContext : IUnknown + { + HRESULT Clone([out] IEnumInputContext **ppEnum); + HRESULT Next([in] ULONG ulCount, [out] HIMC *rgInputContext, [out] ULONG *pcFetched); + HRESULT Reset(); + HRESULT Skip([in] ULONG ulCount); + }; + + + [ + object, + uuid(b3458082-bd00-11d1-939b-0060b067b86e), + pointer_default(unique) + ] + interface IActiveIMMRegistrar : IUnknown + { + HRESULT RegisterIME([in] REFCLSID rclsid, [in] LANGID lgid, [in] LPCWSTR pszIconFile, [in] LPCWSTR pszDesc); + HRESULT UnregisterIME([in] REFCLSID rclsid); + }; + + [ + object, + uuid(b5cf2cfa-8aeb-11d1-9364-0060b067b86e), + pointer_default(unique) + ] + interface IActiveIMMMessagePumpOwner : IUnknown + { + HRESULT Start(); + HRESULT End(); + HRESULT OnTranslateMessage([in] const MSG *pMsg); + HRESULT Pause([out] DWORD *pdwCookie); + HRESULT Resume([in] DWORD dwCookie); + } + + [ + object, + uuid(08c0e040-62d1-11d1-9326-0060b067b86e), + pointer_default(unique) + ] + interface IActiveIMMApp : IUnknown + { + HRESULT AssociateContext([in] HWND hWnd, [in] HIMC hIME, [out] HIMC *phPrev); + HRESULT ConfigureIMEA([in] HKL hKL, [in] HWND hWnd, [in] DWORD dwMode, [in] REGISTERWORDA *pData); + HRESULT ConfigureIMEW([in] HKL hKL, [in] HWND hWnd, [in] DWORD dwMode, [in] REGISTERWORDW *pData); + HRESULT CreateContext([out] HIMC *phIMC); + HRESULT DestroyContext([in] HIMC hIME); + HRESULT EnumRegisterWordA([in] HKL hKL, [in] LPSTR szReading, [in] DWORD dwStyle, [in] LPSTR szRegister, [in] LPVOID pData, [out] IEnumRegisterWordA **pEnum); + HRESULT EnumRegisterWordW([in] HKL hKL, [in] LPWSTR szReading, [in] DWORD dwStyle, [in] LPWSTR szRegister, [in] LPVOID pData, [out] IEnumRegisterWordW **pEnum); + HRESULT EscapeA([in] HKL hKL, [in] HIMC hIMC, [in] UINT uEscape, [in, out] LPVOID pData, [out] LRESULT *plResult); + HRESULT EscapeW([in] HKL hKL, [in] HIMC hIMC, [in] UINT uEscape, [in, out] LPVOID pData, [out] LRESULT *plResult); + HRESULT GetCandidateListA([in] HIMC hIMC, [in] DWORD dwIndex, [in] UINT uBufLen, [out] CANDIDATELIST *pCandList, [out] UINT *puCopied); + HRESULT GetCandidateListW([in] HIMC hIMC, [in] DWORD dwIndex, [in] UINT uBufLen, [out] CANDIDATELIST *pCandList, [out] UINT *puCopied); + HRESULT GetCandidateListCountA([in] HIMC hIMC, [out] DWORD *pdwListSize, [out] DWORD *pdwBufLen); + HRESULT GetCandidateListCountW([in] HIMC hIMC, [out] DWORD *pdwListSize, [out] DWORD *pdwBufLen); + HRESULT GetCandidateWindow([in] HIMC hIMC, [in] DWORD dwIndex, [out] CANDIDATEFORM *pCandidate); + HRESULT GetCompositionFontA([in] HIMC hIMC, [out] LOGFONTA *plf); + HRESULT GetCompositionFontW([in] HIMC hIMC, [out] LOGFONTW *plf); + HRESULT GetCompositionStringA([in] HIMC hIMC, [in] DWORD dwIndex, [in] DWORD dwBufLen, [out] LONG *plCopied, [out] LPVOID pBuf); + HRESULT GetCompositionStringW([in] HIMC hIMC, [in] DWORD dwIndex, [in] DWORD dwBufLen, [out] LONG *plCopied, [out] LPVOID pBuf); + HRESULT GetCompositionWindow([in] HIMC hIMC, [out] COMPOSITIONFORM *pCompForm); + HRESULT GetContext([in] HWND hWnd, [out] HIMC *phIMC); + HRESULT GetConversionListA([in] HKL hKL, [in] HIMC hIMC, [in] LPSTR pSrc, [in] UINT uBufLen, [in] UINT uFlag, [out] CANDIDATELIST *pDst, [out] UINT *puCopied); + HRESULT GetConversionListW([in] HKL hKL, [in] HIMC hIMC, [in] LPWSTR pSrc, [in] UINT uBufLen, [in] UINT uFlag, [out] CANDIDATELIST *pDst, [out] UINT *puCopied); + HRESULT GetConversionStatus([in] HIMC hIMC, [out] DWORD *pfdwConversion, [out] DWORD *pfdwSentence); + HRESULT GetDefaultIMEWnd([in] HWND hWnd, [out] HWND *phDefWnd); + HRESULT GetDescriptionA([in] HKL hKL, [in] UINT uBufLen, [out] LPSTR szDescription, [out] UINT *puCopied); + HRESULT GetDescriptionW([in] HKL hKL, [in] UINT uBufLen, [out] LPWSTR szDescription, [out] UINT *puCopied); + HRESULT GetGuideLineA([in] HIMC hIMC, [in] DWORD dwIndex, [in] DWORD dwBufLen, [out] LPSTR pBuf, [out] DWORD *pdwResult); + HRESULT GetGuideLineW([in] HIMC hIMC, [in] DWORD dwIndex, [in] DWORD dwBufLen, [out] LPWSTR pBuf, [out] DWORD *pdwResult); + HRESULT GetIMEFileNameA([in] HKL hKL, [in] UINT uBufLen, [out] LPSTR szFileName, [out] UINT *puCopied); + HRESULT GetIMEFileNameW([in] HKL hKL, [in] UINT uBufLen, [out] LPWSTR szFileName, [out] UINT *puCopied); + HRESULT GetOpenStatus([in] HIMC hIMC); + HRESULT GetProperty([in] HKL hKL, [in] DWORD fdwIndex, [out] DWORD *pdwProperty); + HRESULT GetRegisterWordStyleA([in] HKL hKL, [in] UINT nItem, [out] STYLEBUFA *pStyleBuf, [out] UINT *puCopied); + HRESULT GetRegisterWordStyleW([in] HKL hKL, [in] UINT nItem, [out] STYLEBUFW *pStyleBuf, [out] UINT *puCopied); + HRESULT GetStatusWindowPos([in] HIMC hIMC, [out] POINT *pptPos); + HRESULT GetVirtualKey([in] HWND hWnd, [out] UINT *puVirtualKey); + HRESULT InstallIMEA([in] LPSTR szIMEFileName, [in] LPSTR szLayoutText, [out] HKL *phKL); + HRESULT InstallIMEW([in] LPWSTR szIMEFileName, [in] LPWSTR szLayoutText, [out] HKL *phKL); + HRESULT IsIME([in] HKL hKL); + HRESULT IsUIMessageA([in] HWND hWndIME, [in] UINT msg, [in] WPARAM wParam, [in] LPARAM lParam); + HRESULT IsUIMessageW([in] HWND hWndIME, [in] UINT msg, [in] WPARAM wParam, [in] LPARAM lParam); + HRESULT NotifyIME([in] HIMC hIMC, [in] DWORD dwAction, [in] DWORD dwIndex, [in] DWORD dwValue); + HRESULT RegisterWordA([in] HKL hKL, [in] LPSTR szReading, [in] DWORD dwStyle, [in] LPSTR szRegister); + HRESULT RegisterWordW([in] HKL hKL, [in] LPWSTR szReading, [in] DWORD dwStyle, [in] LPWSTR szRegister); + HRESULT ReleaseContext([in] HWND hWnd, [in] HIMC hIMC); + HRESULT SetCandidateWindow([in] HIMC hIMC, [in] CANDIDATEFORM *pCandidate); + HRESULT SetCompositionFontA([in] HIMC hIMC, [in] LOGFONTA *plf); + HRESULT SetCompositionFontW([in] HIMC hIMC, [in] LOGFONTW *plf); + HRESULT SetCompositionStringA([in] HIMC hIMC, [in] DWORD dwIndex, [in] LPVOID pComp, [in] DWORD dwCompLen, [in] LPVOID pRead, [in] DWORD dwReadLen); + HRESULT SetCompositionStringW([in] HIMC hIMC, [in] DWORD dwIndex, [in] LPVOID pComp, [in] DWORD dwCompLen, [in] LPVOID pRead, [in] DWORD dwReadLen); + HRESULT SetCompositionWindow([in] HIMC hIMC, [in] COMPOSITIONFORM *pCompForm); + HRESULT SetConversionStatus([in] HIMC hIMC, [in] DWORD fdwConversion, [in] DWORD fdwSentence); + HRESULT SetOpenStatus([in] HIMC hIMC, [in] BOOL fOpen); + HRESULT SetStatusWindowPos([in] HIMC hIMC, [in] POINT *pptPos); + HRESULT SimulateHotKey([in] HWND hWnd, [in] DWORD dwHotKeyID); + HRESULT UnregisterWordA([in] HKL hKL, [in] LPSTR szReading, [in] DWORD dwStyle, [in] LPSTR szUnregister); + HRESULT UnregisterWordW([in] HKL hKL, [in] LPWSTR szReading, [in] DWORD dwStyle, [in] LPWSTR szUnregister); + + HRESULT Activate([in] BOOL fRestoreLayout); + HRESULT Deactivate(); + + HRESULT OnDefWindowProc([in] HWND hWnd, [in] UINT Msg, [in] WPARAM wParam, [in] LPARAM lParam, [out] LRESULT *plResult); + + HRESULT FilterClientWindows([in] ATOM *aaClassList, [in] UINT uSize); + + HRESULT GetCodePageA([in] HKL hKL, [out] UINT *uCodePage); + HRESULT GetLangId([in] HKL hKL, [out] LANGID *plid); + + // win98/nt5 apis + HRESULT AssociateContextEx([in] HWND hWnd, [in] HIMC hIMC, [in] DWORD dwFlags); + HRESULT DisableIME([in] DWORD idThread); + HRESULT GetImeMenuItemsA([in] HIMC hIMC, [in] DWORD dwFlags, [in] DWORD dwType, [in] IMEMENUITEMINFOA *pImeParentMenu, [out] IMEMENUITEMINFOA *pImeMenu, [in] DWORD dwSize, [out] DWORD *pdwResult); + HRESULT GetImeMenuItemsW([in] HIMC hIMC, [in] DWORD dwFlags, [in] DWORD dwType, [in] IMEMENUITEMINFOW *pImeParentMenu, [out] IMEMENUITEMINFOW *pImeMenu, [in] DWORD dwSize, [out] DWORD *pdwResult); + HRESULT EnumInputContext([in] DWORD idThread, [out] IEnumInputContext **ppEnum); + }; + + [ + object, + uuid(08C03411-F96B-11d0-A475-00AA006BCC59), + pointer_default(unique) + ] + interface IActiveIMMIME : IUnknown + { + HRESULT AssociateContext([in] HWND hWnd, [in] HIMC hIME, [out] HIMC *phPrev); + HRESULT ConfigureIMEA([in] HKL hKL, [in] HWND hWnd, [in] DWORD dwMode, [in] REGISTERWORDA *pData); + HRESULT ConfigureIMEW([in] HKL hKL, [in] HWND hWnd, [in] DWORD dwMode, [in] REGISTERWORDW *pData); + HRESULT CreateContext([out] HIMC *phIMC); + HRESULT DestroyContext([in] HIMC hIME); + HRESULT EnumRegisterWordA([in] HKL hKL, [in] LPSTR szReading, [in] DWORD dwStyle, [in] LPSTR szRegister, [in] LPVOID pData, [out] IEnumRegisterWordA **pEnum); + HRESULT EnumRegisterWordW([in] HKL hKL, [in] LPWSTR szReading, [in] DWORD dwStyle, [in] LPWSTR szRegister, [in] LPVOID pData, [out] IEnumRegisterWordW **pEnum); + HRESULT EscapeA([in] HKL hKL, [in] HIMC hIMC, [in] UINT uEscape, [in, out] LPVOID pData, [out] LRESULT *plResult); + HRESULT EscapeW([in] HKL hKL, [in] HIMC hIMC, [in] UINT uEscape, [in, out] LPVOID pData, [out] LRESULT *plResult); + HRESULT GetCandidateListA([in] HIMC hIMC, [in] DWORD dwIndex, [in] UINT uBufLen, [out] CANDIDATELIST *pCandList, [out] UINT *puCopied); + HRESULT GetCandidateListW([in] HIMC hIMC, [in] DWORD dwIndex, [in] UINT uBufLen, [out] CANDIDATELIST *pCandList, [out] UINT *puCopied); + HRESULT GetCandidateListCountA([in] HIMC hIMC, [out] DWORD *pdwListSize, [out] DWORD *pdwBufLen); + HRESULT GetCandidateListCountW([in] HIMC hIMC, [out] DWORD *pdwListSize, [out] DWORD *pdwBufLen); + HRESULT GetCandidateWindow([in] HIMC hIMC, [in] DWORD dwIndex, [out] CANDIDATEFORM *pCandidate); + HRESULT GetCompositionFontA([in] HIMC hIMC, [out] LOGFONTA *plf); + HRESULT GetCompositionFontW([in] HIMC hIMC, [out] LOGFONTW *plf); + HRESULT GetCompositionStringA([in] HIMC hIMC, [in] DWORD dwIndex, [in] DWORD dwBufLen, [out] LONG *plCopied, [out] LPVOID pBuf); + HRESULT GetCompositionStringW([in] HIMC hIMC, [in] DWORD dwIndex, [in] DWORD dwBufLen, [out] LONG *plCopied, [out] LPVOID pBuf); + HRESULT GetCompositionWindow([in] HIMC hIMC, [out] COMPOSITIONFORM *pCompForm); + HRESULT GetContext([in] HWND hWnd, [out] HIMC *phIMC); + HRESULT GetConversionListA([in] HKL hKL, [in] HIMC hIMC, [in] LPSTR pSrc, [in] UINT uBufLen, [in] UINT uFlag, [out] CANDIDATELIST *pDst, [out] UINT *puCopied); + HRESULT GetConversionListW([in] HKL hKL, [in] HIMC hIMC, [in] LPWSTR pSrc, [in] UINT uBufLen, [in] UINT uFlag, [out] CANDIDATELIST *pDst, [out] UINT *puCopied); + HRESULT GetConversionStatus([in] HIMC hIMC, [out] DWORD *pfdwConversion, [out] DWORD *pfdwSentence); + HRESULT GetDefaultIMEWnd([in] HWND hWnd, [out] HWND *phDefWnd); + HRESULT GetDescriptionA([in] HKL hKL, [in] UINT uBufLen, [out] LPSTR szDescription, [out] UINT *puCopied); + HRESULT GetDescriptionW([in] HKL hKL, [in] UINT uBufLen, [out] LPWSTR szDescription, [out] UINT *puCopied); + HRESULT GetGuideLineA([in] HIMC hIMC, [in] DWORD dwIndex, [in] DWORD dwBufLen, [out] LPSTR pBuf, [out] DWORD *pdwResult); + HRESULT GetGuideLineW([in] HIMC hIMC, [in] DWORD dwIndex, [in] DWORD dwBufLen, [out] LPWSTR pBuf, [out] DWORD *pdwResult); + HRESULT GetIMEFileNameA([in] HKL hKL, [in] UINT uBufLen, [out] LPSTR szFileName, [out] UINT *puCopied); + HRESULT GetIMEFileNameW([in] HKL hKL, [in] UINT uBufLen, [out] LPWSTR szFileName, [out] UINT *puCopied); + HRESULT GetOpenStatus([in] HIMC hIMC); + HRESULT GetProperty([in] HKL hKL, [in] DWORD fdwIndex, [out] DWORD *pdwProperty); + HRESULT GetRegisterWordStyleA([in] HKL hKL, [in] UINT nItem, [out] STYLEBUFA *pStyleBuf, [out] UINT *puCopied); + HRESULT GetRegisterWordStyleW([in] HKL hKL, [in] UINT nItem, [out] STYLEBUFW *pStyleBuf, [out] UINT *puCopied); + HRESULT GetStatusWindowPos([in] HIMC hIMC, [out] POINT *pptPos); + HRESULT GetVirtualKey([in] HWND hWnd, [out] UINT *puVirtualKey); + HRESULT InstallIMEA([in] LPSTR szIMEFileName, [in] LPSTR szLayoutText, [out] HKL *phKL); + HRESULT InstallIMEW([in] LPWSTR szIMEFileName, [in] LPWSTR szLayoutText, [out] HKL *phKL); + HRESULT IsIME([in] HKL hKL); + HRESULT IsUIMessageA([in] HWND hWndIME, [in] UINT msg, [in] WPARAM wParam, [in] LPARAM lParam); + HRESULT IsUIMessageW([in] HWND hWndIME, [in] UINT msg, [in] WPARAM wParam, [in] LPARAM lParam); + HRESULT NotifyIME([in] HIMC hIMC, [in] DWORD dwAction, [in] DWORD dwIndex, [in] DWORD dwValue); + HRESULT RegisterWordA([in] HKL hKL, [in] LPSTR szReading, [in] DWORD dwStyle, [in] LPSTR szRegister); + HRESULT RegisterWordW([in] HKL hKL, [in] LPWSTR szReading, [in] DWORD dwStyle, [in] LPWSTR szRegister); + HRESULT ReleaseContext([in] HWND hWnd, [in] HIMC hIMC); + HRESULT SetCandidateWindow([in] HIMC hIMC, [in] CANDIDATEFORM *pCandidate); + HRESULT SetCompositionFontA([in] HIMC hIMC, [in] LOGFONTA *plf); + HRESULT SetCompositionFontW([in] HIMC hIMC, [in] LOGFONTW *plf); + HRESULT SetCompositionStringA([in] HIMC hIMC, [in] DWORD dwIndex, [in] LPVOID pComp, [in] DWORD dwCompLen, [in] LPVOID pRead, [in] DWORD dwReadLen); + HRESULT SetCompositionStringW([in] HIMC hIMC, [in] DWORD dwIndex, [in] LPVOID pComp, [in] DWORD dwCompLen, [in] LPVOID pRead, [in] DWORD dwReadLen); + HRESULT SetCompositionWindow([in] HIMC hIMC, [in] COMPOSITIONFORM *pCompForm); + HRESULT SetConversionStatus([in] HIMC hIMC, [in] DWORD fdwConversion, [in] DWORD fdwSentence); + HRESULT SetOpenStatus([in] HIMC hIMC, [in] BOOL fOpen); + HRESULT SetStatusWindowPos([in] HIMC hIMC, [in] POINT *pptPos); + HRESULT SimulateHotKey([in] HWND hWnd, [in] DWORD dwHotKeyID); + HRESULT UnregisterWordA([in] HKL hKL, [in] LPSTR szReading, [in] DWORD dwStyle, [in] LPSTR szUnregister); + HRESULT UnregisterWordW([in] HKL hKL, [in] LPWSTR szReading, [in] DWORD dwStyle, [in] LPWSTR szUnregister); + + // ime helper methods + HRESULT GenerateMessage([in] HIMC hIMC); + + // HIMC and HIMCC management api's + HRESULT LockIMC([in] HIMC hIMC, [out] INPUTCONTEXT **ppIMC); + HRESULT UnlockIMC([in] HIMC hIMC); + HRESULT GetIMCLockCount([in] HIMC hIMC, [out] DWORD *pdwLockCount); + HRESULT CreateIMCC([in] DWORD dwSize, [out] HIMCC *phIMCC); + HRESULT DestroyIMCC([in] HIMCC hIMCC); + HRESULT LockIMCC([in] HIMCC hIMCC, [out] void **ppv); + HRESULT UnlockIMCC([in] HIMCC hIMCC); + HRESULT ReSizeIMCC([in] HIMCC hIMCC, [in] DWORD dwSize, [out] HIMCC *phIMCC); + HRESULT GetIMCCSize([in] HIMCC hIMCC, [out] DWORD *pdwSize); + HRESULT GetIMCCLockCount([in] HIMCC hIMCC, [out] DWORD *pdwLockCount); + + // hot key manipulation api's + HRESULT GetHotKey([in] DWORD dwHotKeyID, [out] UINT *puModifiers, [out] UINT *puVKey, [out] HKL *phKL); + HRESULT SetHotKey([in] DWORD dwHotKeyID, [in] UINT uModifiers, [in] UINT uVKey, [in] HKL hKL); + + // soft keyboard api's + HRESULT CreateSoftKeyboard([in] UINT uType, [in] HWND hOwner, [in] int x, [in] int y, [out] HWND *phSoftKbdWnd); + HRESULT DestroySoftKeyboard([in] HWND hSoftKbdWnd); + HRESULT ShowSoftKeyboard([in] HWND hSoftKbdWnd, [in] int nCmdShow); + + HRESULT GetCodePageA([in] HKL hKL, [out] UINT *uCodePage); + HRESULT GetLangId([in] HKL hKL, [out] LANGID *plid); + + HRESULT KeybdEvent([in] LANGID lgidIME, [in] BYTE bVk, [in] BYTE bScan, [in] DWORD dwFlags, [in] DWORD dwExtraInfo); + + HRESULT LockModal(); + HRESULT UnlockModal(); + + // win98/nt5 apis + HRESULT AssociateContextEx([in] HWND hWnd, [in] HIMC hIMC, [in] DWORD dwFlags); + HRESULT DisableIME([in] DWORD idThread); + HRESULT GetImeMenuItemsA([in] HIMC hIMC, [in] DWORD dwFlags, [in] DWORD dwType, [in] IMEMENUITEMINFOA *pImeParentMenu, [out] IMEMENUITEMINFOA *pImeMenu, [in] DWORD dwSize, [out] DWORD *pdwResult); + HRESULT GetImeMenuItemsW([in] HIMC hIMC, [in] DWORD dwFlags, [in] DWORD dwType, [in] IMEMENUITEMINFOW *pImeParentMenu, [out] IMEMENUITEMINFOW *pImeMenu, [in] DWORD dwSize, [out] DWORD *pdwResult); + HRESULT EnumInputContext([in] DWORD idThread, [out] IEnumInputContext **ppEnum); + HRESULT RequestMessageA([in] HIMC hIMC, [in] WPARAM wParam, [in] LPARAM lParam, [out] LRESULT *plResult); + HRESULT RequestMessageW([in] HIMC hIMC, [in] WPARAM wParam, [in] LPARAM lParam, [out] LRESULT *plResult); + + HRESULT SendIMCA([in] HWND hWnd, [in] UINT uMsg, [in] WPARAM wParam, [in] LPARAM lParam, [out] LRESULT *plResult); + HRESULT SendIMCW([in] HWND hWnd, [in] UINT uMsg, [in] WPARAM wParam, [in] LPARAM lParam, [out] LRESULT *plResult); + + HRESULT IsSleeping(); + }; + + [ + object, + uuid(6FE20962-D077-11d0-8FE7-00AA006BCC59), + pointer_default(unique) + ] + interface IActiveIME : IUnknown + { + HRESULT Inquire([in] DWORD dwSystemInfoFlags, [out] IMEINFO *pIMEInfo, [out] LPWSTR szWndClass, [out] DWORD *pdwPrivate); + HRESULT ConversionList([in] HIMC hIMC, [in] LPWSTR szSource, [in] UINT uFlag, [in] UINT uBufLen, [out] CANDIDATELIST *pDest, [out] UINT *puCopied); + HRESULT Configure([in] HKL hKL, [in] HWND hWnd, [in] DWORD dwMode, [in] REGISTERWORDW *pRegisterWord); + HRESULT Destroy([in] UINT uReserved); + HRESULT Escape([in] HIMC hIMC, [in] UINT uEscape, [in, out] void *pData, [out] LRESULT *plResult); + HRESULT SetActiveContext([in] HIMC hIMC, [in] BOOL fFlag); + HRESULT ProcessKey([in] HIMC hIMC, [in] UINT uVirKey, [in] DWORD lParam, [in] BYTE *pbKeyState); + HRESULT Notify([in] HIMC hIMC, [in] DWORD dwAction, [in] DWORD dwIndex, [in] DWORD dwValue); + HRESULT Select([in] HIMC hIMC, [in] BOOL fSelect); + HRESULT SetCompositionString([in] HIMC hIMC, [in] DWORD dwIndex, [in] void *pComp, [in] DWORD dwCompLen, [in] void *pRead, [in] DWORD dwReadLen); + HRESULT ToAsciiEx([in] UINT uVirKey, [in] UINT uScanCode, [in] BYTE *pbKeyState, [in] UINT fuState, [in] HIMC hIMC, [out] DWORD *pdwTransBuf, [out] UINT *puSize); + HRESULT RegisterWord([in] LPWSTR szReading, [in] DWORD dwStyle, [in] LPWSTR szString); + HRESULT UnregisterWord([in] LPWSTR szReading, [in] DWORD dwStyle, [in] LPWSTR szString); + HRESULT GetRegisterWordStyle([in] UINT nItem, [out] STYLEBUFW *pStyleBuf, [out] UINT *puBufSize); + HRESULT EnumRegisterWord([in] LPWSTR szReading, [in] DWORD dwStyle, [in] LPWSTR szRegister, [in] LPVOID pData, [out] IEnumRegisterWordW **ppEnum); + HRESULT GetCodePageA([out] UINT *uCodePage); + HRESULT GetLangId([out] LANGID *plid); + }; + + [ + object, + uuid(e1c4bf0e-2d53-11d2-93e1-0060b067b86e), + pointer_default(unique) + ] + interface IActiveIME2 : IActiveIME + { + HRESULT Sleep(); + HRESULT Unsleep([in] BOOL fDead); + }; + + [ + uuid(4955DD33-B159-11d0-8FCF-00AA006BCC59), + ] + coclass CActiveIMM + { + [default] interface IActiveIMMApp; + interface IActiveIMMIME; + interface IActiveIMMRegistrar; + interface IActiveIMMMessagePumpOwner; + }; +} |