Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Перечисляет необработанные устройства ввода, подключенные к системе.
Синтаксис
UINT GetRawInputDeviceList(
[out, optional] PRAWINPUTDEVICELIST pRawInputDeviceList,
[in, out] PUINT puiNumDevices,
[in] UINT cbSize
);
Параметры
[out, optional] pRawInputDeviceList
Тип: PRAWINPUTDEVICELIST
Массив структур RAWINPUTDEVICELIST для устройств, подключенных к системе. Указатель должен быть выровнен на границе DWORD (32-разрядная версия).
Если значение NULL, число устройств возвращается в *puiNumDevices.
[in, out] puiNumDevices
Тип: PUINT
Если pRawInputDeviceList имеет значение NULL, функция заполняет эту переменную числом устройств, подключенных к системе; В противном случае эта переменная указывает количество структур RAWINPUTDEVICELIST , которые могут содержаться в буфере, к которому указываются точки pRawInputDeviceList . Если это значение меньше числа устройств, подключенных к системе, функция возвращает фактическое количество устройств в этой переменной и завершается сбоем с ERROR_INSUFFICIENT_BUFFER. Если это значение больше или равно количеству устройств, подключенных к системе, значение не изменяется, а число устройств сообщается как возвращаемое значение.
[in] cbSize
Тип: UINT
Размер структуры RAWINPUTDEVICELIST в байтах.
Возвращаемое значение
Тип: UINT
Если функция выполнена успешно, возвращаемое значение — это количество устройств, хранящихся в буфере, на которое указывает pRawInputDeviceList.
При любой другой ошибке функция возвращает -1 (UINT) и GetLastError возвращает признак ошибки.
Замечания
Устройства, возвращаемые этой функцией, являются мышью, клавиатурой и другими устройствами устройства с интерфейсом человека (HID).
Чтобы получить более подробные сведения о подключенных устройствах, вызовите GetRawInputDeviceInfo с помощью hDevice из RAWINPUTDEVICELIST.
Устройства ввода, доступные через protocal удаленных рабочих столов (RDP), не отображаются в списке необработанных входных устройств.
Примеры
В следующем примере кода показан типичный вызов GetRawInputDeviceList:
UINT nDevices;
PRAWINPUTDEVICELIST pRawInputDeviceList = NULL;
while (true) {
if (GetRawInputDeviceList(NULL, &nDevices, sizeof(RAWINPUTDEVICELIST)) != 0) { Error();}
if (nDevices == 0) { break; }
if ((pRawInputDeviceList = malloc(sizeof(RAWINPUTDEVICELIST) * nDevices)) == NULL) {Error();}
nDevices = GetRawInputDeviceList(pRawInputDeviceList, &nDevices, sizeof(RAWINPUTDEVICELIST));
if (nDevices == (UINT)-1) {
if (GetLastError() != ERROR_INSUFFICIENT_BUFFER) { Error(); }
// Devices were added.
free(pRawInputDeviceList);
continue;
}
break;
}
// do the job...
// after the job, free the RAWINPUTDEVICELIST
free(pRawInputDeviceList);
Требования
| Требование | Ценность |
|---|---|
| Минимальный поддерживаемый клиент | Windows XP [только классические приложения] |
| минимальный поддерживаемый сервер | Windows Server 2003 [только классические приложения] |
| целевая платформа | Виндоус |
| Заголовок | winuser.h (включая Windows.h) |
| Библиотека | User32.lib |
| Библиотека dll | User32.dll |
| набор API | ext-ms-win-ntuser-rawinput-l1-1-0 (представлен в Windows 10 версии 10.0.14393) |
См. также
Концептуальный