Fungsi SendMessageTimeoutA (winuser.h)
Mengirim pesan yang ditentukan ke satu atau beberapa jendela.
Sintaksis
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 System-Defined.
[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 berupa 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.
Mengembalikan nilai
Jenis:
Jika fungsi berhasil, nilai yang dikembalikan bukan nol. SendMessageTimeout tidak memberikan informasi tentang waktu jendela individual habis jika HWND_BROADCAST digunakan.
Jika fungsi gagal atau waktu habis, nilai yang dikembalikan adalah 0. Perhatikan bahwa fungsi tidak selalu memanggil SetLastError pada kegagalan. Jika alasan kegagalan penting bagi Anda, hubungi SetLastError(ERROR_SUCCESS) sebelum memanggil SendMessageTimeout. Jika fungsi mengembalikan 0, dan GetLastError mengembalikan ERROR_SUCCESS, maka perlakukan sebagai kegagalan generik.
Komentar
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 memanggil GetMessage atau fungsi serupa dalam waktu lima detik.
Sistem hanya melakukan marshalling untuk pesan sistem (yang dalam rentang 0 hingga (WM_USER-1)). Untuk mengirim pesan lain (>= WM_USER) ke proses lain, Anda harus melakukan marshalling kustom.
Nota
Header winuser.h mendefinisikan SendMessageTimeout sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta preprosedur 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
Syarat | Nilai |
---|---|
klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
server minimum yang didukung |
Windows 2000 Server [hanya aplikasi desktop] |
Platform Target |
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
InSendMessage
Pesan
PostMessage
Referensi