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


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

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

Синтаксис

BOOL SendNotifyMessageW(
  [in] HWND   hWnd,
  [in] UINT   Msg,
  [in] WPARAM wParam,
  [in] LPARAM lParam
);

Параметры

[in] hWnd

Тип: HWND

Дескриптор для окна, оконная процедура которого получит сообщение. Если этот параметр имеет значение HWND_BROADCAST ((HWND)0xffff), сообщение отправляется во все окна верхнего уровня в системе, включая отключенные или невидимые окна без владельца, перекрывающиеся окна и всплывающие окна; но сообщение не отправляется в дочерние окна.

[in] Msg

Тип: UINT

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

Списки системных сообщений см. в разделе Системные сообщения.

[in] wParam

Тип: WPARAM

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

[in] lParam

Тип: LPARAM

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

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

Тип: BOOL

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

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

Комментарии

Если вы отправляете сообщение в диапазоне ниже WM_USER в асинхронные функции сообщений (PostMessage, SendNotifyMessage и SendMessageCallback), его параметры сообщения не могут включать указатели. В противном случае операция завершится ошибкой. Функции будут возвращены до того, как принимающий поток сможет обработать сообщение, и отправитель освободит память до его использования.

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

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

Примечание

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

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header winuser.h (включая Windows.h)
Библиотека User32.lib
DLL User32.dll
Набор API ext-ms-win-ntuser-message-l1-1-3 (появилось в Windows 10 версии 10.0.14393)

См. также раздел

Основные понятия

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

PostMessage

PostThreadMessage

Справочные материалы

RegisterWindowMessage

SendMessage

SendMessageCallback

SendNotifyMessage