Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Kolekce odkazů jako vnořená dílčí kolekce v rámci kolekce nejvyšší úrovně. Kolekce nejvyšší úrovně může obsahovat nulové nebo více kolekcí odkazů.
HidP_GetLinkCollectionNodes vrátí pole odkazových kolekcí hlavní kolekce, které obsahuje informace o odkazových kolekcích hlavní kolekce.
Pole kolekcí odkazů
Pole kolekcí odkazů popisuje všechny kolekce odkazů obsažené v kolekci nejvyšší úrovně. Každá kolekce odkazů je reprezentována HIDP_LINK_COLLECTION_NODE strukturou. Uzly propojení pole jsou propojeny způsobem, který identifikuje jejich sekvenční a hierarchické pořadí v kolekci nejvyšší úrovně. První prvek pole kolekce odkazů představuje kolekci nejvyšší úrovně a zbývající členové představují kolekce odkazů nejvyšší úrovně kolekce.
Trasováním uzlů v poli spojovacích uzlů může uživatelská aplikace nebo ovladač v režimu jádra určit organizaci a použití všech kolekcí propojení v kolekci nejvyšší úrovně. Kromě toho může aplikace nebo ovladač uspořádat ovládací prvky podle jejich kolekce odkazů. To je možné, protože pole schopností tlačítka a pole schopností hodnot kolekce nejvyšší úrovně identifikují kolekci odkazů, která obsahuje jednotlivé využití HID popsané těmito poli schopností.
Následující obrázek ukazuje příklad kolekce nejvyšší úrovně, která obsahuje čtyři kolekce odkazů.
Jak je uvedeno na předchozím obrázku, kolekce odkazů jsou propojeny společně v pořadí shora dolů a zleva doprava (ABCD). Následující tabulka uvádí pro každou kolekci odkazů v příkladu odkazy mezi kolekcí nejvyšší úrovně a jejími kolekcemi odkazů.
| Spojovací uzel | Rodič | Children | První potomek | Další sourozenec |
|---|---|---|---|---|
| A | Kolekce nejvyšší úrovně | B, C | B | Žádné |
| B | A | D | D | C |
| C | A | Žádné | Žádné | Žádné |
| D | B | Žádné | Žádné | Žádné |
V poli kolekce odkazů se uchovávají následující definice:
Nadřazený: Rodič kolekce odkazů je kolekce bezprostředně nad ní v hierarchii kolekcí shora dolů. Kolekce odkazů má jeden nadřazený prvek. Nadřazený člen uzlu vazby určuje index nadřazeného objektu v poli kolekce vazeb.
Podřízené položky: Kolekce odkazů je podřízenou položkou svého nadřazeného prvku. Rodič může mít nula nebo více dětí. Člen NumberOfChildren spojovacího uzlu určuje počet podřízených uzlů, které má rodičovský uzel.
Sourozenec: Děti rodiče jsou sourozenci.
Další sourozenec: Sourozenci jsou seřazeni zleva doprava. Sourozenec dalšího sourozence je sourozenec ihned napravo, pokud existuje, v sadě sourozenců. Člen NextSibling uzlu kolekce odkazů určuje index na jeho dalšího sourozence v poli kolekce odkazových uzlů. Pokud uzel kolekce propojení nemá dalšího sourozence, je hodnota NextSibling nastavena na nulu.
První dítě: První dítě je sourozenec nejvíce vlevo v sadě sourozenců. Člen FirstChild uzlu kolekce odkazů určuje index prvního podřízeného objektu v poli kolekce odkazů. Pokud uzel kolekce odkazů neobsahuje žádné potomky, je FirstChild nastaven na nulu.
Aplikace nebo ovladač může určit všechny podřízené položky nadřazené kolekce, počínaje prvním podřízeným objektem nadřazené kolekce, a poté postupně procházet sourozence tohoto prvního podřízeného objektu, dokud člen NextSibling uzlu sourozence není nula.
Následující kód ukazuje, jak pomocí indexu uzlu kolekce odkazů najít první podřízený uzel ze sedmé kolekce odkazů:
HIDP_LINK_COLLECTION_NODE Collection[10] ;
HIDP_LINK_COLLECTION_NODE Node1 ;
Node1 = Collection[Collection[7].FirstChild];
Aliasované kolekce
Položky oddělovače lze použít v popisovači sestavy k oddělení sady aliasovaných kolekcí. Každá kolekce s aliasem je reprezentována uzlem odkazové kolekce s aliasem. Kompletní a jedinečná sada n, n>=2, aliasovaných uzlů je propojena následujícím způsobem:
Uzly s aliasy jsou v poli kolekce odkazů uspořádány v po sobě jdoucím pořadí.
První uzly n-1 mají člen IsAlias nastaven na HODNOTU TRUE. Nth uzel bezprostředně po takové sekvenci má svůj člen IsAlias nastaven na FALSE. Tento uzel ukončí posloupnost aliasovaných uzlů. Upřednostňovaným využitím je využití přidružené k tomuto uzlu.
Aplikace nebo ovladač může určit, které kolekce jsou aliasovány, opakovaným zvyšováním indexu pole kolekce odkazů, aby bylo možné takové sekvence najít.
Pole schopností tlačítka a pole schopností hodnot identifikují pro každé použití, které popisují, kolekci odkazů, která obsahuje využití. Pokud je kolekce odkazů aliasovaná, pole funkcí určují upřednostňované využití.