システムに接続されている生の入力デバイスを列挙します。
構文
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 の場合、関数はこの変数にシステムに接続されているデバイスの数を設定します。それ以外の場合、この変数は、pRawInputDeviceList がポイントするバッファーに含めることができる RAWINPUTDEVICELIST 構造体の数を指定します。 この値がシステムに接続されているデバイスの数より少ない場合、関数はこの変数内のデバイスの実際の数を返し、 ERROR_INSUFFICIENT_BUFFERで失敗します。 この値がシステムに接続されているデバイスの数以上の場合、値は変更されず、デバイスの数が戻り値として報告されます。
[in] cbSize
型: UINT
RAWINPUTDEVICELIST 構造体のサイズ (バイト単位)。
戻り値
型: UINT
関数が成功した場合、戻り値は pRawInputDeviceList によって指されるバッファーに格納されているデバイスの数です。
その他のエラーの場合、関数は (UINT) -1 を返し、 GetLastError は エラー表示を返します。
注釈
この関数から返されるデバイスは、マウス、キーボード、およびその他のヒューマン インターフェイス デバイス (HID) デバイスです。
接続されているデバイスに関する詳細情報を取得するには、RAWINPUTDEVICELIST の hDevice を使用して GetRawInputDeviceInfo を呼び出します。
リモート デスクトップ 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 で導入) |
こちらも参照ください
概念
生入力 を する