GetRawInputDeviceList 함수(winuser.h)
시스템에 연결된 원시 입력 디바이스를 열거합니다.
구문
UINT GetRawInputDeviceList(
[out, optional] PRAWINPUTDEVICELIST pRawInputDeviceList,
[in, out] PUINT puiNumDevices,
[in] UINT cbSize
);
매개 변수
[out, optional] pRawInputDeviceList
형식: PRAWINPUTDEVICELIST
시스템에 연결된 디바이스에 대한 RAWINPUTDEVICELIST 구조의 배열입니다. NULL이면 *puiNumDevices에서 디바이스 수가 반환됩니다.
[in, out] puiNumDevices
형식: PUINT
pRawInputDeviceList가 NULL이면 함수는 이 변수를 시스템에 연결된 디바이스 수로 채웁니다. 그렇지 않으면 이 변수는 pRawInputDeviceList가 가리키는 버퍼에 포함될 수 있는 RAWINPUTDEVICELIST 구조체의 수를 지정합니다. 이 값이 시스템에 연결된 디바이스 수보다 작으면 함수는 이 변수의 실제 디바이스 수를 반환하고 ERROR_INSUFFICIENT_BUFFER 실패합니다. 이 값이 시스템에 연결된 디바이스 수보다 크거나 같으면 값이 변경되지 않고 디바이스 수가 반환 값으로 보고됩니다.
[in] cbSize
형식: UINT
RAWINPUTDEVICELIST 구조체의 크기(바이트)입니다.
반환 값
형식: UINT
함수가 성공하면 반환 값은 pRawInputDeviceList가 가리키는 버퍼에 저장된 디바이스 수입니다.
다른 오류에서 함수는 (UINT) -1을 반환하고 GetLastError 는 오류 표시를 반환합니다.
설명
이 함수에서 반환된 디바이스는 마우스, 키보드 및 기타 HID(휴먼 인터페이스 디바이스) 디바이스입니다.
연결된 디바이스에 대한 자세한 정보를 얻으려면 RAWINPUTDEVICELIST의 hDevice를 사용하여 GetRawInputDeviceInfo를 호출합니다.
예제
다음 샘플 코드는 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 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | winuser.h(Windows.h 포함) |
라이브러리 | User32.lib |
DLL | User32.dll |
API 세트 | ext-ms-win-ntuser-rawinput-l1-1-0(Windows 10 버전 10.0.14393에 도입됨) |
추가 정보
개념
참조