Fungsi SendMessageCallbackW (winuser.h)
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.
Sintaks
BOOL SendMessageCallbackW(
[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 berwujud 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 yang Ditentukan Sistem.
[in] wParam
Jenis: WPARAM
Informasi khusus pesan tambahan.
[in] lParam
Jenis: LPARAM
Informasi khusus pesan tambahan.
[in] lpResultCallBack
Jenis: SENDASYNCPROC
Penunjuk ke fungsi panggilan balik yang dipanggil sistem setelah prosedur jendela memproses pesan. Untuk informasi selengkapnya, lihat SendAsyncProc.
Jika hWndHWND_BROADCAST ((HWND)0xffff), sistem memanggil fungsi panggilan balik SendAsyncProc sekali untuk setiap jendela tingkat atas.
[in] dwData
Jenis: ULONG_PTR
Nilai yang ditentukan aplikasi untuk dikirim ke fungsi panggilan balik yang ditunjukkan oleh parameter lpCallBack .
Nilai kembali
Jenis: BOOL
Jika fungsi berhasil, nilai yang dikembalikan bukan nol.
Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Keterangan
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 HWND_BROADCAST harus menggunakan fungsi RegisterWindowMessage untuk mendapatkan pesan unik untuk komunikasi antar aplikasi.
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 SendMessageCallback 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
Persyaratan | Nilai |
---|---|
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 dalam Windows 8) |
Lihat juga
Konseptual
Referensi