What Are WinEvents?
Server applications and the operating system use WinEvents to notify clients when a change occurs in the system or in the user interface. Servers call the NotifyWinEvent function whenever they notify clients that an event has occurred.
The NotifyWinEvent function identifies the event that has occurred, the window the object is in, and with which object the event is associated. If a child element changes, the parent object calls NotifyWinEvent and specifies the child ID of the child element.
Servers call NotifyWinEvent to announce the event to the system after the event has occurred. They must never notify the system of an event before the event occurs.
To be notified of events, clients register callback hook functions by using SetWinEventHook. Clients set a single hook function for all possible events or multiple hook functions for discrete ranges of events.
When Active Accessibility is notified of an event, it calls any hook functions that were registered for that event, passing along the parameters from NotifyWinEvent.