setFlags 函数 (recapis.h)

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

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

语法

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

参数

[in] hrc

识别器上下文的句柄。

[in] dwFlags

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

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

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

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

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

RECOFLAG_LINEMODE
识别器不拆分行,但仍必须执行字符和单词分隔。 这与行模式相同,只不过没有参考线,并且所有墨迹都假定在一行中。 设置此标志后,将忽略指南(如果已设置)。
RECOFLAG_SINGLESEG
禁用多个分段。 默认情况下,识别器返回多个分段, (墨迹的替换) 。

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

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

返回值

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

HRESULT 值 说明
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 函数仅支持行模式。 不支持装箱模式、自由模式和单行模式。
 

要求

要求
最低受支持的客户端 Windows XP Tablet PC Edition [桌面应用 |UWP 应用]
最低受支持的服务器 无受支持的版本
目标平台 Windows
标头 recapis.h
DLL inkobjcore.dll

另请参阅

SetFactoid 函数

SetTextContext 函数