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 を含む) |
Library | User32.lib |
[DLL] | User32.dll |
API セット | ext-ms-win-ntuser-rawinput-l1-1-0 (Windows 10 バージョン 10.0.14393 で導入) |
関連項目
概念
参照