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 會傳回錯誤指示。
備註
從此函式傳回的裝置是滑鼠、鍵盤和其他 Human Interface Device (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 版) |
另請參閱
概念
參考