Поделиться через


функция HidP_SetButtonArray (hidpi.h)

Функция HidP_SetButtonArray задает состояние кнопок с помощью массива HIDP_BUTTON_ARRAY_DATA структур.

Синтаксис

NTSTATUS HidP_SetButtonArray(
  HIDP_REPORT_TYPE        ReportType,
  USAGE                   UsagePage,
  USHORT                  LinkCollection,
  USAGE                   Usage,
  PHIDP_BUTTON_ARRAY_DATA ButtonData,
  USHORT                  ButtonDataLength,
  PHIDP_PREPARSED_DATA    PreparsedData,
  PCHAR                   Report,
  ULONG                   ReportLength
);

Параметры

ReportType

Значение HidP_Output или HidP_Feature из перечисления HIDP_REPORT_TYPE .

UsagePage

Страница использования, на которую ссылается данное использование.

LinkCollection

(Необязательно) Это значение можно использовать для различения двух полей, которые могут иметь одинаковые значения UsagePage и Usage, но существуют в разных коллекциях. Если значение равно HIDP_LINK_COLLECTION_UNSPECIFIED, возвращается первый найденный массив кнопок, соответствующий значениям UsagePage и Usage , независимо от расположения. Если значение равно HIDP_LINK_COLLECTION_ROOT, будет возвращен первый найденный массив кнопок в корневой коллекции, соответствующий значениям UsagePage и Usage .

Usage

Использование, HidP_SetButtonArray которого будет задан массив кнопок.

ButtonData

Буфер со значениями, заданными в массиве кнопок.

ButtonDataLength

Количество элементов в буфере ButtonData .

PreparsedData

Проанализированные данные, возвращенные из HIDCLASS.

Report

Пакет отчета. Первым байтом должен быть ReportId.

ReportLength

Длина заданного пакета отчета в байтах.

Возвращаемое значение

HidP_SetButtonArray возвращает одно из следующих значений состояния:

Код возврата Описание
HIDP_STATUS_SUCCESS Массив кнопок в пакете отчета успешно задан
HIDP_STATUS_INVALID_REPORT_TYPE Тип отчета недопустим
HIDP_STATUS_INVALID_PREPARSED_DATA PreparsedData недопустим
HIDP_STATUS_INVALID_REPORT_LENGTH Длина пакета отчета не равна длине, указанной в структуре HIDP_CAPS для данного ReportType.
HIDP_STATUS_REPORT_DOES_NOT_EXIST На этом устройстве отсутствуют отчеты для заданного типа отчета.
HIDP_STATUS_NOT_BUTTON_ARRAY Указанный элемент управления не является массивом кнопок
HIDP_STATUS_INCOMPATIBLE_REPORT_ID Указанная страница использования, коллекция использования и ссылок существует в отчете с идентификатором отчета, отличным от идентификатора передаваемого отчета.
HIDP_STATUS_USAGE_NOT_FOUND Сочетание страницы использования, использования и коллекции ссылок не существует ни в одном отчете для этого типа отчета.
HIDP_STATUS_DATA_INDEX_OUT_OF_RANGE ArrayIndex для одной из предоставленных структур HIDP_BUTTON_ARRAY_DATA находится за пределами допустимого диапазона для этого массива кнопок.

Комментарии

HidP_SetButtonArray задает состояние кнопок для первого найденного массива кнопок в указанном объекте LinkCollection с предоставленным значением "Использование " для указанного отчета.

Вызывающий объект должен использовать HidP_GetVersion , чтобы определить, доступна ли эта функция. HidP_SetButtonArray доступно, только если HidP_GetVersion возвращает значение 2 или больше. Вторая версия API соответствует Windows 11.

Массив кнопок возникает, когда последнее использование в последовательности использования, описывающей main элемент, должно быть повторено, так как определено меньшее использование, чем ReportCount, объявленный для данного элемента main. В этом случае для этого использования выделяется один HIDP_BUTTON_CAPS , а параметр ReportCountHIDP_BUTTON_CAPS определяет количество полей, на которые ссылается использование.

HIDP_BUTTON_CAPS, описывающий массив кнопок, всегда будет иметь ReportCount больше единицы. Если параметр ReportCount равен одному, он не является массивом кнопок и не может использоваться с HidP_SetButtonArray. Дополнительные сведения см. в разделе HidP_SetUsages.

Требования

Требование Значение
Заголовок hidpi.h

См. также раздел