Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Melakukan pembacaan buffer data pesan input mentah yang ditemukan dalam antrean pesan utas panggilan.
Sintaksis
UINT GetRawInputBuffer(
[out, optional] PRAWINPUT pData,
[in, out] PUINT pcbSize,
[in] UINT cbSizeHeader
);
Parameter-parameternya
[out, optional] pData
Jenis: PRAWINPUT
Penunjuk ke buffer struktur RAWINPUT yang berisi data input mentah. Penunjuk harus diratakan pada batas DWORD (32-bit).
Jika NULL, ukuran data pesan input mentah pertama (buffer minimum yang diperlukan), dalam byte, dikembalikan dalam *pcbSize.
[in, out] pcbSize
Jenis: PUINT
Ukurannya, dalam byte, dari buffer RAWINPUT yang disediakan.
[in] cbSizeHeader
Jenis: UINT
Ukurannya, dalam byte, dari struktur RAWINPUTHEADER .
Mengembalikan nilai
Jenis: UINT
Jika pDataNULL dan fungsi berhasil, nilai yang dikembalikan adalah nol. Jika pData bukan NULL dan fungsi berhasil, nilai yang dikembalikan adalah jumlah struktur RAWINPUT yang ditulis ke pData.
Jika terjadi kesalahan, nilai yang dikembalikan adalah (UINT)-1. Panggil GetLastError untuk kode kesalahan.
Komentar
Saat aplikasi menerima input mentah, antrean pesannya mendapatkan pesan WM_INPUT dan bendera status antrean QS_RAWINPUT diatur.
Menggunakan GetRawInputBuffer, data input mentah dibaca dalam array struktur RAWINPUT ukuran variabel dan pesan WM_INPUT terkait dihapus dari antrean pesan utas panggilan. Anda dapat memanggil metode ini beberapa kali dengan buffer yang tidak dapat memuat semua data pesan sampai semua pesan input mentah telah dibaca.
Makro NEXTRAWINPUTBLOCK memungkinkan aplikasi untuk melintasi array struktur RAWINPUT .
Jika semua pesan input mentah telah berhasil dibaca dari antrean pesan, maka bendera QS_RAWINPUT dihapus dari status antrean pesan utas panggilan.
Nota
WOW64: Untuk mendapatkan ukuran buffer input mentah yang benar, jangan gunakan *pcbSize, gunakan *pcbSize * 8 sebagai gantinya. Untuk memastikan GetRawInputBuffer berperilaku baik pada WOW64, Anda harus menyelaraskan struktur RAWINPUT sebesar 8 byte. Kode berikut menunjukkan cara menyelaraskan RAWINPUT untuk 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;
}
Persyaratan
| Persyaratan | Nilai |
|---|---|
| Klien minimum yang didukung | Windows XP [hanya aplikasi desktop] |
| Server minimum yang didukung | Windows Server 2003 [hanya aplikasi desktop] |
| Platform Target | Windows |
| Header | winuser.h (termasuk Windows.h) |
| Perpustakaan | User32.lib |
| DLL | User32.dll |
Lihat juga
Konseptual
Referensi