//+--------------------------------------------------------------------------- // // 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