Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule opisano, jak aplikacje w trybie użytkownika i sterowniki trybu jądra używają procedur obsługi HidP_XxxHIDClass do interpretowania danych kontroli w raporcie HID.
Wyodrębnianie danych wartości przez określenie ich użycia
Aby wyodrębnić dane wartości z raportu HID, aplikacja lub sterownik mogą używać jednej z następujących procedur pomocy technicznej HID:
- HidP_GetScaledUsageValue Zwraca skalowaną wartość ze znakiem.
- HidP_GetUsageValue Zwraca wartość nieskalowaną w formacie bez znaku lub skalowaną wartość, która jest spoza zakresu normalnego.
- HidP_GetUsageValueArray Zwraca tablicę wartości użycia.
Aby używać HidP_GetUsageValueArray, aplikacje i sterowniki muszą przydzielić bufor zainicjowany zerami, który jest wystarczająco duży, aby przechowywać tablicę wartości użycia. Wymagany rozmiar w bajtach jest produktem elementów członkowskich BitSize i ReportCount struktury HIDP_VALUE_CAPS tablicy wartości użycia, zaokrąglonych do najbliższego bajtu.
Wyodrębnianie funkcji przycisków, które są ustawione na ON
Aby wyodrębnić użycie przycisków HID ustawionych na WŁ. (1), aplikacje i sterowniki wywołują jedną z następujących procedur wsparcia HID:
- HidP_GetButtons (lub HidP_GetUsages) Zwraca identyfikatory użycia wszystkich przycisków na określonej stronie użycia, które są ustawione na WŁ.
- HidP_GetButtonsEx (lub HidP_GetUsagesEx) Zwraca stronę użycia i identyfikator użycia wszystkich przycisków ustawionych na WŁĄCZONE.
Te procedury zwracają tablicę wszystkich informacji dotyczących użycia dla wszystkich przycisków, które są obecnie ustawione jako aktywne. Niejawnie przyciski, których użycie nie jest zwracane przez te procedury, są ustawione na wartość OFF (zero).
Aby wywołać te procedury, aplikacje i sterowniki muszą najpierw przydzielić i wyzerować bufor używany do zwracania tablicy użycia przycisków. Aplikacja lub sterownik wywołuje HidP_MaxUsageListLength w celu określenia liczby użycia przycisków na określonej stronie użycia w raporcie. Jeśli aplikacja lub sterownik określa stronę użycia o wartości zero, procedura zwraca liczbę wszystkich użyć przycisków w raporcie.
Wymagany rozmiar buforu w bajtach to:
- (Dla HidP_GetButtons) Wartość zwracana przez HidP_MaxUsageListLength razy sizeof(USAGE)
- (Dla HidP_GetButtonsEx) Wartość zwracana przez HidP_MaxUsageListLength razy sizeof(USAGE_AND_PAGE)
Gdy aplikacja lub sterownik użyje tych procedur, aby uzyskać informacje o tym, które przyciski są obecnie ustawione na WŁĄCZONE, może określić różnicę między bieżącym stanem a poprzednim stanem przycisków, wywołując jedną z następujących funkcji pomocniczych HIDClass. Te procedury zwracają różnicę między dwiema tablicami informacji o użyciu:
Ustawianie danych wartości poprzez określenie ich użycia
Aplikacja lub sterownik może ustawić wartość w prawidłowo zainicjowanym raporcie HID, wywołując jedną z następujących procedur pomocy technicznej HID:
- HidP_SetScaledUsageValue Ustawia podpisaną i skalowaną wartość w raporcie.
- HidP_SetUsageValue Ustawia wartość w raporcie.
- HidP_SetUsageValueArray Ustawia tablicę wartości użycia w raporcie.
Ustawianie stanu przycisku przez określenie jego użycia
Aplikacja lub sterownik może ustawić stan przycisków w prawidłowo zainicjowanym raporcie HID, wywołując jedną z następujących procedur pomocy technicznej HIDClass:
- HidP_SetButtons (lub HidP_SetUsages) Ustawia określony zestaw przycisków na włączony (1).
- HidP_UnsetButtons (lub HidP_UnsetUsages) Ustawia wskazany zestaw przycisków na WYŁĄCZONY (zero).
Wyodrębnianie i ustawianie danych sterujących według indeksów danych
Aby użyć indeksów danych do wyodrębniania i ustawiania danych kontrolnych w raporcie HID, aplikacja lub sterownik mogą używać następujących procedur pomocy technicznej HIDClass:
Te procedury są przydatne dla aplikacji lub sterownika, który zapewnia "wartość dodaną" usługi. Na przykład taki, który udostępnia interfejs niestandardowy dla wszystkich kontrolek obsługiwanych przez urządzenie HIDClass. Microsoft DirectInput jest jednym z przykładów.
Aplikacja lub sterownik wywołujący te procedury może najefektywniej uzyskać i ustawić wszystkie wartości w raporcie. Na przykład, żeby uzyskać wszystkie wartości danych według ich użycia HID, musi wywołać HidP_GetUsageValue dla każdego użycia. Jednak aby uzyskać wszystkie dane wartości według indeksu danych, musi wywołać tylko HidP_GetData raz.
Aplikacja lub sterownik używa indeksów danych określonych w tablicach możliwości przycisków i tablicach możliwości wartości kolekcji do identyfikowania użycia HID.