Bagikan melalui


Fungsi BroadcastSystemMessageExW (winuser.h)

Mengirim pesan ke penerima yang ditentukan. Penerima dapat berupa aplikasi, driver yang dapat diinstal, driver jaringan, driver perangkat tingkat sistem, atau kombinasi apa pun dari komponen sistem ini.

Fungsi ini mirip dengan BroadcastSystemMessage kecuali bahwa fungsi ini dapat mengembalikan lebih banyak informasi dari penerima.

Sintaks

long BroadcastSystemMessageExW(
  [in]                DWORD    flags,
  [in, out, optional] LPDWORD  lpInfo,
  [in]                UINT     Msg,
  [in]                WPARAM   wParam,
  [in]                LPARAM   lParam,
  [out, optional]     PBSMINFO pbsmInfo
);

Parameter

[in] flags

Jenis: DWORD

Opsi siaran. Parameter ini bisa menjadi satu atau beberapa nilai berikut.

Nilai Makna
BSF_ALLOWSFW
0x00000080
Memungkinkan penerima untuk mengatur jendela latar depan saat memproses pesan.
BSF_FLUSHDISK
0x00000004
Menghapus disk setelah setiap penerima memproses pesan.
BSF_FORCEIFHUNG
0x00000020
Terus menyiarkan pesan, bahkan jika periode waktu habis berlalu atau salah satu penerima tidak merespons.
BSF_IGNORECURRENTTASK
0x00000002
Tidak mengirim pesan ke jendela yang termasuk dalam tugas saat ini. Ini mencegah aplikasi menerima pesannya sendiri.
BSF_LUID
0x00000400
Jika BSF_LUID diatur, pesan dikirim ke jendela yang memiliki LUID yang sama seperti yang ditentukan dalam anggota luid struktur BSMINFO .

Windows 2000: Bendera ini tidak didukung.

BSF_NOHANG
0x00000008
Memaksa aplikasi nonresponsif kehabisan waktu. Jika salah satu penerima kehabisan waktu, jangan terus menyiarkan pesan.
BSF_NOTIMEOUTIFNOTHUNG
0x00000040
Menunggu respons terhadap pesan, selama penerima tidak responsif. Tidak waktu habis.
BSF_POSTMESSAGE
0x00000010
Memposting pesan. Jangan gunakan dalam kombinasi dengan BSF_QUERY.
BSF_RETURNHDESK
0x00000200
Jika akses ditolak dan ini dan BSF_QUERY diatur, BSMINFO mengembalikan handel desktop dan handel jendela. Jika akses ditolak dan hanya BSF_QUERY yang diatur, hanya handel jendela yang dikembalikan oleh BSMINFO.

Windows 2000: Bendera ini tidak didukung.

BSF_QUERY
0x00000001
Mengirim pesan ke satu penerima pada satu waktu, mengirim ke penerima berikutnya hanya jika penerima saat ini mengembalikan TRUE.
BSF_SENDNOTIFYMESSAGE
0x00000100
Mengirim pesan menggunakan fungsi SendNotifyMessage . Jangan gunakan dalam kombinasi dengan BSF_QUERY.

[in, out, optional] lpInfo

Jenis: LPDWORD

Penunjuk ke variabel yang berisi dan menerima informasi tentang penerima pesan.

Ketika fungsi kembali, variabel ini menerima kombinasi nilai-nilai ini yang mengidentifikasi penerima mana yang benar-benar menerima pesan.

Jika parameter ini NULL, fungsi disiarkan ke semua komponen.

Parameter ini bisa menjadi satu atau beberapa nilai berikut.

Nilai Makna
BSM_ALLCOMPONENTS
0x00000000
Siaran ke semua komponen sistem.
BSM_ALLDESKTOPS
0x00000010
Siaran ke semua desktop. Membutuhkan hak istimewa SE_TCB_NAME .
BSM_APPLICATIONS
0x00000008
Siaran ke aplikasi.

[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.

[out, optional] pbsmInfo

Jenis: PBSMINFO

Pointer ke struktur BSMINFO yang berisi informasi tambahan jika permintaan ditolak dan dwFlags diatur ke BSF_QUERY.

Nilai kembali

Jenis: panjang

Jika fungsi berhasil, nilai yang dikembalikan adalah nilai positif.

Jika fungsi tidak dapat menyiarkan pesan, nilai yang dikembalikan adalah –1.

Jika parameter dwFlagsBSF_QUERY dan setidaknya satu penerima mengembalikan BROADCAST_QUERY_DENY ke pesan yang sesuai, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.

Keterangan

Jika BSF_QUERY tidak ditentukan, fungsi mengirimkan pesan yang ditentukan ke semua penerima yang diminta, mengabaikan nilai yang dikembalikan oleh penerima tersebut.

Jika utas penelepon berada di desktop selain jendela yang menolak permintaan, pemanggil harus memanggil SetThreadDesktop(hdesk) untuk mengkueri apa pun di jendela tersebut. Selain itu, pemanggil harus memanggil CloseDesktop pada handel hdesk yang dikembalikan.

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 BroadcastSystemMessageEx sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosem 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 XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header winuser.h (sertakan Windows.h)
Pustaka User32.lib
DLL User32.dll

Lihat juga

BSMINFO

BroadcastSystemMessage

Konseptual

Pesan dan Antrean Pesan

Referensi

SendNotifyMessage