Compartir a través de


Método IInkAnalyzer::GetRootNode

Obtiene el IContextNode raíz del árbol de contexto del objeto IInkAnalyzer .

Sintaxis

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

Parámetros

ppRootNode [out]

IContextNode raíz del árbol de contexto del objeto IInkAnalyzer.

Valor devuelto

Para obtener una descripción de los valores devueltos, vea Clases e interfaces : análisis de entrada de lápiz.

Observaciones

Precaución

Para evitar una pérdida de memoria, llame a IUnknown::Release en ppRootNode cuando ya no necesite usar el nodo raíz.

IInkAnalyzer mantiene un árbol de objetos IContextNode. Estos objetos contienen entradas para el análisis y los resultados del análisis. Cuando los trazos se agregan inicialmente al IInkAnalyzer, el IInkAnalyzer los asigna a un IContextNode de tipo UnclassifiedInk (vea IContextNode::GetType y Context Node Types). Una vez analizados los trazos, IInkAnalyzer los asigna a los objetos IContextNode adecuados del árbol. Para obtener más información sobre el uso de IInkAnalyzer para analizar la entrada de lápiz, vea Ink Analysis Overview.

Ejemplos

En el ejemplo siguiente se muestra un método que recorre el árbol de resultados IContextNode del analizador de tinta. Si el IInkAnlyzer no realiza actualmente el análisis de entrada de lápiz, el método hace lo siguiente.

  • Obtiene la cadena de reconocimiento superior.
  • Obtiene el nodo raíz del analizador de entrada de lápiz.
  • Llama a un método auxiliar, ExploreContextNode, para examinar el nodo raíz y sus nodos secundarios.
// 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 Value
Cliente mínimo compatible
Windows XP Tablet PC Edition [solo aplicaciones de escritorio]
Servidor mínimo compatible
No se admite ninguno
Encabezado
IACom.h (también requiere IACom_i.c)
Archivo DLL
IACom.dll

Consulte también

IInkAnalyzer

IContextNode

Tipos de nodo de contexto

Referencia de análisis de entrada de lápiz