iTfInputScope 接口 (inputscope.h)
文本输入处理器使用 ITfInputScope 接口获取 InputScope 值,该值表示与窗口关联的文档上下文。 输入范围提供有助于语音和手写识别的规则。 例如,如果使用窗体上的文本框输入地址,则可以将文本框的输入范围设置为仅识别并接受对地址有效的字符。
接口 ID 是IID_ITfInputScope。
文档上下文由语音和手写识别引擎使用,并由文本输入处理器通过调用 SetInputScope 方法进行设置。 TSF 感知应用程序不会直接调用 SetInputScope ,而是实现 ITextStoreACP 或 ITfContextOwner 以获取指向 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 方法 |
注解
若要将此接口用于无窗口控件,应用程序有两个选项。
- 使应用程序可识别 TSF: TSF 感知应用程序必须实现 ITextStoreACP 或 ITfContextOwner 才能获取指向 ITfInputScope 的指针。
- SetInputScopes 不建议这样做,但如果应用程序不是 TSF 感知的,则没有其他方法来维护输入范围和应用程序之间的关联。 在这种情况下,每当焦点在无窗口控件之间发生更改时,应用程序都必须调用 SetInputScopes。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [桌面应用 | UWP 应用] |
最低受支持的服务器 | Windows Server 2003 [桌面应用 | UWP 应用] |
目标平台 | Windows |
标头 | inputscope.h |