Функция BroadcastSystemMessageExA (winuser.h)
Отправляет сообщение указанным получателям. Получатели могут быть приложениями, устанавливаемыми драйверами, сетевыми драйверами, драйверами устройств на уровне системы или любым сочетанием этих системных компонентов.
Эта функция похожа на BroadcastSystemMessage за исключением того, что эта функция может возвращать дополнительные сведения от получателей.
Синтаксис
long BroadcastSystemMessageExA(
[in] DWORD flags,
[in, out, optional] LPDWORD lpInfo,
[in] UINT Msg,
[in] WPARAM wParam,
[in] LPARAM lParam,
[out, optional] PBSMINFO pbsmInfo
);
Параметры
[in] flags
Тип: DWORD
Параметр трансляции. Этот параметр может быть одним или несколькими из следующих значений.
Ценность | Значение |
---|---|
|
Позволяет получателю задать окно переднего плана при обработке сообщения. |
|
Очищает диск после того, как каждый получатель обрабатывает сообщение. |
|
Продолжает транслироваться сообщение, даже если период ожидания истек или один из получателей не отвечает. |
|
Не отправляет сообщение в окна, принадлежащие текущей задаче. Это запрещает приложению получать собственное сообщение. |
|
Если задано BSF_LUID, сообщение отправляется в окно с тем же LUID, что и в элементе luid структуры BSMINFO.
Windows 2000: этот флаг не поддерживается. |
|
Принудительное истечение времени ожидания неответственного приложения. Если одно из получателей истекает, не продолжайте транслировать сообщение. |
|
Ожидает ответа на сообщение, пока получатель не отвечает. Не истекает время ожидания. |
|
Публикует сообщение. Не используйте в сочетании с BSF_QUERY. |
|
Если доступ запрещен, и этот и BSF_QUERY заданы, BSMINFO возвращает как дескриптор рабочего стола, так и дескриптор окна. Если доступ запрещен и задан только BSF_QUERY, то возвращается только дескриптор окна BSMINFO.
Windows 2000: этот флаг не поддерживается. |
|
Отправляет сообщение одному получателю одновременно, отправляя в последующего получателя только в том случае, если текущий получатель возвращает TRUE. |
|
Отправляет сообщение с помощью функции sendNotifyMess age |
[in, out, optional] lpInfo
Тип: LPDWORD
Указатель на переменную, содержащую и получающую сведения о получателях сообщения.
Когда функция возвращается, эта переменная получает сочетание этих значений, определяющих, какие получатели фактически получили сообщение.
Если этот параметр null, функция передается всем компонентам.
Этот параметр может быть одним или несколькими из следующих значений.
Ценность | Значение |
---|---|
|
Широковещательная передача во все системные компоненты. |
|
Широковещательная трансляция на всех рабочих столах. Требуется SE_TCB_NAME привилегии. |
|
Широковещательная трансляция в приложения. |
[in] Msg
Тип: UINT
Отправленное сообщение.
Списки системных сообщений см. в System-Defined сообщениях.
[in] wParam
Тип: WPARAM
Дополнительные сведения о сообщении.
[in] lParam
Тип: LPARAM
Дополнительные сведения о сообщении.
[out, optional] pbsmInfo
Тип: PBSMINFO
Указатель на структуру BSMINFO
Возвращаемое значение
Тип: длинные
Если функция выполнена успешно, возвращаемое значение является положительным значением.
Если функция не может транслировать сообщение, возвращаемое значение равно –1.
Если параметр
Замечания
Если BSF_QUERY не указан, функция отправляет указанное сообщение всем запрошенным получателям, игнорируя значения, возвращаемые этими получателями.
Если поток вызывающего объекта находится на рабочем столе, отличном от окна, который отрицал запрос, вызывающий объект должен вызвать SetThreadDesktop(hdesk), чтобы запросить что-либо в этом окне. Кроме того, вызывающий объект должен вызывать CloseDesktop в возвращенном дескриптор hdesk.
Система выполняет маршаллинг только для системных сообщений (в диапазоне от 0 до (WM_USER–1)). Чтобы отправить другие сообщения (те >= WM_USER) в другой процесс, необходимо выполнить настраиваемую маршалинг.
Заметка
Заголовок winuser.h определяет BroadcastSystemMessageEx как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows XP [только классические приложения] |
минимальный поддерживаемый сервер | Windows Server 2003 [только классические приложения] |
целевая платформа | Виндоус |
заголовка | winuser.h (включая Windows.h) |
библиотеки |
User32.lib |
DLL | User32.dll |
См. также
концептуальные
сообщений и очередей сообщений
Справочник