Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Executa uma leitura em buffer dos dados brutos de mensagens de entrada encontradas na fila de mensagens do thread de chamada.
Sintaxe
UINT GetRawInputBuffer(
[out, optional] PRAWINPUT pData,
[in, out] PUINT pcbSize,
[in] UINT cbSizeHeader
);
Parâmetros
[out, optional] pData
Tipo: PRAWINPUT
Um ponteiro para um buffer de estruturas RAWINPUT que contêm os dados de entrada brutos. O ponteiro deve ser alinhado em um limite DWORD (32 bits).
Se NULL, o tamanho dos primeiros dados brutos de mensagem de entrada (buffer mínimo necessário), em bytes, será retornado em *pcbSize.
[in, out] pcbSize
Tipo: PUINT
O tamanho, em bytes, do buffer RAWINPUT fornecido.
[in] cbSizeHeader
Tipo: UINT
O tamanho, em bytes, da estrutura RAWINPUTHEADER .
Valor de retorno
Tipo: UINT
Se pData for NULL e a função for bem-sucedida, o valor retornado será zero. Se pData não for NULL e a função for bem-sucedida, o valor retornado será o número de estruturas RAWINPUT gravadas em pData.
Se ocorrer um erro, o valor retornado será (UINT)-1. Chame GetLastError para o código de erro.
Observações
Quando um aplicativo recebe entrada bruta, sua fila de mensagens obtém uma mensagem WM_INPUT e o sinalizador de status da fila QS_RAWINPUT é definido.
Usando GetRawInputBuffer, os dados de entrada brutos são lidos na matriz de estruturas RAWINPUT de tamanho variável e as mensagens de WM_INPUT correspondentes são removidas da fila de mensagens do thread de chamada. Você pode chamar esse método várias vezes com buffer que não pode ajustar todos os dados da mensagem até que todas as mensagens de entrada brutas tenham sido lidas.
A macro NEXTRAWINPUTBLOCK permite que um aplicativo percorra uma matriz de estruturas RAWINPUT .
Se todas as mensagens de entrada brutas tiverem sido lidas com êxito da fila de mensagens , QS_RAWINPUT sinalizador será limpo do status da fila de mensagens do thread de chamada.
Observação
WOW64: Para obter o tamanho correto do buffer de entrada bruto, não use *pcbSize, use *pcbSize * 8 em vez disso. Para garantir que GetRawInputBuffer se comporte corretamente no WOW64, você deve alinhar a estrutura RAWINPUT em 8 bytes. O código a seguir mostra como alinhar RAWINPUT para 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;
}
Requisitos
| Requisito | Valor |
|---|---|
| Cliente mínimo suportado | Windows XP [somente aplicativos da área de trabalho] |
| Servidor mínimo compatível | Windows Server 2003 [somente aplicativos da área de trabalho] |
| da Plataforma de Destino | Windows |
| cabeçalho | winuser.h (inclua Windows.h) |
| Biblioteca | User32.lib |
| de DLL | User32.dll |
Consulte também
Conceitual
Referência