Fungsi SendMessageTimeoutA (winuser.h)
Mengirim pesan yang ditentukan ke satu atau beberapa jendela.
Sintaks
LRESULT SendMessageTimeoutA(
[in] HWND hWnd,
[in] UINT Msg,
[in] WPARAM wParam,
[in] LPARAM lParam,
[in] UINT fuFlags,
[in] UINT uTimeout,
[out, optional] PDWORD_PTR lpdwResult
);
Parameter
[in] hWnd
Jenis: HWND
Handel ke jendela yang prosedur jendelanya akan menerima pesan.
Jika parameter ini HWND_BROADCAST ((HWND)0xffff), pesan dikirim ke semua jendela tingkat atas dalam sistem, termasuk jendela yang tidak berwujud yang dinonaktifkan atau tidak terlihat. Fungsi tidak kembali sampai setiap jendela kehabisan waktu. Oleh karena itu, total waktu tunggu dapat mencapai nilai uTimeout dikalikan dengan jumlah jendela tingkat atas.
[in] Msg
Jenis: UINT
Pesan yang akan dikirim.
Untuk daftar pesan yang disediakan sistem, lihat Pesan yang Ditentukan Sistem.
[in] wParam
Jenis: WPARAM
Informasi khusus pesan tambahan apa pun.
[in] lParam
Jenis: LPARAM
Informasi khusus pesan tambahan apa pun.
[in] fuFlags
Jenis: UINT
Perilaku fungsi ini. Parameter ini bisa menjadi satu atau beberapa nilai berikut.
[in] uTimeout
Jenis: UINT
Durasi periode waktu habis, dalam milidetik. Jika pesan adalah pesan siaran, setiap jendela dapat menggunakan periode waktu habis penuh. Misalnya, jika Anda menentukan periode waktu habis lima detik dan ada tiga jendela tingkat atas yang gagal memproses pesan, Anda bisa mengalami penundaan hingga 15 detik.
[out, optional] lpdwResult
Jenis: PDWORD_PTR
Hasil pemrosesan pesan. Nilai parameter ini tergantung pada pesan yang ditentukan.
Nilai kembali
Jenis: LRESULT
Jika fungsi berhasil, nilai yang dikembalikan bukan nol. SendMessageTimeout tidak menyediakan informasi tentang waktu jendela individual jika HWND_BROADCAST digunakan.
Jika fungsi gagal atau kehabisan waktu, nilai yang dikembalikan adalah 0. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError. Jika GetLastError mengembalikan ERROR_TIMEOUT, maka waktu fungsi habis.
Windows 2000: Jika GetLastError mengembalikan 0, maka waktu fungsi habis.
Keterangan
Fungsi memanggil prosedur jendela untuk jendela yang ditentukan dan, jika jendela yang ditentukan milik utas yang berbeda, tidak kembali sampai prosedur jendela telah memproses pesan atau periode waktu habis yang ditentukan telah berlalu. Jika jendela yang menerima pesan milik antrean yang sama dengan utas saat ini, prosedur jendela dipanggil secara langsung—nilai waktu habis diabaikan.
Fungsi ini mempertimbangkan bahwa utas tidak merespons jika belum disebut GetMessage atau fungsi serupa dalam waktu lima detik.
Sistem hanya melakukan marshalling untuk pesan sistem (yang berada dalam rentang 0 hingga (WM_USER-1)). Untuk mengirim pesan lain (yang >= WM_USER) ke proses lain, Anda harus melakukan marshalling kustom.
Catatan
Header winuser.h mendefinisikan SendMessageTimeout sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosedur UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.
Persyaratan
Klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Target Platform | Windows |
Header | winuser.h (termasuk Windows.h) |
Pustaka | User32.lib |
DLL | User32.dll |
Set API | ext-ms-win-ntuser-message-l1-1-0 (diperkenalkan di Windows 8) |
Lihat juga
Konseptual
Referensi
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk