// // fnrecon.h // #ifndef FNRECON_H #define FNRECON_H #include "private.h" #include "candlstx.h" class CFunctionProvider; ////////////////////////////////////////////////////////////////////////////// // // CFunction // ////////////////////////////////////////////////////////////////////////////// class CFunction { public: CFunction(CFunctionProvider *pFuncPrv); ~CFunction(); protected: HRESULT GetTarget(TfEditCookie ec, ITfContext *pic, ITfRange *pRange, BOOL bAdjust, ITfRange **ppRangeTmp, WCHAR **ppszText, ULONG *pcch); BOOL GetFocusedTarget(TfEditCookie ec, ITfContext *pic, ITfRange *pRange, BOOL bAdjust, ITfRange **ppRangeTmp); friend CKorIMX; CFunctionProvider *_pFuncPrv; }; ////////////////////////////////////////////////////////////////////////////// // // CFnRecovnersion // ////////////////////////////////////////////////////////////////////////////// // !!! WARNING !!! // This is temp code should be removed in the future #define MAXREADING 256 class CFnReconversion : public ITfFnReconversion, public CFunction { public: CFnReconversion(CKorIMX* pKorImx, CFunctionProvider *pFuncPrv); ~CFnReconversion(); // // IUnknown methods // STDMETHODIMP QueryInterface(REFIID riid, void **ppvObj); STDMETHODIMP_(ULONG) AddRef(void); STDMETHODIMP_(ULONG) Release(void); // // ITfFunction // STDMETHODIMP GetDisplayName(BSTR *pbstrCand); STDMETHODIMP IsEnabled(BOOL *pfEnable); // // ITfFnReconversion // STDMETHODIMP QueryRange(ITfRange *pRange, ITfRange **ppNewRange, BOOL *pfConvertable); STDMETHODIMP GetReconversion(ITfRange *pRange, ITfCandidateList **ppCandList); STDMETHODIMP Reconvert(ITfRange *pRange); static HRESULT SetResult(ITfContext *pic, ITfRange *pRange, CCandidateListEx *pCandList, CCandidateStringEx *pCand, TfCandidateResult imcr); HRESULT _QueryRange(TfEditCookie ec, ITfContext *pic, ITfRange *pRange, ITfRange **ppNewRange); HRESULT _GetReconversion(TfEditCookie ec, ITfContext *pic, ITfRange *pRange, CCandidateListEx **ppCandList, BOOL fSelection); private: HRESULT GetReconversionProc( ITfContext *pic, ITfRange *pRange, CCandidateListEx **ppCandList, BOOL fSelection); HRESULT ShowCandidateList(ITfContext *pic, ITfRange *pRange, CCandidateListEx *pCandList); // static HRESULT _EditSessionCallback2(TfEditCookie ec, CEditSession2 *pes); WCHAR _szReading[MAXREADING]; CKorIMX* m_pKorImx; long _cRef; }; #endif // FNRECON_H