Функция SendNotifyMessage отправляет заданное сообщение окну или окнам. Если окно было создано вызывающим потоком, SendNotifyMessage вызывает оконную процедуру для окна и не возвращает значение до тех пор, пока оконная процедура не обработает сообщение. Если окно было создано другим потоком, SendNotifyMessage переправляет сообщение оконной процедуре и немедленно возвращает значение; она не ждет, когда оконная процедура закончит обрабатывать сообщение.
Синтаксис
BOOL SendNotifyMessage( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam ); |
Параметры
hWnd
[in] Дескриптор окна, оконная процедура которого примет сообщение. Если этот параметр - HWND_BROADCAST, сообщение отправляется всем окнам верхнего уровня в системе, включая заблокированные или невидимые, не имеющие владельца, окна, перекрывающие и выскакивающие окна; но сообщение не отправляется дочерним окнам.Msg
[in] Определяет сообщение, которое будет отправлено.wParam
[in] Устанавливает дополнительную конкретизирующую сообщение информацию.lParam
[in] Устанавливает дополнительную конкретизирующую сообщение информацию.Возвращаемые значения
Если функция завершается успешно, величина возвращаемого значения - не нуль.
Если функция не выполняет задачу, величина возвращаемого значения нулевая. Чтобы получить дополнительные данные об ошибке, вызовите GetLastError.
Замечания
Если Вы отправляете сообщение в диапазоне значений ниже WM_USER функциям асинхронных сообщений PostMessage, SendNotifyMessage и SendMessageCallback, то параметры этого сообщения не могут включать в себя указатели. Иначе операция завершиться ошибкой. Функции возвратят значения прежде, чем принимающий поток получит шанс обработать сообщение, а отправитель освободит память прежде, чем она будет использована.
Прикладные программы, которым необходимо общаться друг с другом при помощи HWND_BROADCAST, должны использовать функцию RegisterWindowMessage, чтобы получить уникальное сообщение для связи между приложениями.
Система совершает сортировку только системных сообщений (которые в диапазоне от 0 до WM_USER). Чтобы отправлять другие сообщения (которые значением выше WM_USER) другому процессу, Вы должны сделать специальную сортировку (маршалинг).
Windows 95/98/Me: SendNotifyMessageW поддерживается подпрограммой Microsoft Layer for Unicode (MSLU). Чтобы использовать подпрограмму, Вы должны добавить некоторые файлы к вашему приложению, как это определено в Microsoft Layer for Unicode для систем Windows 95/98/Me.
Смотри также
Обзор Сообщения и очереди сообщений, PostMessage, PostThreadMessage, RegisterWindowMessage, SendMessage, SendMessageCallback
Размещение и совместимость SendNotifyMessage |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 3.1 и выше |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Используемая библиотека |
User32.lib |
Заголовочный файл |
|
- объявлено в |
Winuser.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |