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 |
|
DLL |
|