//+------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1992-1997. // // File: aimm12.idl // // Contents: ActiveIMM 1.2 interface definitions // // //-------------------------------------------------------------------------- cpp_quote("//=--------------------------------------------------------------------------=") cpp_quote("// aimm12.h") cpp_quote("//=--------------------------------------------------------------------------=") cpp_quote("// (C) Copyright 1995-1999 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 1.2 Interfaces.") cpp_quote("") #ifndef DO_NO_IMPORTS import "unknwn.idl"; import "oaidl.idl"; #endif cpp_quote("EXTERN_C const CLSID CLSID_CActiveIMM12;") cpp_quote("EXTERN_C const CLSID CLSID_CActiveIMM12_Trident;") cpp_quote("#define AIMM12_PROCESS_ATOM TEXT(\"_AIMM12_PROCESS_ATOM_\")") 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; #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("#if !defined(_DDKIMM_H_) && !defined(_IMM_DDK_DEFINED_)") 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(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); } [ local, 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); // aimm specific 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); };