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.

Nilai Makna
SMTO_ABORTIFHUNG
0x0002
Fungsi kembali tanpa menunggu periode waktu habis berlalu jika utas penerima tampaknya tidak merespons atau "macet."
SMTO_BLOCK
0x0001
Mencegah utas panggilan memproses permintaan lain hingga fungsi kembali.
SMTO_NORMAL
0x0000
Utas panggilan tidak dicegah memproses permintaan lain sambil menunggu fungsi kembali.
SMTO_NOTIMEOUTIFNOTHUNG
0x0008
Fungsi ini tidak memberlakukan periode waktu habis selama utas penerima memproses pesan.
SMTO_ERRORONEXIT
0x0020
Fungsi harus mengembalikan 0 jika jendela penerima dihancurkan atau utas miliknya mati saat pesan sedang diproses.

[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

GetMessage

InSendMessage

Pesan dan Antrean Pesan

PostMessage

Referensi

SendDlgItemMessage

SendMessage

SendMessageCallback

SendNotifyMessage