Compartir a través de


Colecciones de vínculos

Una colección de vínculos como subcolección anidada dentro de una colección de nivel superior. Una colección de nivel superior puede tener cero o más colecciones de vínculos.

HidP_GetLinkCollectionNodes devuelve una matriz de colecciones de vínculos de nivel superior que contiene información sobre las colecciones de vínculos de una colección de nivel superior.

Una matriz de recopilación de vínculos describe todas las colecciones de vínculos contenidas en una colección de nivel superior. Cada colección de vínculos se representa mediante una estructura HIDP_LINK_COLLECTION_NODE . Los nodos de vínculo de la matriz se vinculan de una manera que identifica su orden secuencial y jerárquico dentro de una colección de nivel superior. El primer elemento de una matriz de colección de vínculos representa una colección de nivel superior y los miembros restantes representan las colecciones de vínculos de la colección de nivel superior.

Mediante el seguimiento a través de los nodos del array de conexiones de enlace, una aplicación en modo usuario o un controlador en modo núcleo puede determinar la organización y el uso de todas las colecciones de enlaces de una colección de nivel superior. Además, la aplicación o el controlador pueden organizar los controles mediante su colección de vínculos. Esto es posible porque las matrices de funcionalidad de botón de una colección de nivel superior y las matrices de funcionalidad de valor identifican la colección de vínculos que contiene cada uso de HID descrito por las matrices de funcionalidad.

En la ilustración siguiente se muestra un ejemplo de una colección de nivel superior que contiene cuatro colecciones de vínculos.

Diagrama que ilustra una colección de nivel superior que contiene cuatro colecciones de vínculos.

Como se indica en la ilustración anterior, las colecciones de vínculos se vinculan juntas en un orden de arriba a abajo y de izquierda a derecha (ABCD). En la tabla siguiente se indica, para cada colección de vínculos del ejemplo, los vínculos entre la colección de nivel superior y sus colecciones de vínculos.

Nodo de vínculo Padre Niños Primer hijo Siguiente hermano
A Colección de nivel superior B, C B Ninguno
B A D D C
C A Ninguno Ninguno Ninguno
D B Ninguno Ninguno Ninguno

En una matriz de recopilación de vínculos, las siguientes definiciones se aplican:

  • Padre: El padre de una colección de vínculos es la colección situada justo encima de ella en la jerarquía de colecciones de arriba hacia abajo. Las colecciones de vínculos tienen un padre. El miembro primario de un nodo de vínculo especifica el índice de su elemento primario en la matriz de recopilación de vínculos.

  • Hijos: una colección de vínculos es un hijo de su elemento primario. Un padre puede tener cero o más hijos. El miembro NumberOfChildren de un nodo de vínculo especifica el número de hijos que tiene un padre.

  • Hermano: los hijos de un padre son hermanos.

  • Siguiente hermano: Los hermanos se ordenan de izquierda a derecha. El siguiente hermano es el que está inmediatamente a su derecha, si lo hay, en un conjunto de hermanos. El miembro NextSibling de un nodo de la colección de enlaces especifica el índice de su siguiente hermano en la matriz de la colección de enlaces. Si un nodo de colección de vínculos no tiene un elemento relacionado siguiente, NextSibling se establece en cero.

  • Primer hijo: el primer hijo es el nodo más a la izquierda en un conjunto de hermanos. El miembro FirstChild de un nodo de colección de vínculos especifica el índice de su primer elemento secundario en la matriz de la colección de vínculos. Si un nodo de colección de enlaces no tiene elementos secundarios, FirstChild se establece en cero.

Una aplicación o controlador puede determinar todos los elementos secundarios de una colección principal, empezando por el primer elemento secundario del elemento principal, recorriendo los nodos del mismo nivel del primer elemento secundario hasta que el miembro NextSibling de un nodo hermano sea cero.

El código siguiente muestra cómo usar un índice de nodo de colección de vínculos para buscar el primer elemento secundario de la colección de vínculos siete:

HIDP_LINK_COLLECTION_NODE Collection[10] ;
HIDP_LINK_COLLECTION_NODE Node1 ;
 
Node1 = Collection[Collection[7].FirstChild];

Colecciones con alias

Los elementos delimitadores se pueden usar en un descriptor de informe para delimitar un conjunto de colecciones con alias. Cada colección con alias se representa mediante un nodo de colección de enlaces con alias. Un conjunto completo y único de n, n>=2, los nodos con alias se vinculan de la siguiente manera:

  • Los nodos con alias están en orden consecutivo en la matriz de recopilación de vínculos.

  • Los primeros nodos n-1 tienen su miembro IsAlias establecido en TRUE. El nodo n-ésimo inmediatamente después de dicha secuencia tiene su miembro IsAlias configurado en FALSE. Este nodo finaliza la secuencia de nodos con alias. El uso asociado a este nodo es el uso preferido.

Una aplicación o controlador puede determinar qué colecciones se les asignan alias incrementando repetidamente el índice de matriz de una matriz de colecciones de enlaces para encontrar esas secuencias.

Las matrices de funcionalidad de botón y las matrices de funcionalidad de valor identifican, para cada uso que describen, la colección de vínculos que contiene el uso. Si se aplica un alias a una colección de vínculos, las matrices de funcionalidad especifican el uso preferido.