Antarmuka IContextNode

Mewakili simpul di pohon objek yang dibuat sebagai bagian dari analisis tinta.

Anggota

Antarmuka IContextNode mewarisi dari antarmuka IUnknown . IContextNode juga memiliki jenis anggota ini:

Metode

Antarmuka IContextNode memiliki metode ini.

Metode Deskripsi
AddContextLink Menambahkan IContextLink baru ke koleksi tautan konteks objek IContextNode .
AddPropertyData Menambahkan sepotong data khusus aplikasi.
Konfirmasikan Memodifikasi jenis konfirmasi, yang mengontrol apa yang dapat diubah objek IInkAnalyzer tentang IContextNode.
ContainsPropertyData Menentukan apakah objek IContextNode berisi data yang disimpan di bawah pengidentifikasi yang ditentukan.
CreatePartiallyPopulatedSubNode Membuat objek IContextNode anak yang hanya berisi informasi tentang jenis, pengidentifikasi, dan lokasi.
CreateSubNode Membuat objek IContextNode anak baru.
DeleteContextLink Menghapus objek IContextLink dari koleksi tautan objek IContextNode .
DeleteSubNode Menghapus IContextNode anak.
GetContextLinks Mengambil kumpulan objek IContextLink yang mewakili hubungan dengan objek IContextNode lainnya.
GetId Mengambil pengidentifikasi untuk objek IContextNode .
GetLocation Mengambil posisi dan ukuran objek IContextNode .
GetParentNode Mengambil simpul induk IContextNode ini di pohon simpul konteks.
GetPartiallyPopulated Mengambil nilai yang menunjukkan apakah objek IContextNode diisi sebagian atau diisi sepenuhnya.
GetPropertyData Mengambil data khusus aplikasi atau data properti lain yang diberikan pengidentifikasi yang ditentukan.
GetPropertyDataIds Mengambil pengidentifikasi yang data propertinya ada.
GetStrokeCount Mengambil jumlah goresan yang terkait dengan objek IContextNode .
GetStrokeId Mengambil pengidentifikasi stroke untuk goresan yang dirujuk oleh nilai indeks dalam objek IContextNode .
GetStrokeIds Mengambil array pengidentifikasi untuk goresan dalam objek IContextNode .
GetStrokePacketDataById Mengambil array yang berisi data properti paket untuk goresan yang ditentukan.
GetStrokePacketDescriptionById Mengambil array yang berisi pengidentifikasi properti paket untuk goresan yang ditentukan.
GetSubNodes Mengambil simpul anak langsung dari objek IContextNode .
GetType Mengambil jenis objek IContextNode .
GetTypeName Mengambil nama jenis yang dapat dibaca manusia dari IContextNode ini.
IsConfirmed Mengambil nilai yang menunjukkan apakah objek IContextNode dikonfirmasi. IInkAnalyzer tidak dapat mengubah jenis node dan goresan terkait untuk objek IContextNode yang dikonfirmasi.
LoadPropertiesData Membuat ulang data properti khusus aplikasi dan internal untuk array byte yang sebelumnya dibuat dengan IContextNode::SavePropertiesData.
MoveSubNodeToPosition Menyusun ulang objek IContextNode anak tertentu ke indeks yang ditentukan.
RemovePropertyData Menghapus sepotong data khusus aplikasi.
Reparent Memindahkan objek IContextNode ini dari kumpulan subnode simpul konteks induknya ke kumpulan subnode simpul konteks yang ditentukan.
ReparentStrokeByIdToNode Memindahkan data stroke dari IContextNode ini ke IContextNode yang ditentukan.
SavePropertiesData Mengambil array byte yang berisi data properti khusus aplikasi dan internal untuk IContextNode ini.
SetLocation Updates posisi dan ukuran IContextNode ini.
SetPartiallyPopulated Memodifikasi nilai yang menunjukkan apakah IContextNode ini diisi sebagian atau sepenuhnya.
SetStrokes Mengaitkan goresan yang ditentukan dengan IContextNode ini.

Keterangan

