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.
Mengirim pesan yang ditentukan ke jendela atau jendela. Ini memanggil prosedur jendela untuk jendela yang ditentukan dan segera kembali jika jendela milik utas lain. Setelah prosedur jendela memproses pesan, sistem memanggil fungsi panggilan balik yang ditentukan, meneruskan hasil pemrosesan pesan dan nilai yang ditentukan aplikasi ke fungsi panggilan balik.
Sintaksis
BOOL SendMessageCallbackA(
[in] HWND hWnd,
[in] UINT Msg,
[in] WPARAM wParam,
[in] LPARAM lParam,
[in] SENDASYNCPROC lpResultCallBack,
[in] ULONG_PTR dwData
);
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 berhubung yang dinonaktifkan atau tidak terlihat, jendela tumpang tindih, dan jendela pop-up; tetapi pesan tidak dikirim ke jendela anak.
[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.
[in] lParam
Jenis: LPARAM
Informasi khusus pesan tambahan.
[in] lpResultCallBack
Jenis:
Penunjuk ke fungsi panggilan balik yang dipanggil sistem setelah prosedur jendela memproses pesan. Untuk informasi selengkapnya, lihat SendAsyncProc.
Jika
[in] dwData
Jenis: ULONG_PTR
Nilai yang ditentukan aplikasi untuk dikirim ke fungsi panggilan balik yang ditujukkan oleh parameter
Mengembalikan nilai
Jenis: BOOL
Jika fungsi berhasil, nilai yang dikembalikan bukan nol.
Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, panggil GetLastError.
Komentar
Jika jendela target milik utas yang sama dengan pemanggil, maka prosedur jendela dipanggil secara sinkron, dan fungsi panggilan balik dipanggil segera setelah prosedur jendela kembali. Jika jendela target milik utas yang berbeda dari pemanggil, maka fungsi panggilan balik hanya dipanggil ketika utas yang disebut SendMessageCallback juga memanggil GetMessage, PeekMessage, atau WaitMessage.
Jika Anda mengirim pesan dalam rentang di bawah ini WM_USER ke fungsi pesan asinkron (PostMessage, SendNotifyMessage, dan SendMessageCallback), parameter pesannya tidak dapat menyertakan pointer. Jika tidak, operasi akan gagal. Fungsi akan kembali sebelum utas penerima memiliki kesempatan untuk memproses pesan dan pengirim akan membebaskan memori sebelum digunakan.
Aplikasi yang perlu berkomunikasi menggunakan
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 SendMessageCallback 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
Pesan
PostMessage
Referensi