Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается, как приложения в пользовательском режиме и драйверы в режиме ядра используют подпрограммы поддержки HIDClass HidP_Xxx для интерпретации управляющих данных в отчете HID.
Извлечение значений данных путем указания их использования
Чтобы извлечь данные значений из отчета HID, приложение или драйвер может использовать одну из следующих подпрограмм поддержки HID:
- HidP_GetScaledUsageValue Возвращает подписанное и масштабируемое значение.
- HidP_GetUsageValue Возвращает немасштабированное значение в формате без знака или масштабированное значение, находящееся за пределами нормального диапазона.
- HidP_GetUsageValueArray Возвращает массив значений использования.
Чтобы приложения и драйверы могли использовать HidP_GetUsageValueArray, необходимо выделить буфер с нулевой инициализацией, который достаточно велик для хранения массива значений использования. Требуемый размер в байтах является произведением членов BitSize и ReportCount структуры HIDP_VALUE_CAPS массива значений использования, округленным до ближайшего байта.
Извлечение использования кнопки, для которых задано значение ON
Чтобы извлечь использование HID кнопок, которые имеют значение ON (1), приложения и драйверы вызывают одну из следующих подпрограмм поддержки HID:
- HidP_GetButtons (или HidP_GetUsages) Возвращает идентификатор использования всех кнопок на указанной странице использования, для которых задано значение ON.
- HidP_GetButtonsEx (или HidP_GetUsagesEx) Возвращает страницу использования и идентификатор использования всех кнопок, для которых задано значение ON.
Эти подпрограммы возвращают массив всех сведений об использовании для всех кнопок, которые в настоящее время имеют значение ON. Неявно кнопки, использование которых не возвращается этими подпрограммами, устанавливаются в состояние OFF (ноль).
Чтобы вызвать эти подпрограммы, приложения и драйверы должны сначала выделить и инициализировать буфер, используемый для возврата массива использования кнопки. Приложение или драйвер вызывает HidP_MaxUsageListLength , чтобы определить количество использования кнопки на указанной странице использования в отчете. Если приложение или драйвер указывает страницу использования, равную нулю, подпрограмма возвращает количество всех использований кнопок в отчете.
Обязательный размер буфера в байтах:
- (Для HidP_GetButtons) Значение, равное результату умножения HidP_MaxUsageListLength на sizeof(USAGE)
- (для HidP_GetButtonsEx) Значение, возвращаемое функцией HidP_MaxUsageListLength, умноженное на sizeof(USAGE_AND_PAGE)
После того как приложение или драйвер использует эти подпрограммы для получения сведений о том, какие кнопки в настоящее время заданы в on, он может определить разницу между текущим состоянием и предыдущим состоянием кнопок, вызвав одну из следующих подпрограмм поддержки HIDClass. Эти подпрограммы возвращают разницу между двумя массивами сведений об использовании:
Извлечение и настройка данных управления по индексам данных
Чтобы использовать индексы данных для извлечения и задания данных управления в отчете HID, приложение или драйвер может использовать следующие подпрограммы поддержки HIDClass:
Эти подпрограммы полезны для приложения или драйвера, предоставляющего службу "добавленной стоимости". Например, один из них предоставляет пользовательский интерфейс для всех элементов управления, поддерживаемых устройством HIDClass. Microsoft DirectInput является одним из примеров.
Приложение или драйвер, вызывающий эти подпрограммы, может наиболее эффективно получать и задавать все значения в отчете. Например, чтобы получить все данные о значении по их использованию HID, он должен вызывать HidP_GetUsageValue для каждого использования. Однако, чтобы получить все данные по данным индекса, необходимо вызвать HidP_GetData только один раз.
Приложение или драйвер используют индексы данных, указанные в массивах возможностей кнопок коллекции и массивах возможностей значений для идентификации использования HID.
Задание данных значения путем указания его использования
Приложение или драйвер может задать значение в правильно инициализированном отчете HID, вызвав одну из следующих подпрограмм поддержки HID:
- HidP_SetScaledUsageValue Задает подписанное и масштабируемое значение в отчете.
- HidP_SetUsageValue Задает значение в отчете.
- HidP_SetUsageValueArray Задает массив значений использования в отчете.
Задание состояния кнопки путем указания его использования
Приложение или драйвер может задать состояние кнопок в правильно инициализированном отчете HID, вызвав одну из следующих подпрограмм поддержки HIDClass:
- HidP_SetButtons (или HidP_SetUsages) включает указанный набор кнопок в состояние ВКЛ (1).
- HidP_UnsetButtons (или HidP_UnsetUsages) задает указанный набор кнопок в значение OFF (ноль).
Извлечение и настройка данных управления HID по индексам данных
Чтобы использовать индексы данных для извлечения и задания данных управления в отчете HID, приложение или драйвер может использовать следующие подпрограммы поддержки HIDClass:
Эти подпрограммы полезны для приложений или драйверов, предоставляющих услуги с добавленной стоимостью. Например, один из них предоставляет пользовательский интерфейс для всех элементов управления, поддерживаемых устройством HIDClass. Microsoft DirectInput является одним из примеров.
Приложение или драйвер, вызывающий эти подпрограммы, может наиболее эффективно получать и задавать все значения в отчете. Например, чтобы получить все данные о значениях по их HID-использованиям, необходимо вызвать HidP_GetUsageValue для каждого использования. Однако для получения всех данных значения по индексу данных необходимо вызывать HidP_GetData только один раз.
Приложение или драйвер используют индексы данных, указанные в массивах возможностей кнопок в коллекции и массивах возможностей значений для идентификации использования HID.