Jenis simpul dijelaskan dalam konstanta Jenis Simpul Konteks .

Contoh

Contoh berikut menunjukkan metode yang memeriksa IContextNode; metode melakukan hal berikut:

  • Mendapatkan jenis simpul konteks. Jika simpul konteks adalah tinta yang tidak diklasifikasikan, petunjuk analisis, atau simpul pengenal kustom, simpul ini memanggil metode pembantu untuk memeriksa properti tertentu dari jenis node.
  • Jika simpul memiliki subnode, simpul memeriksa setiap subnode dengan memanggil dirinya sendiri.
  • Jika simpul adalah simpul daun tinta, node memeriksa data stroke untuk simpul dengan memanggil metode pembantu.

Ihe InkAnalysis API memungkinkan Anda membuat simpul baris yang berisi kata-kata tinta dan kata teks. Namun, parser akan mengabaikan node campuran ini dan akan memperlakukannya seperti node asing. Ini akan berdampak pada akurasi penguraian deteksi anotasi tinta ketika pengguna akhir menulis pada atau di sekitar simpul campuran ini.

HRESULT CMyClass::ExploreContextNode(
    IContextNode *pContextNode)
{
    // Check for certain types of context nodes.
    GUID ContextNodeType;
    HRESULT hr = pContextNode->GetType(&ContextNodeType);

    if (SUCCEEDED(hr))
    {
        if (IsEqualGUID(GUID_CNT_UNCLASSIFIEDINK, ContextNodeType))
        {
            // Call a helper method that explores unclassified ink nodes.
            hr = this->ExploreUnclassifiedInkNode(pContextNode);
        }
        else if (IsEqualGUID(GUID_CNT_ANALYSISHINT, ContextNodeType))
        {
            // Call a helper method that explores analysis hint nodes.
            hr = this->ExploreAnalysisHintNode(pContextNode);
        }
        else if (IsEqualGUID(GUID_CNT_CUSTOMRECOGNIZER, ContextNodeType))
        {
            // Call a helper method that explores custom recognizer nodes.
            hr = this->ExploreCustomRecognizerNode(pContextNode);
        }

        if (SUCCEEDED(hr))
        {
            // Check if this node is a branch or a leaf node.
            IContextNodes *pSubNodes = NULL;
            hr = pContextNode->GetSubNodes(&pSubNodes);

            if (SUCCEEDED(hr))
            {
                ULONG ulSubNodeCount;
                hr = pSubNodes->GetCount(&ulSubNodeCount);

                if (SUCCEEDED(hr))
                {
                    if (ulSubNodeCount > 0)
                    {
                        // This node has child nodes; explore each child node.
                        IContextNode *pSubNode = NULL;
                        for (ULONG index=0; index<ulSubNodeCount; index++)
                        {
                            hr = pSubNodes->GetContextNode(index, &pSubNode);

                            if (SUCCEEDED(hr))
                            {
                                // Recursive call to explore the child node of this
                                // context node.
                                hr = this->ExploreContextNode(pSubNode);
                            }

                            // Release this reference to the child context node.
                            if (pSubNode != NULL)
                            {
                                pSubNode->Release();
                                pSubNode = NULL;
                            }

                            if (FAILED(hr))
                            {
                                break;
                            }
                        }
                    }
                    else
                    {
                        // This is a leaf node. Check if it contains stroke data.
                        ULONG ulStrokeCount;
                        hr = pContextNode->GetStrokeCount(&ulStrokeCount);

                        if (SUCCEEDED(hr))
                        {
                            if (ulStrokeCount > 0)
                            {
                                // This node is an ink leaf node; call helper
                                // method that explores available stroke data.
                                hr = this->ExploreNodeStrokeData(pContextNode);
                            }
                        }
                    }
                }
            }

            // Release this reference to the subnodes collection.
            if (pSubNodes != NULL)
            {
                pSubNodes->Release();
                pSubNodes = NULL;
            }
        }
    }

    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

IContextNodes

Jenis Simpul Konteks

IInkAnalyzer

Referensi Analisis Tinta