Interface IContextNode
Représente un nœud dans une arborescence d’objets créés dans le cadre de l’analyse manuscrite.
Membres
L’interface IContextNode hérite de l’interface IUnknown . IContextNode possède également ces types de membres :
Méthodes
L’interface IContextNode possède ces méthodes.
Méthode | Description |
---|---|
AddContextLink | Ajoute un nouvel IContextLink à la collection de liens de contexte de l’objet IContextNode . |
AddPropertyData | Ajoute une partie des données spécifiques à l’application. |
Confirmer | Modifie le type de confirmation, qui contrôle ce que l’objet IInkAnalyzer peut modifier sur IContextNode. |
ContainsPropertyData | Détermine si l’objet IContextNode contient des données stockées sous l’identificateur spécifié. |
CreatePartiallyPopulatedSubNode | Crée un objet IContextNode enfant qui contient uniquement des informations sur le type, l’identificateur et l’emplacement. |
CreateSubNode | Crée un objet IContextNode enfant. |
DeleteContextLink | Supprime un objet IContextLink de la collection de liens de l’objet IContextNode . |
DeleteSubNode | Supprime un IContextNode enfant. |
GetContextLinks | Récupère une collection d’objets IContextLink qui représente des relations avec d’autres objets IContextNode . |
GetId | Récupère l’identificateur de l’objet IContextNode . |
GetLocation | Récupère la position et la taille de l’objet IContextNode . |
GetParentNode | Récupère le nœud parent de cet IContextNode dans l’arborescence des nœuds de contexte. |
GetPartiallyPopulated | Récupère la valeur qui indique si un objet IContextNode est partiellement rempli ou entièrement rempli. |
GetPropertyData | Récupère des données spécifiques à l’application ou d’autres données de propriété en fonction de l’identificateur spécifié. |
GetPropertyDataIds | Récupère les identificateurs pour lesquels il existe des données de propriété. |
GetStrokeCount | Récupère le nombre de traits associés à l’objet IContextNode . |
GetStrokeId | Récupère l’identificateur de trait pour le trait référencé par une valeur d’index dans l’objet IContextNode . |
GetStrokeIds | Récupère un tableau d’identificateurs pour les traits dans l’objet IContextNode . |
GetStrokePacketDataById | Récupère un tableau contenant les données de propriété de paquets pour le trait spécifié. |
GetStrokePacketDescriptionById | Récupère un tableau contenant les identificateurs de propriété de paquets pour le trait spécifié. |
GetSubNodes | Récupère les nœuds enfants directs de l’objet IContextNode . |
Gettype | Récupère le type de l’objet IContextNode . |
GetTypeName | Récupère un nom de type lisible par l’homme de ce IContextNode. |
IsConfirmed | Récupère une valeur qui indique si l’objet IContextNode est confirmé. IInkAnalyzer ne peut pas modifier le type de nœud et les traits associés pour les objets IContextNode confirmés. |
LoadPropertiesData | Recrée les données de propriété propres à l’application et internes pour un tableau d’octets créé précédemment avec IContextNode::SavePropertiesData. |
MoveSubNodeToPosition | Réorganise un objet IContextNode enfant spécifié vers l’index spécifié. |
RemovePropertyData | Supprime une partie des données spécifiques à l’application. |
Réparent | Déplace cet objet IContextNode de la collection de sous-nœuds du nœud de contexte parent vers la collection de sous-nœuds du nœud de contexte spécifié. |
ReparentStrokeByIdToNode | Déplace les données de trait de ce IContextNode vers l’IContextNode spécifié. |
SavePropertiesData | Récupère un tableau d’octets qui contient les données de propriété propres à l’application et internes pour cet IContextNode. |
SetLocation | Met à jour la position et la taille de ce IContextNode. |
SetPartiallyPopulated | Modifie la valeur qui indique si ce IContextNode est partiellement ou entièrement rempli. |
SetStrokes | Associe les traits spécifiés à ce IContextNode. |
Notes
Les types de nœuds sont décrits dans les constantes Types de nœuds de contexte .
Exemples
L’exemple suivant montre une méthode qui examine un IContextNode ; la méthode effectue les opérations suivantes :
- Obtient le type du nœud de contexte. Si le nœud de contexte est un nœud d’encre non classé, d’analyse ou de nœud de reconnaissance personnalisé, il appelle une méthode d’assistance pour examiner des propriétés spécifiques du type de nœud.
- Si le nœud a des sous-nœuds, il examine chaque sous-nœud en l’appelant lui-même.
- Si le nœud est un nœud feuille manuscrite, il examine les données de trait du nœud en appelant une méthode d’assistance.
L’API Ihe InkAnalysis vous permet de créer un nœud de ligne qui contient des mots manuscrits et des mots de texte. Toutefois, l’analyseur ignore ces nœuds mixtes et les traite comme des nœuds étrangers. Cela aura un impact sur la précision d’analyse de la détection des annotations manuscrites lorsque l’utilisateur final écrit sur ou autour de ce nœud mixte.
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;
}
Spécifications
Condition requise | Valeur |
---|---|
Client minimal pris en charge |
Windows XP Tablet PC Edition [applications de bureau uniquement] |
Serveur minimal pris en charge |
Aucun pris en charge |
En-tête |
|
DLL |
|