Interface IContextNode
Représente un nœud dans une arborescence d’objets créés dans le cadre de l’analyse de l’entrée manuscrite.
Membres
L’interface IContextNode hérite de l’interface IUnknown. IContextNode a également les types de membres suivants :
Méthodes
L’interface IContextNode a ces méthodes.
Méthode | Description |
---|---|
AddContextLink | Ajoute un nouvel IContextLink à la collection de liens de contexte de l’objet IContextNode . |
AddPropertyData | Ajoute un élément de données spécifiques à l’application. |
Confirmer | Modifie le type de confirmation, qui contrôle ce que l’objet IInkAnalyzer peut modifier sur l’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 les 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 de 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 paquet pour le trait spécifié. |
GetStrokePacketDescriptionById | Récupère un tableau contenant les identificateurs de propriété de paquet 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’utilisateur 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é internes et spécifiques à l’application pour un tableau d’octets créé précédemment avec IContextNode::SavePropertiesData. |
MoveSubNodeToPosition | Réorganise un objet IContextNode enfant spécifié à l’index spécifié. |
RemovePropertyData | Supprime un élément de données spécifiques à l’application. |
Réparent | Déplace cet objet IContextNode de la collection de sous-nœuds de son 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 cet IContextNode vers l’IContextNode spécifié. |
SavePropertiesData | Récupère un tableau d’octets qui contient les données de propriété interne et spécifiques à l’application pour cet IContextNode. |
SetLocation | Mises à jour la position et la taille de cet IContextNode. |
SetPartiallyPopulated | Modifie la valeur qui indique si ce IContextNode est partiellement ou entièrement rempli. |
SetStrokes | Associe les traits spécifiés à cet 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 une entrée manuscrite non classifiée, un indicateur d’analyse ou un 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 s’appelant lui-même.
- Si le nœud est un nœud feuille manuscrite, il examine les données de trait pour le 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 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 de l’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 Édition Tablette PC [applications de bureau uniquement] |
Serveur minimal pris en charge |
Aucun pris en charge |
En-tête |
|
DLL |
|