Поделиться через


Функция BroadcastSystemMessageW (winuser.h)

Отправляет сообщение указанным получателям. Получатели могут быть приложениями, устанавливаемыми драйверами, сетевыми драйверами, драйверами устройств на уровне системы или любым сочетанием этих системных компонентов.

Чтобы получить дополнительные сведения, если определен запрос, используйте функцию BroadcastSystemMessageEx.

Синтаксис

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

Параметры

[in] flags

Тип: DWORD

Параметр трансляции. Этот параметр может быть одним или несколькими из следующих значений.

Ценность Значение
BSF_ALLOWSFW
0x00000080
Позволяет получателю задать окно переднего плана при обработке сообщения.
BSF_FLUSHDISK
0x00000004
Очищает диск после того, как каждый получатель обрабатывает сообщение.
BSF_FORCEIFHUNG
0x00000020
Продолжает транслироваться сообщение, даже если период ожидания истек или один из получателей не отвечает.
BSF_IGNORECURRENTTASK
0x00000002
Не отправляет сообщение в окна, принадлежащие текущей задаче. Это запрещает приложению получать собственное сообщение.
BSF_NOHANG
0x00000008
Принудительное истечение времени ожидания неответственного приложения. Если одно из получателей истекает, не продолжайте транслировать сообщение.
BSF_NOTIMEOUTIFNOTHUNG
0x00000040
Ожидает ответа на сообщение, пока получатель не отвечает. Не истекает время ожидания.
BSF_POSTMESSAGE
0x00000010
Публикует сообщение. Не используйте в сочетании с BSF_QUERY.
BSF_QUERY
0x00000001
Отправляет сообщение одному получателю одновременно, отправляя в последующего получателя только в том случае, если текущий получатель возвращает TRUE.
BSF_SENDNOTIFYMESSAGE
0x00000100
Отправляет сообщение с помощью функции sendNotifyMess age . Не используйте в сочетании с BSF_QUERY.

[in, out, optional] lpInfo

Тип: LPDWORD

Указатель на переменную, содержащую и получающую сведения о получателях сообщения.

Когда функция возвращается, эта переменная получает сочетание этих значений, определяющих, какие получатели фактически получили сообщение.

Если этот параметр null, функция передается всем компонентам.

Этот параметр может быть одним или несколькими из следующих значений.

Ценность Значение
BSM_ALLCOMPONENTS
0x00000000
Широковещательная передача во все системные компоненты.
BSM_ALLDESKTOPS
0x00000010
Широковещательная трансляция на всех рабочих столах. Требуется SE_TCB_NAME привилегии.
BSM_APPLICATIONS
0x00000008
Широковещательная трансляция в приложения.

[in] Msg

Тип: UINT

Отправленное сообщение.

Списки системных сообщений см. в System-Defined сообщениях.

[in] wParam

Тип: WPARAM

Дополнительные сведения о сообщении.

[in] lParam

Тип: LPARAM

Дополнительные сведения о сообщении.

Возвращаемое значение

Тип: длинные

Если функция выполнена успешно, возвращаемое значение является положительным значением.

Если функция не может транслировать сообщение, возвращаемое значение равно –1.

Если параметр dwFlags имеет значение BSF_QUERY, а по крайней мере один получатель вернул BROADCAST_QUERY_DENY в соответствующее сообщение, возвращаемое значение равно нулю. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError.

Замечания

Если BSF_QUERY не указан, функция отправляет указанное сообщение всем запрошенным получателям, игнорируя значения, возвращаемые этими получателями.

Система выполняет маршаллинг только для системных сообщений (в диапазоне от 0 до (WM_USER–1)). Чтобы отправить другие сообщения (те >= WM_USER) в другой процесс, необходимо выполнить настраиваемую маршалинг.

Примеры

Пример см. в разделе завершениепроцесса.

Заметка

Заголовок winuser.h определяет BroadcastSystemMessage как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка winuser.h (включая Windows.h)
библиотеки User32.lib
DLL User32.dll

См. также

BroadcastSystemMessageEx

концептуальные

сообщений и очередей сообщений

Справочник

SendNotifyMessage