HidP_GetButtonArray函数 (hidpi.h)

HidP_GetButtonArray 返回指定报表的 HIDP_BUTTON_ARRAY_DATA 结构的数组。

语法

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

参数

ReportType

HIDP_REPORT_TYPE 枚举中的值。

UsagePage

给定使用情况引用的使用情况页。

LinkCollection

(可选)此值可用于区分可能具有相同 UsagePageUsage 但存在于不同集合中的两个字段。 如果 LinkCollectionHIDP_LINK_COLLECTION_UNSPECIFIED,则会返回与 UsagePage 匹配的第一个按钮数组,无论位置如何,都会返回 Usage。 如果 LinkCollectionHIDP_LINK_COLLECTION_ROOT,则会返回与 UsagePage 匹配的根集合中找到的第一个按钮数组,并返回 Usage

Usage

其按钮 HidP_GetButtonArray 将检索的用法。

ButtonData

将放置按钮设置为 ONHIDP_BUTTON_ARRAY_DATA 结构的数组。 所需的元素数是此控件 HIDP_BUTTON_CAPSReportCount 字段。 此缓冲区由调用方提供。

ButtonDataLength

作为输入,此参数指定 ButtonData 参数的长度(以数组元素数而不是字节数为单位)。 作为输出,如果返回HIDP_STATUS_SUCCESS,则此值设置为指示函数填充的数组元素的数量。 可返回的最大 HIDP_BUTTON_ARRAY_DATA 结构数由HIDP_BUTTON_CAPS决定。ReportCount。 如果返回HIDP_STATUS_BUFFER_TOO_SMALL,则此值包含成功完成请求所需的数组元素数。

PreparsedData

HIDCLASS返回的预先分析的数据。

Report

报告数据包。 第一个字节必须是 reportId 。 如果从系统读取报表,则会正确设置此设置。

ReportLength

给定报告数据包的长度(以字节为单位)。

返回值

HidP_GetButtonArray 返回以下状态值之一:

返回代码 描述
HIDP_STATUS_SUCCESS 已成功从报表数据包检索按钮
HIDP_STATUS_INVALID_REPORT_TYPE ReportType 参数无效
HIDP_STATUS_INVALID_PREPARSED_DATA PreparsedData 参数无效
HIDP_STATUS_INVALID_REPORT_LENGTH 报表数据包的长度不等于 给定的 reportTypeHIDP_CAPS 结构中指定的长度
HIDP_STATUS_NOT_BUTTON_ARRAY 指定的控件不是按钮数组
HIDP_STATUS_BUFFER_TOO_SMALL 传入的缓冲区的大小,其中返回数组的大小太小
HIDP_STATUS_INCOMPATIBLE_REPORT_ID 指定的使用情况页、使用情况和链接集合存在于报表中,其报表 ID 不同于传入的报表
HIDP_STATUS_USAGE_NOT_FOUND ReportType 的任何报表中都不存在使用情况页、使用情况和链接集合组合

言论

调用方应使用 HidP_GetVersion 来确定此函数是否可用。 仅当 HidP_GetVersion 返回两个或更大的值时,HidP_GetButtonArray 才可用。 API 版本 2 对应于 Windows 11。

当描述主项的用法序列中的最后一个用法时,必须重复一个按钮数组,因为定义的用法少于为给定主项声明的 ReportCount。 在这种情况下,将为该使用情况分配单个 HIDP_BUTTON_CAPS,并将 HIDP_BUTTON_CAPSReportCount 设置为反映使用情况引用的字段数。

描述按钮数组的 HIDP_BUTTON_CAPS 始终 ReportCount 大于 1。 如果 ReportCount 等于一个,则它不是按钮数组,不能用于 HidP_GetButtonArray。 请改为参阅 HidP_GetUsages

要求

要求 价值
标头 hidpi.h

另请参阅