GetRawInputBuffer, fonction (winuser.h)
Effectue une lecture en mémoire 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 de structures RAWINPUT qui contiennent les données d’entrée brutes. La mémoire tampon doit être alignée sur une limite de pointeur, qui est un DWORD sur les architectures 32 bits et un QWORD sur les architectures 64 bits.
Si la valeur est NULL, la taille des premières données de message d’entrée brutes (mémoire tampon minimale requise), en octets, est retournée dans *pcbSize.
[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 zéro. Si pData n’a pas la valeur NULL et que la fonction réussit, la valeur de retour correspond au 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 status 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 une mémoire tampon qui ne peut pas s’adapter à 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 bruts ont été correctement lus à partir de la file d’attente des messages, QS_RAWINPUT indicateur est effacé de la status de file d’attente de messages du thread appelant.
Notes
WOW64 : pour obtenir la taille correcte de la mémoire tampon d’entrée brute, n’utilisez pas *pcbSize, utilisez *pcbSize * 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;
}
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 |
Voir aussi
Conceptuel
Référence