Функция BroadcastSystemMessage


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

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

Синтаксис

long BroadcastSystemMessage(
    DWORD dwFlags,
    LPDWORD lpdwRecipients,
    UINT uiMessage,
    WPARAM wParam,
    LPARAM lParam
);

Параметры

dwFlags

[in] Определяет параметры трансляции. Этот параметр может состоять из одного или нескольких значений.

 

Значение

Предназначение

BSF_ALLOWSFW Windows 2000/XP:  Дает возможность получателю  установить активное окно в процессе обработки сообщения. 

BSF_FLUSHDISK

Очистить диск после того, как каждый получатель обработает сообщение. 

BSF_FORCEIFHUNG

Продолжить транслировать сообщение, даже если истек период блокировки по времени или один из получателей завис.

BSF_IGNORECURRENTTASK

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

BSF_NOHANG

Заставить зависшую прикладную программу прерваться. Если один из получателей прервал работу, не продолжать трансляцию сообщений.

BSF_NOTIMEOUTIFNOTHUNG

Ждать отклика на сообщение до тех пор, пока получатель не зависнет. Перерыва не делать.

BSF_POSTMESSAGE

Поместить сообщение в очередь. Не используйте в комбинации с флажком BSF_QUERY.

BSF_QUERY

За один раз отправлять сообщение  одному получателю, отправляя его следующему получателю только тогда, если текущий получатель возвращает значение ИСТИНА (TRUE).

BSF_SENDNOTIFYMESSAGE Windows 2000/XP: Отправляет сообщение используя   функцию SendNotifyMessage. Не используйте этот флажок в комбинации с флажком BSF_QUERY. 

 

lpdwRecipients

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

Если этот параметр равен ПУСТО (NULL), функция транслирует сообщение всем компонентам.

Этот параметр может состоять из одного или нескольких ниже следующих значений:

 

Значение

Предназначение

BSM_ALLCOMPONENTS

Трансляция всем компонентам системы. 

BSM_ALLDESKTOPS

Windows NT/2000/XP: Трансляция всем рабочим столам. Требует привилегии SE_TCB_NAME. 

BSM_APPLICATIONS

Трансляция прикладным программам..

BSM_INSTALLABLEDRIVERS

Windows 95/98/Me: Трансляция устанавливаемым драйверам. 

BSM_NETDRIVER

Windows 95/98/Me: Трансляция сетевым драйверам. 

BSM_VXDS

Windows 95/98/Me: Трансляция всем драйверам устройств системного уровня. 

 

uiMessage

[in] Определяет сообщение, которое должно быть отправлено.

wParam

[in] Устанавливает дополнительную конкретизирующую сообщение информацию.

lParam

[in] Устанавливает дополнительную конкретизирующую сообщение информацию.

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

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

Если функция неспособна транслировать сообщение, величина возвращаемого значения - (минус)1.

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

Замечания

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

Система  делает  распределение только системных сообщении (которые в диапазоне от 0 до WM_USER ). Чтобы отправлять другие сообщения (которые значением выше WM_USER) другому процессу, Вы должны сделать специальное распределение (маршалинг).

Windows 95: Обратите внимание! на то, что это BroadcastSystemMessage имеет только одну версию.

Windows 95/98/Me: BroadcastSystemMessageW поддерживается  подпрограммой Microsoft Layer for Unicode (MSLU). Чтобы использовать подпрограмму, Вы должны добавить некоторые файлы к вашему приложению, как это определено в Microsoft Layer for Unicode для систем Windows 95/98/Me.

Пример

Пример смотри в статье Завершение работы процесса.

Смотри также

Обзор Сообщения и очереди сообщений, BroadcastSystemMessageEx, SendNotifyMessage

Размещение и совместимость BroadcastSystemMessage

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Да версии 4.0 и выше

Windows Me

Да

Windows 98

Да

Windows 95

Да

Используемая библиотека

User32.lib

Заголовочный файл

 

- объявлено в

Winuser.h

- включено в

Windows.h

Unicode

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz