Metodo IInkAnalyzer::GetRootNode

Ottiene il nodo IContextNode radice dell'albero di contesto dell'oggetto IInkAnalyzer .

Sintassi

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

Parametri

ppRootNode [out]

Oggetto IContextNode radice dell'albero di contesto dell'oggetto IInkAnalyzer.

Valore restituito

Per una descrizione dei valori restituiti, vedere Classi e interfacce - Analisi input penna.

Commenti

Attenzione

Per evitare una perdita di memoria, chiamare IUnknown::Release in ppRootNode quando non è più necessario usare il nodo radice.

IInkAnalyzer gestisce un albero di oggetti IContextNode. Questi oggetti contengono sia l'input per l'analisi che i risultati dell'analisi. Quando i tratti vengono inizialmente aggiunti a IInkAnalyzer, IInkAnalyzer le assegna a un IContextNode di tipo UnclassifiedInk (vedere IContextNode::GetType e Tipi di nodo di contesto). Dopo l'analisi dei tratti, IInkAnalyzer le assegna agli oggetti IContextNode appropriati nell'albero. Per altre informazioni sull'uso di IInkAnalyzer per analizzare l'input penna, vedere Panoramica dell'analisi dell'input penna.

Esempio

Nell'esempio seguente viene illustrato un metodo che illustra l'albero dei risultati IContextNode dell'analizzatore input penna. Se IInkAnlyzer non esegue attualmente l'analisi dell'input penna, il metodo esegue le operazioni seguenti.

  • Ottiene la stringa di riconoscimento superiore.
  • Ottiene il nodo radice dell'analizzatore dell'input penna.
  • Chiama un metodo helper, ExploreContextNode, per esaminare il nodo radice e i relativi nodi figlio.
// 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;
}

Requisiti

Requisito Valore
Client minimo supportato
Windows XP Tablet PC Edition [solo app desktop]
Server minimo supportato
Nessuno supportato
Intestazione
IACom.h (richiede anche IACom_i.c)
DLL
IACom.dll

Vedi anche

IInkAnalyzer

IContextNode

Tipi di nodo di contesto

Riferimento all'analisi dell'input penna