iTfInputScope 接口 (inputscope.h)

文本输入处理器使用 ITfInputScope 接口获取 InputScope 值,该值表示与窗口关联的文档上下文。 输入范围提供有助于语音和手写识别的规则。 例如,如果使用窗体上的文本框输入地址,则可以将文本框的输入范围设置为仅识别并接受对地址有效的字符。

接口 ID 是IID_ITfInputScope。

文档上下文由语音和手写识别引擎使用,并由文本输入处理器通过调用 SetInputScope 方法进行设置。 TSF 感知应用程序不会直接调用 SetInputScope ,而是实现 ITextStoreACPITfContextOwner 以获取指向 ITfInputScope 的指针。

若要获取指向 ITfInputScope 接口的指针,文本输入处理器或 TSF 感知应用程序调用 ITfContext::GetAppProperty,传入 GUID_PROP_INPUTSCOPE 和指向 ITFReadOnlyProperty 接口的指针,如以下示例所示。


extern const GUID GUID_PROP_INPUTSCOPE;
// 
// The TIP can call this to get the input scope of the document mgr. 
// 
HRESULT GetInputScope(ITfContext *pic, ITfRange *pRange, TfEditCookie ec, ITfInutScope **ppiscope){
    ITFReadOnlyProperty *prop;
    HRESULT hr;
    If (SUCCEEDED(hr = pic->GetAppProperty(GUID_PROP_INPUTSCOPE, &prop))
    {   VARIANT var;
        If (SUCCEEDED(hr = prop->GetValue(ec, pRange, &var)))
        {  hr = var.punkVal->QueryInterface(IID_ITfInputScope, (void **)ppiscope);
        }
        prop->Release();
    }
    return hr
}

继承

ITfInputScope 接口继承自 IUnknown 接口。 ITfInputScope 还具有以下类型的成员:

方法

ITfInputScope 接口具有这些方法。

 
ITfInputScope::GetInputScopes

ITfInputScope::GetInputScopes 方法
ITfInputScope::GetPhrase

ITfInputScope::GetPhrase 方法
ITfInputScope::GetRegularExpression

ITfInputScope::GetRegularExpression 方法
ITfInputScope::GetSRGS

ITfInputScope::GetSRGS 方法
ITfInputScope::GetXML

ITfInputScope::GetXML 方法

注解

若要将此接口用于无窗口控件,应用程序有两个选项。

  1. 使应用程序可识别 TSF: TSF 感知应用程序必须实现 ITextStoreACPITfContextOwner 才能获取指向 ITfInputScope 的指针。
  2. SetInputScopes 不建议这样做,但如果应用程序不是 TSF 感知的,则没有其他方法来维护输入范围和应用程序之间的关联。 在这种情况下,每当焦点在无窗口控件之间发生更改时,应用程序都必须调用 SetInputScopes。

要求

要求
最低受支持的客户端 Windows XP [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2003 [桌面应用 | UWP 应用]
目标平台 Windows
标头 inputscope.h