Функция BroadcastSystemMessageEx 


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

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

Синтаксис

long BroadcastSystemMessageEx(
    DWORD dwFlags,
    LPDWORD lpdwRecipients,
    UINT uiMessage,
    WPARAM wParam,
    LPARAM lParam,
    PBSMINFO pBSMInfo
);

Параметры

dwFlags

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

 

Значение

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

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

BSF_FLUSHDISK

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

BSF_FORCEIFHUNG

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

BSF_IGNORECURRENTTASK

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

BSF_LUID Windows XP: Если флажок BSF_LUID установлен, сообщение отправляется окну, которое имеет тот же самый LUID как определено в члене luid  структуры BSMINFO. 

BSF_NOHANG

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

BSF_NOTIMEOUTIFNOTHUNG

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

BSF_POSTMESSAGE

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

BSF_RETURNHDESK Windows XP: Если доступ отклоняется, и если и этот флажок и флажок BSF_QUERY установлены, структура BSMINFO возвращает значение и дескриптора рабочего стола  и дескриптора окна. Если доступ отклоняется, и установлен только флажок  BSF_QUERYBSMINFO возвращает только дескриптор окна. 

BSF_QUERY

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

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

 

lpdwRecipients

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

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

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

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

 

Значение

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

BSM_ALLCOMPONENTS

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

BSM_ALLDESKTOPS

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

BSM_APPLICATIONS

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

uiMessage

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

wParam

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

lParam

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

pBSMInfo

[out] Указатель на структуру BSMINFO, которая содержит дополнительную информацию, если запрос отклонен и параметр dwFlags установлен в BSF_QUERY.

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

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

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

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

Замечания

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

Если поток вызывающей программы включает рабочий стол другого, а не того окна, которому отказано в  запросе, вызывающая программа должна вызвать функцию SetThreadDesktop (hdesk), чтобы сделать запрос чего-нибудь в этом окне. Вызывающая программа также  должна вызвать функцию CloseDesktop, чтобы возвратить дескриптор hdesk.

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

Смотри также

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

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

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Нет

Windows NT

Нет

Windows Me

Нет

Windows 98

Нет

Windows 95

Нет

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

User32.lib

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

 

- объявлено в

Winuser.h

- включено в

Windows.h

Unicode

Нет

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

Не имеется

 

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

Hosted by uCoz