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 [仅限桌面应用]
最低受支持的服务器
无受支持的版本
标头
IACom.h (还需要 IACom_i.c)
DLL
IACom.dll

请参阅

IInkAnalyzer

IContextNode

上下文节点类型

墨迹分析参考