Método IInkAnalyzer::GetRootNode

Obtém o IContextNode raiz da árvore de contexto do objeto IInkAnalyzer .

Sintaxe

HRESULT GetRootNode(
  [out] IContextNode **ppRootNode
);

Parâmetros

ppRootNode [out]

O IContextNode raiz da árvore de contexto do objeto IInkAnalyzer .

Valor retornado

Para obter uma descrição dos valores retornados, consulte Classes e interfaces – Análise de tinta.

Comentários

Cuidado

Para evitar uma perda de memória, chame IUnknown::Release no ppRootNode quando você não precisar mais usar o nó raiz.

O IInkAnalyzer mantém uma árvore de objetos IContextNode . Esses objetos contêm a entrada para análise e os resultados da análise. Quando os traços são inicialmente adicionados ao IInkAnalyzer, o IInkAnalyzer os atribui a um IContextNode do tipo UnclassifiedInk (consulte IContextNode::GetType e tipos de nó de contexto). Depois que os traços são analisados, o IInkAnalyzer os atribui a objetos IContextNode apropriados na árvore. Para obter mais informações sobre como usar o IInkAnalyzer para analisar a tinta, consulte Visão geral da análise de tinta.

Exemplos

O exemplo a seguir mostra um método que orienta a árvore de resultados IContextNode do analisador de tinta. Se o IInkAnlyzer não estiver executando a análise de tinta no momento, o método fará o seguinte.

  • Obtém a cadeia de caracteres de reconhecimento superior.
  • Obtém o nó raiz do analisador de tinta.
  • Chama um método auxiliar, ExploreContextNode, para examinar o nó raiz e seus nós filho.
// 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;
}

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows XP Tablet PC Edition [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Nenhum compatível
Cabeçalho
IACom.h (também requer IACom_i.c)
DLL
IACom.dll

Confira também

IInkAnalyzer

IContextNode

Tipos de nó de contexto

Referência de análise de tinta