Partager via


GetRawInputDeviceList, fonction (winuser.h)

Énumère les périphériques d’entrée brute attachés au système.

Syntaxe

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

Paramètres

[out, optional] pRawInputDeviceList

Type : PRAWINPUTDEVICELIST

Tableau de structures RAWINPUTDEVICELIST pour les appareils attachés au système. Si la valeur est NULL, le nombre d’appareils est retourné dans *puiNumDevices.

[in, out] puiNumDevices

Type : PUINT

Si pRawInputDeviceList a la valeur NULL, la fonction remplit cette variable avec le nombre d’appareils attachés au système ; Sinon, cette variable spécifie le nombre de structures RAWINPUTDEVICELIST qui peuvent être contenues dans la mémoire tampon vers lesquelles pRawInputDeviceList pointe. Si cette valeur est inférieure au nombre d’appareils attachés au système, la fonction retourne le nombre réel d’appareils dans cette variable et échoue avec ERROR_INSUFFICIENT_BUFFER. Si cette valeur est supérieure ou égale au nombre d’appareils attachés au système, la valeur est inchangée et le nombre d’appareils est signalé comme valeur de retour.

[in] cbSize

Type : UINT

Taille d’une structure RAWINPUTDEVICELIST , en octets.

Valeur retournée

Type : UINT

Si la fonction réussit, la valeur de retour est le nombre d’appareils stockés dans la mémoire tampon pointée par pRawInputDeviceList.

Pour toute autre erreur, la fonction retourne (UINT) -1 et GetLastError retourne l’indication d’erreur.

Remarques

Les appareils retournés par cette fonction sont la souris, le clavier et d’autres appareils HID (Human Interface Device).

Pour obtenir des informations plus détaillées sur les appareils attachés, appelez GetRawInputDeviceInfo à l’aide de l’objet hDevice de RAWINPUTDEVICELIST.

Exemples

L’exemple de code suivant montre un appel classique à 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);

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête winuser.h (inclure Windows.h)
Bibliothèque User32.lib
DLL User32.dll
Ensemble d’API ext-ms-win-ntuser-rawinput-l1-1-0 (introduit dans Windows 10, version 10.0.14393)

Voir aussi

Conceptuel

GetRawInputDeviceInfo

RAWINPUTDEVICELIST

Entrée brute

Référence