Metode IInkAnalyzer::GetRootNode

Mendapatkan Akar IContextNode dari pohon konteks objek IInkAnalyzer .

Sintaks

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

Parameter

ppRootNode [out]

Akar IContextNode dari pohon konteks objek IInkAnalyzer.

Menampilkan nilai

Untuk deskripsi nilai yang dikembalikan, lihat Kelas dan Antarmuka - Analisis Tinta.

Keterangan

Perhatian

Untuk menghindari kebocoran memori, panggil IUnknown::Release di ppRootNode ketika Anda tidak perlu lagi menggunakan simpul akar.

IInkAnalyzer mempertahankan pohon objek IContextNode. Objek-objek ini berisi input untuk analisis dan hasil analisis. Ketika stroke awalnya ditambahkan ke IInkAnalyzer, IInkAnalyzer menetapkannya ke IContextNode jenis UnclassifiedInk (Lihat Jenis IContextNode::GetType dan Context Node). Setelah stroke dianalisis, IInkAnalyzer menetapkannya ke objek IContextNode yang sesuai di pohon. Untuk informasi selengkapnya tentang menggunakan IInkAnalyzer untuk menganalisis tinta, lihat Gambaran Umum Analisis Tinta.

Contoh

Contoh berikut menunjukkan metode yang memandu pohon hasil IContextNode penganalisis tinta. Jika IInkAnlyzer saat ini tidak melakukan analisis tinta, metode melakukan hal berikut.

  • Mendapatkan string pengenalan teratas.
  • Mendapatkan simpul akar penganalisis tinta.
  • Memanggil metode pembantu, ExploreContextNode, untuk memeriksa simpul akar dan simpul anaknya.
// 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;
}

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung
Windows XP Tablet PC Edition [hanya aplikasi desktop]
Server minimum yang didukung
Tidak ada yang didukung
Header
IACom.h (juga memerlukan IACom_i.c)
DLL
IACom.dll

Lihat juga

IInkAnalyzer

IContextNode

Jenis Simpul Konteks

Referensi Analisis Tinta