Freigeben über


IInkAnalyzer::GetRecognizedString-Methode

Ruft die Zeichenfolge mit dem besten Ergebnis des Erkennungsvorgangs für die gesamte Kontextknotenstruktur im IInkAnalyzer ab.

Syntax

HRESULT GetRecognizedString(
  [out] BSTR *pbstrRecognizedString
);

Parameter

pbstrRecognizedString [out]

Die Zeichenfolge mit dem besten Ergebnis des Erkennungsvorgangs für die gesamte Kontextknotenstruktur im IInkAnalyzer.

Rückgabewert

Eine Beschreibung der Rückgabewerte finden Sie unter Klassen und Schnittstellen – Freihandanalyse.

Bemerkungen

Achtung

Um einen Speicherverlust zu vermeiden, rufen Sie SysFreeString für pbstrRecognizedString auf, wenn Sie die Zeichenfolge nicht mehr verwenden müssen.

Diese Methode gibt den gleichen Wert wie die Eigenschaftendaten des Stammknotens für die erkannte Zeichenfolge zurück. (Siehe IInkAnalyzer::GetRootNode-Methode, IContextNode::GetPropertyData und Kontextknoteneigenschaften.)

Beispiele

Das folgende Beispiel zeigt eine Methode, die die IContextNode-Ergebnisstruktur des Freihandanalysators durchläuft. Wenn der IInkAnlyzer derzeit keine Freihandanalyse durchführt, führt die Methode folgendes aus.

  • Ruft die höchste Erkennungszeichenfolge ab.
  • Ruft den Stammknoten des Freihandanalysetools ab.
  • Ruft eine Hilfsmethode auf, ExploreContextNodeum den Stammknoten und seine untergeordneten Knoten zu untersuchen.
// 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;
}

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows XP Tablet PC Edition [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Nicht unterstützt
Header
IACom.h (erfordert auch IACom_i.c)
DLL
IACom.dll

Siehe auch

IInkAnalyzer

Freihandanalysereferenz