Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Effectue une lecture tampon des données brutes des messages d’entrée trouvées dans la file d’attente des messages du thread appelant.
Syntaxe
UINT GetRawInputBuffer(
[out, optional] PRAWINPUT pData,
[in, out] PUINT pcbSize,
[in] UINT cbSizeHeader
);
Paramètres
[out, optional] pData
Type : PRAWINPUT
Pointeur vers une mémoire tampon des structures RAWINPUT qui contiennent les données d’entrée brutes. Le pointeur doit être aligné sur une limite DWORD (32 bits).
Si la valeur EST NULL, la taille des premières données de message d’entrée brute (mémoire tampon minimale requise), en octets, est retournée dans *cciSize.
[in, out] pcbSize
Type : PUINT
Taille, en octets, de la mémoire tampon RAWINPUT fournie.
[in] cbSizeHeader
Type : uiNT
Taille, en octets, de la structure RAWINPUTHEADER .
Valeur retournée
Type : uiNT
Si pData a la valeur NULL et que la fonction réussit, la valeur de retour est égale à zéro. Si pData n’est pas NULL et que la fonction réussit, la valeur de retour est le nombre de structures RAWINPUT écrites dans pData.
Si une erreur se produit, la valeur de retour est (UINT)-1. Appelez GetLastError pour le code d’erreur.
Remarques
Lorsqu’une application reçoit une entrée brute, sa file d’attente de messages obtient un message WM_INPUT et l’indicateur d’état de la file d’attente QS_RAWINPUT est défini.
À l’aide de GetRawInputBuffer, les données d’entrée brutes sont lues dans le tableau de structures RAWINPUT de taille variable et les messages WM_INPUT correspondants sont supprimés de la file d’attente des messages du thread appelant. Vous pouvez appeler cette méthode plusieurs fois avec la mémoire tampon qui ne peut pas tenir toutes les données du message tant que tous les messages d’entrée bruts n’ont pas été lus.
La macro NEXTRAWINPUTBLOCK permet à une application de parcourir un tableau de structures RAWINPUT .
Si tous les messages d’entrée brutes ont été lus correctement à partir de la file d’attente de messages, QS_RAWINPUT indicateur est effacé de l’état de la file d’attente de messages du thread appelant.
Remarque
WOW64 : Pour obtenir la taille correcte de la mémoire tampon d’entrée brute, n’utilisez pas *ccpSize, utilisez *ccpSize * 8 à la place. Pour vous assurer que GetRawInputBuffer se comporte correctement sur WOW64, vous devez aligner la structure RAWINPUT de 8 octets. Le code suivant montre comment aligner RAWINPUT pour WOW64.
[StructLayout(LayoutKind.Explicit)]
internal struct RAWINPUT
{
[FieldOffset(0)]
public RAWINPUTHEADER header;
[FieldOffset(16+8)]
public RAWMOUSE mouse;
[FieldOffset(16+8)]
public RAWKEYBOARD keyboard;
[FieldOffset(16+8)]
public RAWHID hid;
}
Spécifications
Besoin | Valeur |
---|---|
Client minimum requis | Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
plateforme cible | Fenêtres |
En-tête | winuser.h (include Windows.h) |
Bibliothèque | User32.lib |
DLL | User32.dll |
Voir aussi
conceptuelle
Référence