| /* |
| * Copyright 2007 Jacek Caban for CodeWeavers |
| * |
| * This library is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU Lesser General Public |
| * License as published by the Free Software Foundation; either |
| * version 2.1 of the License, or (at your option) any later version. |
| * |
| * This library is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| * Lesser General Public License for more details. |
| * |
| * You should have received a copy of the GNU Lesser General Public |
| * License along with this library; if not, write to the Free Software |
| * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA |
| */ |
| |
| #ifndef DO_NO_IMPORTS |
| import "unknwn.idl"; |
| #endif |
| |
| cpp_quote("#include <imm.h>") |
| |
| cpp_quote("#if 0") |
| |
| 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; |
| |
| #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") |
| |
| [ |
| 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), |
| local |
| ] |
| 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(08c0e040-62d1-11d1-9326-0060b067b86e), |
| pointer_default(unique), |
| local |
| ] |
| 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); |
| |
| 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(b5cf2cfa-8aeb-11d1-9364-0060b067b86e), |
| pointer_default(unique) |
| ] |
| interface IActiveIMMMessagePumpOwner : IUnknown |
| { |
| HRESULT Start(); |
| HRESULT End(); |
| HRESULT OnTranslateMessage([in] const MSG *msg); |
| HRESULT Pause([out] DWORD *cookie); |
| HRESULT Resume([in] DWORD cookie); |
| } |
| |
| [ |
| uuid(4955dd33-b159-11d0-8fcf-00aa006bcc59) |
| ] |
| coclass CActiveIMM |
| { |
| [default] interface IActiveIMMApp; |
| /* interface IActiveIMMIME; */ |
| /* interface IActiveIMMRegistrar; */ |
| interface IActiveIMMMessagePumpOwner; |
| } |