Bagikan melalui


Fungsi GetRawInputDeviceList (winuser.h)

Menghitung perangkat input mentah yang melekat pada sistem.

Sintaksis

UINT GetRawInputDeviceList(
  [out, optional] PRAWINPUTDEVICELIST pRawInputDeviceList,
  [in, out]       PUINT               puiNumDevices,
  [in]            UINT                cbSize
);

Parameter-parameternya

[out, optional] pRawInputDeviceList

Jenis: PRAWINPUTDEVICELIST

Array struktur RAWINPUTDEVICELIST untuk perangkat yang melekat pada sistem. Penunjuk harus diratakan pada batas DWORD (32-bit).

Jika NULL, jumlah perangkat dikembalikan dalam *puiNumDevices.

[in, out] puiNumDevices

Jenis: PUINT

Jika pRawInputDeviceListadalah NULL, fungsi mengisi variabel ini dengan jumlah perangkat yang melekat pada sistem; jika tidak, variabel ini menentukan jumlah struktur RAWINPUTDEVICELIST yang dapat dimuat dalam buffer tempat titik pRawInputDeviceList . Jika nilai ini kurang dari jumlah perangkat yang terpasang pada sistem, fungsi mengembalikan jumlah aktual perangkat dalam variabel ini dan gagal dengan ERROR_INSUFFICIENT_BUFFER. Jika nilai ini lebih besar dari atau sama dengan jumlah perangkat yang terpasang pada sistem, maka nilainya tidak berubah, dan jumlah perangkat dilaporkan sebagai nilai pengembalian.

[in] cbSize

Jenis: UINT

Ukuran struktur RAWINPUTDEVICELIST , dalam byte.

Mengembalikan nilai

Jenis: UINT

Jika fungsi berhasil, nilai pengembalian adalah jumlah perangkat yang disimpan dalam buffer yang diarahkan oleh pRawInputDeviceList.

Pada kesalahan lain, fungsi mengembalikan -1 (UINT) dan GetLastError mengembalikan indikasi kesalahan.

Komentar

Perangkat yang dikembalikan dari fungsi ini adalah mouse, keyboard, dan perangkat Human Interface Device (HID) lainnya.

Untuk mendapatkan informasi lebih rinci tentang perangkat terlampir, hubungi GetRawInputDeviceInfo menggunakan hDevice dari RAWINPUTDEVICELIST.

Perangkat input yang diakses melalui Remote Desktop Protocal (RDP) tidak muncul dalam daftar perangkat input mentah.

Contoh

Contoh kode berikut menunjukkan panggilan umum ke 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);

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Platform Target Windows
Header winuser.h (termasuk Windows.h)
Perpustakaan User32.lib
DLL User32.dll
set API ext-ms-win-ntuser-rawinput-l1-1-0 (diperkenalkan di Windows 10, versi 10.0.14393)

Lihat juga

Konseptual

GetRawInputDeviceInfo

RAWINPUTDEVICELIST

Input Mentah