You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
244 lines
5.4 KiB
244 lines
5.4 KiB
//+---------------------------------------------------------------------------
|
|
//
|
|
// File: caime.h
|
|
//
|
|
// Contents: CAIME
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
#ifndef CAIME_H
|
|
#define CAIME_H
|
|
|
|
#include "imtls.h"
|
|
|
|
typedef struct _PauseCookie
|
|
{
|
|
DWORD dwCookie;
|
|
struct _PauseCookie *next;
|
|
} PauseCookie;
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// CAIME
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
class __declspec(novtable) CAIME : public IActiveIME_Private,
|
|
public IServiceProvider
|
|
{
|
|
public:
|
|
CAIME();
|
|
virtual ~CAIME();
|
|
|
|
//
|
|
// IUnknown methods
|
|
//
|
|
virtual STDMETHODIMP QueryInterface(REFIID riid, void **ppvObj);
|
|
virtual STDMETHODIMP_(ULONG) AddRef(void);
|
|
virtual STDMETHODIMP_(ULONG) Release(void);
|
|
|
|
#if 0
|
|
//
|
|
// Wrappers
|
|
//
|
|
|
|
HIMC GetContext(HWND hWnd)
|
|
{
|
|
HIMC hIMC;
|
|
|
|
_pActiveIMM->GetContext(hWnd, &hIMC);
|
|
|
|
return hIMC;
|
|
}
|
|
|
|
HIMC CreateContext()
|
|
{
|
|
HIMC hIMC;
|
|
|
|
_pActiveIMM->CreateContext(&hIMC);
|
|
|
|
return hIMC;
|
|
}
|
|
|
|
BOOL DestroyContext(HIMC hIMC)
|
|
{
|
|
return SUCCEEDED(_pActiveIMM->DestroyContext(hIMC));
|
|
}
|
|
|
|
HIMC AssociateContext(HWND hWnd, HIMC hIMC)
|
|
{
|
|
HIMC hOrgIMC;
|
|
|
|
_pActiveIMM->AssociateContext(hWnd, hIMC, &hOrgIMC);
|
|
|
|
return hOrgIMC;
|
|
}
|
|
|
|
LPINPUTCONTEXT LockIMC(HIMC hIMC)
|
|
{
|
|
LPINPUTCONTEXT pic;
|
|
|
|
_pActiveIMM->LockIMC(hIMC, &pic);
|
|
|
|
return pic;
|
|
}
|
|
|
|
BOOL UnlockIMC(HIMC hIMC)
|
|
{
|
|
return (_pActiveIMM->UnlockIMC(hIMC) == S_OK);
|
|
}
|
|
|
|
LPVOID LockIMCC(HIMCC hIMCC)
|
|
{
|
|
void *pv;
|
|
|
|
_pActiveIMM->LockIMCC(hIMCC, &pv);
|
|
|
|
return pv;
|
|
}
|
|
|
|
BOOL UnlockIMCC(HIMCC hIMCC)
|
|
{
|
|
return (_pActiveIMM->UnlockIMCC(hIMCC) == S_OK);
|
|
}
|
|
|
|
HIMCC CreateIMCC(DWORD dwSize)
|
|
{
|
|
HIMCC hIMCC;
|
|
|
|
_pActiveIMM->CreateIMCC(dwSize, &hIMCC);
|
|
|
|
return hIMCC;
|
|
}
|
|
|
|
HIMCC DestroyIMCC(HIMCC hIMCC)
|
|
{
|
|
return SUCCEEDED(_pActiveIMM->DestroyIMCC(hIMCC)) ? NULL : hIMCC;
|
|
}
|
|
|
|
DWORD GetIMCCSize(HIMCC hIMCC)
|
|
{
|
|
DWORD dwSize;
|
|
|
|
_pActiveIMM->GetIMCCSize(hIMCC, &dwSize);
|
|
|
|
return dwSize;
|
|
}
|
|
|
|
HIMCC ReSizeIMCC(HIMCC hIMCC, DWORD dwSize)
|
|
{
|
|
HIMCC hIMCC2;
|
|
|
|
_pActiveIMM->ReSizeIMCC(hIMCC, dwSize, &hIMCC2);
|
|
|
|
return hIMCC2;
|
|
}
|
|
|
|
BOOL GenerateMessage(HIMC hIMC)
|
|
{
|
|
return (_pActiveIMM->GenerateMessage(hIMC) == S_OK);
|
|
}
|
|
|
|
DWORD GetGuideLineA(HIMC hIMC, DWORD dwIndex, LPSTR szBuffer, DWORD dwBufLen)
|
|
{
|
|
DWORD dwResult;
|
|
|
|
_pActiveIMM->GetGuideLineA(hIMC, dwIndex, dwBufLen, szBuffer, &dwResult);
|
|
|
|
return dwResult;
|
|
}
|
|
|
|
BOOL SetCandidateWindow(HIMC hIMC, LPCANDIDATEFORM lpCandidateForm)
|
|
{
|
|
return (_pActiveIMM->SetCandidateWindow(hIMC, lpCandidateForm) == S_OK);
|
|
}
|
|
|
|
BOOL GetOpenStatus(HIMC hIMC)
|
|
{
|
|
return (_pActiveIMM->GetOpenStatus(hIMC) == S_OK);
|
|
}
|
|
|
|
BOOL SetOpenStatus(HIMC hIMC, BOOL fOpen)
|
|
{
|
|
return (_pActiveIMM->SetOpenStatus(hIMC, fOpen) == S_OK);
|
|
}
|
|
|
|
BOOL GetConversionStatus(HIMC hIMC, LPDWORD lpfdwConversion, LPDWORD lpfdwSentence)
|
|
{
|
|
return (_pActiveIMM->GetConversionStatus(hIMC, lpfdwConversion, lpfdwSentence) == S_OK);
|
|
}
|
|
|
|
BOOL SetConversionStatus(HIMC hIMC, DWORD fdwConversion, DWORD fdwSentence)
|
|
{
|
|
return (_pActiveIMM->SetConversionStatus(hIMC, fdwConversion, fdwSentence) == S_OK);
|
|
}
|
|
|
|
HWND GetDefaultIMEWnd(HWND hWnd)
|
|
{
|
|
HWND hDefWnd;
|
|
|
|
_pActiveIMM->GetDefaultIMEWnd(hWnd, &hDefWnd);
|
|
|
|
return hDefWnd;
|
|
}
|
|
|
|
BOOL GetHotKey(DWORD dwHotKeyID, UINT *puModifiers, UINT *puVKey, HKL *phKL)
|
|
{
|
|
return SUCCEEDED(_pActiveIMM->GetHotKey(dwHotKeyID, puModifiers, puVKey, phKL));
|
|
}
|
|
|
|
HWND CreateSoftKeyboard(UINT uType, HWND hOwner, int x, int y)
|
|
{
|
|
HWND hWnd;
|
|
|
|
_pActiveIMM->CreateSoftKeyboard(uType, hOwner, x, y, &hWnd);
|
|
|
|
return hWnd;
|
|
}
|
|
|
|
BOOL DestroySoftKeyboard(HWND hSoftKbdWnd)
|
|
{
|
|
return SUCCEEDED(_pActiveIMM->DestroySoftKeyboard(hSoftKbdWnd));
|
|
}
|
|
|
|
BOOL ShowSoftKeyboard(HWND hSoftKbdWnd, int nCmdShow)
|
|
{
|
|
return SUCCEEDED(_pActiveIMM->ShowSoftKeyboard(hSoftKbdWnd, nCmdShow));
|
|
}
|
|
|
|
UINT GetConversionListA(HKL hKL, HIMC hIMC, LPSTR lpSrc, CANDIDATELIST *lpDst, UINT uBufLen, UINT uFlag)
|
|
{
|
|
UINT uCopied;
|
|
|
|
_pActiveIMM->GetConversionListA(hKL, hIMC, lpSrc, uBufLen, uFlag, lpDst, &uCopied);
|
|
|
|
return uCopied;
|
|
}
|
|
|
|
LRESULT EscapeA(HKL hKL, HIMC hIMC, UINT uEscape, LPVOID lpData)
|
|
{
|
|
LRESULT lResult;
|
|
|
|
_pActiveIMM->EscapeA(hKL, hIMC, uEscape, lpData, &lResult);
|
|
|
|
return lResult;
|
|
}
|
|
|
|
BOOL SetStatusWindowPos(HIMC hIMC, POINT *lpptPos)
|
|
{
|
|
return SUCCEEDED(_pActiveIMM->SetStatusWindowPos(hIMC, lpptPos));
|
|
}
|
|
#endif
|
|
|
|
protected:
|
|
|
|
IActiveIMMIME_Private* m_pIActiveIMMIME;
|
|
|
|
PauseCookie *_pPauseCookie;
|
|
int _cRef;
|
|
|
|
public:
|
|
virtual STDMETHODIMP QueryService(REFGUID guidService, REFIID riid, void **ppv) = 0;
|
|
};
|
|
|
|
#endif // CAIME_H
|