IInkAnalyzer::GetRootNode 方法
获取 IInkAnalyzer 对象的上下文树的根 IContextNode。
语法
HRESULT GetRootNode(
[out] IContextNode **ppRootNode
);
parameters
-
ppRootNode [out]
-
IInkAnalyzer 对象的上下文树的根 IContextNode。
返回值
有关返回值的说明,请参阅 类和接口 - 墨迹分析。
备注
注意
若要避免内存泄漏,请在不再需要使用根节点时在 ppRootNode 上调用 IUnknown::Release。
IInkAnalyzer 维护 IContextNode 对象的树。 这些对象同时包含用于分析的输入和分析结果。 最初将笔划添加到 IInkAnalyzer 时, IInkAnalyzer 将它们分配给 UnclassifiedInk 类型的 IContextNode (请参阅 IContextNode::GetType 和 上下文节点类型) 。 分析笔划后, IInkAnalyzer 将它们分配给树中的相应 IContextNode 对象。 有关使用 IInkAnalyzer 分析墨迹的详细信息,请参阅 墨迹分析概述。
示例
以下示例演示了一个方法,该方法遍遍墨迹分析器的 IContextNode 结果树。 如果 IInkAnlyzer 当前未执行墨迹分析,方法将执行以下操作。
- 获取顶部识别字符串。
- 获取墨迹分析器的根节点。
- 调用帮助程序方法
ExploreContextNode
,以检查根节点及其子节点。
// Helper method that explores the current analysis results of an ink analyzer.
HRESULT CMyClass::ExploreAnalysisResults(
IInkAnalyzer *pInkAnalyzer)
{
// Check that the ink analyzer is not currently analyzing ink.
VARIANT_BOOL bIsAnalyzing;
HRESULT hr = pInkAnalyzer->IsAnalyzing(&bIsAnalyzing);
if (SUCCEEDED(hr))
{
if (bIsAnalyzing)
{
return E_PENDING;
}
// Get the ink analyzer's best-result string.
BSTR recognizedString = NULL;
hr = pInkAnalyzer->GetRecognizedString(&recognizedString);
if (SUCCEEDED(hr))
{
// Insert code that records the ink analyzer's best-result string here.
// Get the ink analyzer's root node.
IContextNode *pRootNode = NULL;
hr = pInkAnalyzer->GetRootNode(&pRootNode);
if (SUCCEEDED(hr))
{
// Call a helper method that recursively explores context
// nodes and their subnodes.
hr = this->ExploreContextNode(pRootNode);
}
// Release this reference to the root node.
if (pRootNode != NULL)
{
pRootNode->Release();
pRootNode = NULL;
}
}
// Free the system resources for the recognized string.
SysFreeString(recognizedString);
}
return hr;
}
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows XP Tablet PC Edition [仅限桌面应用] |
最低受支持的服务器 |
无受支持的版本 |
标头 |
|
DLL |
|