Функция SendNotifyMessageA (winuser.h)
Отправляет указанное сообщение в окно или окна. Если окно было создано вызывающим потоком, SendNotifyMessage вызывает процедуру окна для окна и не возвращается, пока процедура окна не обработала сообщение. Если окно было создано другим потоком, SendNotifyMessage передает сообщение в процедуру окна и возвращается немедленно; Он не ожидает завершения обработки сообщения процедурой окна.
Синтаксис
BOOL SendNotifyMessageA(
[in] HWND hWnd,
[in] UINT Msg,
[in] WPARAM wParam,
[in] LPARAM lParam
);
Параметры
[in] hWnd
Тип: HWND
Дескриптор окна, процедура которого получит сообщение. Если этот параметр HWND_BROADCAST ((HWND)0xffff), сообщение отправляется всем окнам верхнего уровня в системе, включая отключенные или невидимые неуправляемые окна, перекрывающиеся окна и всплывающие окна; но сообщение не отправляется дочерним окнам.
[in] Msg
Тип: UINT
Отправленное сообщение.
Списки системных сообщений см. в System-Defined сообщениях.
[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 Профессиональный [только классические приложения] |
минимальный поддерживаемый сервер | Windows 2000 Server [только классические приложения] |
целевая платформа | Виндоус |
заголовка | winuser.h (включая Windows.h) |
библиотеки |
User32.lib |
DLL | User32.dll |
набор API | ext-ms-win-ntuser-message-l1-1-3 (представлено в Windows 10 версии 10.0.14393) |
См. также
концептуальные
сообщений и очередей сообщений
Справочник