179 lines
7.4 KiB
C
179 lines
7.4 KiB
C
/*++
|
|
|
|
Copyright (c) 1985 - 1999, Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
imm32.h
|
|
|
|
Abstract:
|
|
|
|
This file defines the IMM32 class.
|
|
|
|
Author:
|
|
|
|
Revision History:
|
|
|
|
Notes:
|
|
|
|
--*/
|
|
|
|
#ifndef _CIMM32_H_
|
|
#define _CIMM32_H_
|
|
|
|
#include "delay.h"
|
|
|
|
// consider: why not just not link imm32.lib, and implement the wrappers with the
|
|
// same API names? We could get rid of the Imm32_ prefix, and we could get
|
|
// rid of the imm32 namespace in delay.h.
|
|
//
|
|
// This would also prevent anyone from accidently not delay loading a currently
|
|
// unused imm32 api -- they'd get a link error.
|
|
|
|
/*
|
|
* IMM32 Input Context (hIMC) API Interface.
|
|
*/
|
|
HRESULT Imm32_CreateContext(OUT HIMC *phIMC);
|
|
HRESULT Imm32_DestroyContext(IN HIMC hIMC);
|
|
HRESULT Imm32_AssociateContext(IN HWND hWnd, IN HIMC hIMC, OUT HIMC *phPrev);
|
|
HRESULT Imm32_AssociateContextEx(IN HWND hWnd, IN HIMC hIMC, IN DWORD dwFlags);
|
|
HRESULT Imm32_GetContext(IN HWND hWnd, OUT HIMC *phIMC);
|
|
HRESULT Imm32_ReleaseContext(IN HWND hWnd, IN HIMC hIMC);
|
|
HRESULT Imm32_GetIMCLockCount(IN HIMC hIMC, OUT DWORD* pdwLockCount);
|
|
HRESULT Imm32_LockIMC(HIMC hIMC, OUT INPUTCONTEXT **ppIMC);
|
|
HRESULT Imm32_UnlockIMC(IN HIMC hIMC);
|
|
|
|
/*
|
|
* IMM32 Input Context Components (hIMCC) API Interface.
|
|
*/
|
|
HRESULT Imm32_CreateIMCC(IN DWORD dwSize, OUT HIMCC *phIMCC);
|
|
HRESULT Imm32_DestroyIMCC(IN HIMCC hIMCC);
|
|
HRESULT Imm32_GetIMCCSize(IN HIMCC hIMCC, OUT DWORD *pdwSize);
|
|
HRESULT Imm32_ReSizeIMCC(IN HIMCC hIMCC, IN DWORD dwSize, OUT HIMCC *phIMCC);
|
|
HRESULT Imm32_GetIMCCLockCount(IN HIMCC, OUT DWORD*);
|
|
HRESULT Imm32_LockIMCC(IN HIMCC hIMCC, OUT void **ppv);
|
|
HRESULT Imm32_UnlockIMCC(IN HIMCC hIMCC);
|
|
|
|
/*
|
|
* IMM32 Open Status API Interface
|
|
*/
|
|
HRESULT Imm32_GetOpenStatus(IN HIMC hIMC);
|
|
HRESULT Imm32_SetOpenStatus(HIMC hIMC, BOOL fOpen);
|
|
|
|
/*
|
|
* IMM32 Conversion Status API Interface
|
|
*/
|
|
HRESULT Imm32_GetConversionStatus(IN HIMC hIMC, OUT DWORD *lpfdwConversion, OUT DWORD *lpfdwSentence);
|
|
HRESULT Imm32_SetConversionStatus(IN HIMC hIMC, IN DWORD fdwConversion, IN DWORD fdwSentence);
|
|
|
|
/*
|
|
* IMM32 Status Window Pos API Interface
|
|
*/
|
|
HRESULT Imm32_GetStatusWindowPos(IN HIMC hIMC, OUT POINT *lpptPos);
|
|
HRESULT Imm32_SetStatusWindowPos(IN HIMC hIMC, IN POINT *lpptPos);
|
|
|
|
/*
|
|
* IMM32 Composition Window API Interface
|
|
*/
|
|
HRESULT Imm32_GetCompositionWindow(IN HIMC hIMC, OUT COMPOSITIONFORM *lpCompForm);
|
|
HRESULT Imm32_SetCompositionWindow(IN HIMC hIMC, IN COMPOSITIONFORM *lpCompForm);
|
|
|
|
/*
|
|
* IMM32 Candidate Window API Interface
|
|
*/
|
|
HRESULT Imm32_GetCandidateWindow(IN HIMC hIMC, IN DWORD dwIndex, OUT CANDIDATEFORM *lpCandidate);
|
|
HRESULT Imm32_SetCandidateWindow(IN HIMC hIMC, IN CANDIDATEFORM *lpCandForm);
|
|
|
|
/*
|
|
* IMM32 Notify IME API Interface
|
|
*/
|
|
HRESULT Imm32_NotifyIME(IN HIMC hIMC, IN DWORD dwAction, IN DWORD dwIndex, IN DWORD dwValue);
|
|
|
|
|
|
|
|
HRESULT Imm32_GetCompositionString(IN HIMC hIMC, IN DWORD dwIndex, IN DWORD dwCompLen, OUT LONG*& lpCopied, OUT LPVOID lpBuf, BOOL fUnicode);
|
|
HRESULT Imm32_SetCompositionString(IN HIMC hIMC, IN DWORD dwIndex, IN LPVOID lpComp, IN DWORD dwCompLen, IN LPVOID lpRead, IN DWORD dwReadLen, BOOL fUnicode);
|
|
HRESULT Imm32_GetCompositionFont(IN HIMC hIMC, IN LOGFONTAW* lplf, BOOL fUnicode);
|
|
HRESULT Imm32_SetCompositionFont(IN HIMC hIMC, IN LOGFONTAW* lplf, BOOL fUnicode);
|
|
HRESULT Imm32_GetCandidateList(IN HIMC hIMC, IN DWORD dwIndex, IN DWORD dwBufLen, OUT LPCANDIDATELIST lpCandList, OUT UINT* puCopied, BOOL fUnicode);
|
|
HRESULT Imm32_GetCandidateListCount(IN HIMC, OUT DWORD* lpdwListSize, OUT DWORD* pdwBufLen, BOOL fUnicode);
|
|
HRESULT Imm32_GetGuideLine(IN HIMC, IN DWORD dwIndex, IN DWORD dwBufLen, OUT CHARAW* pBuf, OUT DWORD* pdwResult, BOOL fUnicode);
|
|
HRESULT Imm32_GetImeMenuItems(IN HIMC hIMC, IN DWORD dwFlags, IN DWORD dwType, IN IMEMENUITEMINFOAW *pImeParentMenu, OUT IMEMENUITEMINFOAW *pImeMenu, IN DWORD dwSize, OUT DWORD* pdwResult, BOOL fUnicode);
|
|
HRESULT Imm32_GenerateMessage(IN HIMC hIMC);
|
|
|
|
/*
|
|
* hWnd
|
|
*/
|
|
HRESULT Imm32_GetDefaultIMEWnd(IN HWND hWnd, OUT HWND *phDefWnd);
|
|
HRESULT Imm32_GetVirtualKey(HWND hWnd, UINT* puVirtualKey);
|
|
HRESULT Imm32_IsUIMessageA(HWND hWndIME, UINT msg, WPARAM wParam, LPARAM lParam);
|
|
HRESULT Imm32_IsUIMessageW(HWND hWndIME, UINT msg, WPARAM wParam, LPARAM lParam);
|
|
HRESULT Imm32_SimulateHotKey(HWND hWnd, DWORD dwHotKeyID);
|
|
|
|
/*
|
|
* hKL
|
|
*/
|
|
HRESULT Imm32_GetProperty(HKL hKL, DWORD dwOffset, DWORD* pdwProperty);
|
|
HRESULT Imm32_Escape(HKL hKL, HIMC hIMC, UINT uEscape, LPVOID lpData, LRESULT *plResult, BOOL fUnicode);
|
|
HRESULT Imm32_GetDescription(HKL hKL, UINT uBufLen, CHARAW* lpsz, UINT* puCopied, BOOL fUnicode);
|
|
HRESULT Imm32_IsIME(HKL hKL);
|
|
|
|
/*
|
|
* soft kbd
|
|
*/
|
|
inline HRESULT Imm32_CreateSoftKeyboard(UINT uType, HWND hOwner, int x, int y, HWND *phSoftKbdWnd)
|
|
{
|
|
*phSoftKbdWnd = imm32::ImmCreateSoftKeyboard(uType, hOwner, x, y);
|
|
return S_OK;
|
|
}
|
|
inline HRESULT Imm32_DestroySoftKeyboard(HWND hSoftKbdWnd)
|
|
{
|
|
return imm32::ImmDestroySoftKeyboard(hSoftKbdWnd) ? S_OK : E_FAIL;
|
|
}
|
|
inline HRESULT Imm32_ShowSoftKeyboard(HWND hSoftKbdWnd, int nCmdShow)
|
|
{
|
|
return imm32::ImmShowSoftKeyboard(hSoftKbdWnd, nCmdShow) ? S_OK : E_FAIL;
|
|
}
|
|
|
|
/*
|
|
* win98/nt5 apis
|
|
*/
|
|
HRESULT Imm32_RequestMessage(HIMC hIMC, WPARAM wParam, LPARAM lParam, LRESULT* plResult, BOOL fUnicode);
|
|
|
|
/*
|
|
* Register Word
|
|
*/
|
|
HRESULT Imm32_EnumRegisterWordA(HKL hKL, LPSTR szReading, DWORD dwStyle, LPSTR szRegister, LPVOID lpData, IEnumRegisterWordA **pEnum);
|
|
HRESULT Imm32_EnumRegisterWordW(HKL hKL, LPWSTR szReading, DWORD dwStyle, LPWSTR szRegister, LPVOID lpData, IEnumRegisterWordW **pEnum);
|
|
HRESULT Imm32_GetRegisterWordStyleA(HKL hKL, UINT nItem, STYLEBUFA *lpStyleBuf, UINT *puCopied);
|
|
HRESULT Imm32_GetRegisterWordStyleW(HKL hKL, UINT nItem, STYLEBUFW *lpStyleBuf, UINT *puCopied);
|
|
HRESULT Imm32_RegisterWordA(HKL hKL, LPSTR lpszReading, DWORD dwStyle, LPSTR lpszRegister);
|
|
HRESULT Imm32_RegisterWordW(HKL hKL, LPWSTR lpszReading, DWORD dwStyle, LPWSTR lpszRegister);
|
|
HRESULT Imm32_UnregisterWordA(HKL hKL, LPSTR lpszReading, DWORD dwStyle, LPSTR lpszUnregister);
|
|
HRESULT Imm32_UnregisterWordW(HKL hKL, LPWSTR lpszReading, DWORD dwStyle, LPWSTR lpszUnregister);
|
|
|
|
/*
|
|
*
|
|
*/
|
|
HRESULT Imm32_ConfigureIMEA(HKL hKL, HWND hWnd, DWORD dwMode, REGISTERWORDA *lpdata);
|
|
HRESULT Imm32_ConfigureIMEW(HKL hKL, HWND hWnd, DWORD dwMode, REGISTERWORDW *lpdata);
|
|
|
|
HRESULT Imm32_GetConversionListA(HKL hKL, HIMC hIMC, LPSTR pSrc, UINT uBufLen, UINT uFlag, CANDIDATELIST *pDst, UINT *puCopied);
|
|
HRESULT Imm32_GetConversionListW(HKL hKL, HIMC hIMC, LPWSTR lpSrc, UINT uBufLen, UINT uFlag, CANDIDATELIST *lpDst, UINT *puCopied);
|
|
|
|
HRESULT Imm32_GetDescriptionA(HKL hKL, UINT uBufLen, LPSTR lpszDescription, UINT *puCopied);
|
|
HRESULT Imm32_GetDescriptionW(HKL hKL, UINT uBufLen, LPWSTR lpszDescription, UINT *puCopied);
|
|
HRESULT Imm32_GetIMEFileNameA(HKL hKL, UINT uBufLen, LPSTR lpszFileName, UINT *puCopied);
|
|
HRESULT Imm32_GetIMEFileNameW(HKL hKL, UINT uBufLen, LPWSTR lpszFileName, UINT *puCopied);
|
|
HRESULT Imm32_InstallIMEA(LPSTR lpszIMEFileName, LPSTR lpszLayoutText, HKL *phKL);
|
|
HRESULT Imm32_InstallIMEW(LPWSTR lpszIMEFileName, LPWSTR lpszLayoutText, HKL *phKL);
|
|
HRESULT Imm32_DisableIME(DWORD idThread);
|
|
|
|
HRESULT Imm32_GetHotKey(DWORD dwHotKeyID, UINT *puModifiers, UINT *puVKey, HKL *phKL);
|
|
HRESULT Imm32_SetHotKey(DWORD dwHotKeyID, UINT uModifiers, UINT uVKey, HKL hKL);
|
|
|
|
HRESULT Imm32_RequestMessageA(HIMC hIMC, WPARAM wParam, LPARAM lParam, LRESULT *plResult);
|
|
HRESULT Imm32_RequestMessageW(HIMC hIMC, WPARAM wParam, LPARAM lParam, LRESULT *plResult);
|
|
|
|
#endif // _CIMM32_H_
|