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

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

Синтаксис

void NotifyWinEvent(
  [in] DWORD event,
  [in] HWND  hwnd,
  [in] LONG  idObject,
  [in] LONG  idChild
);

Параметры

[in] event

Тип: DWORD

Указывает событие, которое произошло. Это значение должно быть одной из констант событий.

[in] hwnd

Тип: HWND

Дескриптор окна, содержащего объект, создающий событие.

[in] idObject

Тип: LONG

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

[in] idChild

Тип: LONG

Определяет, было ли событие создано объектом или дочерним элементом объекта . Если это значение CHILDID_SELF, событие было создано самим объектом . Если не CHILDID_SELF, это значение является дочерним идентификатором элемента, создающего событие.

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

None

Remarks

Серверы вызывают эту функцию, чтобы уведомить систему о том, что произошло событие. Microsoft Active Accessibility проверяет, настроили ли какие-либо клиентские приложения процедуры перехватчика для события, и, если да, вызывает соответствующие процедуры перехватчика.

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

Серверы вызывают NotifyWinEvent , чтобы объявить о событии в систему после его возникновения; они никогда не должны уведомлять систему о событии до его возникновения.

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

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

Когда серверы вызывают эту функцию, они должны быть готовы к обработке WM_GETOBJECT, возврату указателя интерфейса IAccessible и обработке любого из методов IAccessible .

Примечание для разработчиков серверов: Если при вызове NotifyWinEvent какие-либо клиенты прослушивают это событие в контексте, обработчики событий, которые обычно отправляют WM_GETOBJECT и вызывают методы IAccess , будут выполняться до возврата NotifyWinEvent . При вызове NotifyWinEvent вы должны быть готовы к обработке этих вызовов, если они происходят. Если необходимо выполнить дополнительную настройку, чтобы разрешить это, это следует сделать до вызова NotifyWinEvent, а не после.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header winuser.h (включая Windows.h)
Библиотека User32.lib
DLL User32.dll
Распространяемые компоненты Активные специальные возможности 1.3 RDK в Windows NT 4.0 с пакетом обновления 6 (SP6) и более поздних версий и Windows 95
Набор API ext-ms-win-ntuser-server-l1-1-0 (представлено в Windows 8)

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

AccessibleObjectFromEvent

SetWinEventHook

UnHookWinEvent

WinEvents