функция 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 |