Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Collection de liens en tant que sous-collection imbriquée dans une collection de niveau supérieur. Une collection de niveau supérieur peut avoir zéro ou plusieurs collections de liens.
HidP_GetLinkCollectionNodes retourne le tableau de collection de liens de niveau supérieur qui contient des informations sur les collections de liens d’une collection de niveau supérieur.
Tableau de liens collectés
Un tableau de collections de liens décrit toutes les collections de liens contenues dans une collection de niveau supérieur. Chaque collection de liens est représentée par une structure HIDP_LINK_COLLECTION_NODE . Les nœuds de liaison du tableau sont liés de manière à identifier leur ordre séquentiel et hiérarchique dans une collection de niveau supérieur. Le premier élément d’un tableau de collections de liens représente une collection de niveau supérieur et les membres restants représentent les collections de liens de la collection de niveau supérieur.
En traçant les nœuds dans le tableau de connexions de liens, une application en mode utilisateur ou un pilote en mode noyau peut déterminer l’organisation et l’utilisation de toutes les collections de liens dans une collection de niveau supérieur. En outre, l’application ou le pilote peut organiser les contrôles par leur collection de liens. Cela est possible, car les tableaux de capacités de bouton d'une collection de niveau supérieur et les tableaux de capacités de valeur identifient la collection de liens qui contient chaque utilisation HID décrite par les tableaux de capacités.
La figure suivante montre un exemple de collection de niveau supérieur qui contient quatre collections de liens.
Comme indiqué dans la figure précédente, les collections de liens sont liées dans un ordre supérieur-à-bas et de gauche à droite (ABCD). Le tableau suivant indique, pour chaque collection de liens dans l’exemple, les liens entre la collection de niveau supérieur et ses collections de liens.
| Nœud de liaison | Parent | Enfants | Premier enfant | Frère suivant |
|---|---|---|---|---|
| A | Collection de niveau supérieur | B, C | B | Aucun |
| B | A | D | D | C |
| C | A | Aucun | Aucun | Aucun |
| D | B | Aucun | Aucun | Aucun |
Dans un tableau de collections de liens, les définitions suivantes s'appliquent :
Parent : le parent d’une collection de liens est la collection immédiatement au-dessus de celle-ci dans la hiérarchie supérieure à inférieure des collections. Les collections de liens ont un parent. Le membre parent d’un nœud de lien spécifie l’index de son parent dans le tableau de collection de liens.
Enfants : une collection de liens est un enfant de son parent. Un parent peut avoir zéro ou plus d’enfants. Le membre NumberOfChildren d’un nœud de lien spécifie le nombre d’enfants qu’un parent a.
Frère : les enfants d’un parent sont frères.
Frère suivant : Les frères et sœurs sont classés de gauche à droite. L'élément frère suivant d’un élément frère est celui qui est immédiatement à sa droite, le cas échéant, dans un ensemble d'éléments frères. Le membre NextSibling d’un nœud de la collection de liens spécifie l’index de son nœud suivant dans le tableau de collection de liens. Si un nœud de collection de liens n’a pas de frère suivant, NextSibling est défini sur zéro.
Premier enfant : le premier enfant est le frère le plus gauche dans un ensemble de frères. Le membre FirstChild d’un nœud de collection de lien spécifie l’index de son premier élément dans le tableau de collection de lien. Si un nœud de collection de liens n’a pas d’enfants, FirstChild est défini sur zéro.
Une application ou un pilote peut déterminer tous les enfants d’une collection parente en commençant par le premier enfant du parent, en séquenceant les frères du premier enfant jusqu’à ce que le membre NextSibling d’un nœud frère soit égal à zéro.
Le code suivant montre comment utiliser un index de nœud de collection de liens pour rechercher le premier enfant de la collection de liens numéro sept :
HIDP_LINK_COLLECTION_NODE Collection[10] ;
HIDP_LINK_COLLECTION_NODE Node1 ;
Node1 = Collection[Collection[7].FirstChild];
Alias de collections
Les éléments de délimiteur peuvent être utilisés dans un rapport pour délimiter un ensemble de collections alias. Chaque collection avec alias est représentée par un nœud de collection de liens avec alias. Un ensemble complet et unique de n, n>=2, les nœuds alias sont liés de la manière suivante :
Les nœuds alias sont dans l’ordre consécutif dans le tableau de collection de liens.
Les premiers nœuds n-1 ont leur membre IsAlias défini sur TRUE. Le nième nœud suivant immédiatement une telle séquence a son membre IsAlias défini sur FALSE. Ce nœud met fin à la séquence de nœuds alias. L’utilisation associée à ce nœud est l’utilisation préférée.
Une application ou un pilote peut déterminer les collections qui sont aliasées en incrémentant à plusieurs reprises l'index d'un tableau de collections de liens pour rechercher ces séquences.
Les tableaux de capacités de bouton et les tableaux de capacités de valeur identifient, pour chaque utilisation qu’ils décrivent, la collection de liens qui contient l’utilisation. Si une collection de liens est alias, les tableaux de fonctionnalités spécifient l’utilisation préférée.