SetFlags 函数 (recapis.h)

指定识别器如何解释墨迹并确定结果字符串。

在首次处理墨迹之前调用此函数。 因此,在调用 Process 函数之前调用 SetFlags 函数。

Syntax

HRESULT SetFlags(
  [in] HRECOCONTEXT hrc,
  [in] DWORD        dwFlags
);

参数

[in] hrc

识别器上下文的句柄。

[in] dwFlags

下表列出了可以设置为指定识别器如何解释墨迹并确定结果字符串的标志。 使用 OR 运算符 (|) 根据需要合并标志。

位标志 Meaning
RECOFLAG_AUTOSPACE
识别器根据语言模型规则使用智能间距。
RECOFLAG_COERCE
识别器根据为上下文指定的事实信息强制结果。 例如,如果指定电话号码事实,并且用户输入单词“hello”,识别器可能会返回随机电话号码或空字符串。 如果未指定此标志,识别器将返回“hello”作为结果。
RECOFLAG_PREFIXOK
识别器支持识别默认或指定(factoid)语言模型中定义的字符串的任何前缀部分。

例如,如果没有此标志,用户将写入“handw”,识别器返回建议(如“hander”或“handed”),这些建议是识别器词典中存在的单词。 使用标志时,识别器可能会返回“handw”作为建议之一,因为它是识别器词典中存在的单词“手写”的有效前缀。

平板电脑输入面板在大多数情况下设置此标志,除非输入范围IS_DEFAULT(或无输入范围)或没有用户单词列表或正则表达式。

当调用方传入此标志时,东亚字符的识别器应返回E_INVALIDARG。

RECOFLAG_LINEMODE
识别器不拆分行,但仍必须执行字符和字分隔。 这与排队模式相同,只是没有指南,并且所有墨迹都假定位于单行中。 设置此标志时,将忽略指南(如果已设置)。
RECOFLAG_SINGLESEG
禁用多个分段。 默认情况下,识别器返回墨迹的多个分段(备用)。

例如,如果将“一起”编写为单独的笔划,识别器可以将墨迹分段为“获取她”、“收集”或“一起”。 如果在查询备用项时不需要墨迹的多个分段,请设置此标志。 这样可以提高性能并减少内存使用量。

RECOFLAG_WORDMODE
识别器将墨迹视为单个单词。 例如,如果上下文包含“要获取她”,识别器将返回“一起”。

返回值

此函数可以返回其中一个值。

HRESULT 值 Description
S_OK
成功。
E_INVALIDARG
标志无效。
E_NOTIMPL
识别器不支持此函数。
E_OUTOFMEMORY
无法分配内存以完成作。
E_FAIL
发生未指定的错误。
E_POINTER
上下文无效,或者其中一个参数是无效指针。

注解

在Microsoft Windows XP Tablet PC Edition 开发工具包 1.7 之前,平板电脑输入面板执行智能间距。 从平板电脑 SDK 1.7 开始,输入面板将继续生成具有初步间距建议的结果。 但是,平板电脑输入面板的间距结果可能因识别器的建议(结果)而更改。 识别器可以使用文本上下文信息(基于输入面板进行的 SetTextContext 调用)及其内部语言模型规则来执行此作。

输入面板可以通过调用具有RECOFLAG_AUTOSPACE标志集的此函数来确定识别器是否能够执行自动间距。 如果识别器不支持自动间距,则返回E_INVALIDARG。

注意SetFlags 函数仅支持行模式。 不支持装箱模式、免费模式和单行模式。
 

要求

Requirement 价值
最低支持的客户端 Windows XP Tablet PC Edition [桌面应用 |UWP 应用]
支持的最低服务器 无受支持的版本
目标平台 Windows操作系统
Header recapis.h
Library inkobjcore.lib
DLL inkobjcore.dll

另请参阅

SetFactoid 函数

SetTextContext 函数