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
Référence