在 Win32 API 中,ITfFnLMProcessor 接口是 Text Services Framework(TSF)的一部分,用于处理与语言模型相关的功能。以下是 ITfFnLMProcessor 接口的定义:
typedef struct ITfFnLMProcessor : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE QueryRange(ITfRange *pRange, ITfRange **ppNewRange, BOOL *pfAccepted) = 0;
    virtual HRESULT STDMETHODCALLTYPE QueryLangID(LANGID *plangid) = 0;
    virtual HRESULT STDMETHODCALLTYPE GetReconversion(ITfRange *pRange, ITfCandidateList **ppCandList) = 0;
    virtual HRESULT STDMETHODCALLTYPE Reconvert(ITfRange *pRange) = 0;
    virtual HRESULT STDMETHODCALLTYPE QueryKey(const GUID *pguidKey, BOOL *pfSupport) = 0;
    virtual HRESULT STDMETHODCALLTYPE InvokeKey(const GUID *pguidKey) = 0;
    virtual HRESULT STDMETHODCALLTYPE InvokeFunc(ITfContext *pic, REFGUID refguidFunc) = 0;
} ITfFnLMProcessor;

与之前提到的 ITfFnLMInternal 接口相比,ITfFnLMProcessor 接口的定义几乎相同,这两者在接口成员和功能上都非常相似。这是因为它们都用于支持语言模型的一些基本操作。

主要函数的简要说明:

1. QueryRange 函数用于查询给定范围内是否支持语言模型,并可返回新的范围。

2. QueryLangID 函数用于查询语言模型的语言标识符(LANGID)。

3. GetReconversion 函数用于获取重新转换的候选列表。

4. Reconvert 函数用于执行重新转换操作。

5. QueryKey 函数用于查询是否支持特定键。

6. InvokeKey 函数用于执行与键相关的操作。

7. InvokeFunc 函数用于执行与功能相关的操作。

这两个接口通常由文本服务使用,以提供语言模型的高级功能。


转载请注明出处:http://www.zyzy.cn/article/detail/25189/Win32 API/Ctffunc.h/ITfFnLMProcessor