Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Коллекция ссылок в виде вложенной подколлекции в коллекции верхнего уровня. Коллекция верхнего уровня может содержать ноль или больше коллекций ссылок.
HidP_GetLinkCollectionNodes возвращает массив коллекции ссылок верхнего уровня, содержащий сведения о коллекциях ссылок верхнего уровня.
Массив коллекции ссылок
Массив коллекции ссылок описывает все коллекции ссылок, содержащиеся в коллекции верхнего уровня. Каждая коллекция ссылок представлена структурой HIDP_LINK_COLLECTION_NODE . Узлы ссылок массива связаны таким образом, чтобы определить их последовательный и иерархический порядок в коллекции верхнего уровня. Первый элемент массива коллекции ссылок представляет коллекцию верхнего уровня, а остальные элементы представляют коллекции ссылок верхнего уровня.
Трассируя через узлы в массиве соединений ссылок, приложение в пользовательском режиме или драйвер в режиме ядра может определить организацию и использование всех коллекций ссылок, входящих в коллекцию верхнего уровня. Кроме того, приложение или драйвер могут упорядочивать элементы управления по их коллекции ссылок. Это возможно, так как массивы возможностей кнопок верхнего уровня и массивы возможностей значений идентифицируют связующую коллекцию, содержащую каждое использование HID, описанное этими массивами возможностей.
На следующем рисунке показан пример коллекции верхнего уровня, содержащей четыре коллекции ссылок.
Как указано на предыдущем рисунке, коллекции ссылок связаны между собой в порядке сверху вниз и слева направо (ABCD). В следующей таблице для каждой коллекции ссылок в примере показаны связи между коллекцией верхнего уровня и её коллекциями ссылок.
| Узел ссылки | Родитель | Дети | Первый ребенок | Следующий брат |
|---|---|---|---|---|
| А | Коллекция верхнего уровня | B, C | Б | Отсутствует |
| Б | А | Д | Д | С |
| С | А | Отсутствует | Отсутствует | Отсутствует |
| Д | Б | Отсутствует | Отсутствует | Отсутствует |
В массиве коллекции ссылок хранятся следующие определения:
Родитель: родитель коллекции ссылок — это коллекция, непосредственно над ней в верхней и нижней иерархии коллекций. Связанные коллекции имеют одного родителя. Родительский элемент узла ссылки указывает индекс родительского элемента в массиве коллекции ссылок.
Дочерние элементы: коллекция ссылок является дочерним элементом родительского элемента. Родитель может иметь ноль или более потомков. Член NumberOfChildren узла связи указывает количество дочерних элементов у родителя.
Брат: дети родителя являются братьями и сестрами.
Следующий брат: братья и сестры упорядочены слева направо. Следующий брат брата является братом сразу же справа, если таковой имеется, в наборе братьев и сестер. Элемент NextSibling узла коллекции ссылок указывает индекс следующего соседнего элемента в массиве коллекции ссылок. Если узел коллекции ссылок не имеет следующего брата, NextSibling имеет значение нулю.
Первый ребенок: первый ребенок является самым левым братом или сестрой в группе братьев и сестер. Элемент FirstChild узла коллекции ссылок указывает индекс на свой первый дочерний элемент в массиве коллекции ссылок. Если узел коллекции ссылок не имеет дочерних элементов, FirstChild имеет значение нулю.
Приложение или драйвер может определить все дочерние узлы родительской коллекции, начиная с первого дочернего узла родительного элемента и переходя к сиблингам первого узла до тех пор, пока член NextSibling узла не равен нулю.
В следующем коде показано, как использовать индекс узла коллекции ссылок для поиска первого дочернего элемента коллекции ссылок семь:
HIDP_LINK_COLLECTION_NODE Collection[10] ;
HIDP_LINK_COLLECTION_NODE Node1 ;
Node1 = Collection[Collection[7].FirstChild];
Псевдонимированные коллекции
Элементы разделителя можно использовать в дескрипторе отчета для обозначения набора связанных коллекций. Каждая псевдонимная коллекция представлена узлом коллекции псевдонимных ссылок. Полный и уникальный набор n, n>=2, псевдонимированные узлы связаны следующим образом:
Псевдонимированные узлы находятся в последовательном порядке в массиве коллекции ссылок.
Для первых n-1 узлов член IsAlias установлен в TRUE. N-й узел сразу после такой последовательности имеет значение FALSE для элемента IsAlias. Этот узел завершает последовательность узлов с псевдонимами. Использование, связанное с этим узлом, является предпочтительным.
Приложение или драйвер может определить, какие коллекции псевдонимируются путем многократного увеличения индекса массива коллекции ссылок для поиска таких последовательностей.
Массивы возможностей кнопки и массивы возможностей значений определяют для каждого описанного ими использования коллекцию ссылок, содержащую использование. Если коллекция ссылок псевдонимируется, массивы возможностей указывают предпочтительное использование.