System-Level and Object-Level Events
Microsoft Active Accessibility uses three classes of WinEvents: system level, object level, and console. Each has one of the following corresponding event constant values:
- Event constants that begin with EVENT_SYSTEM identify system-level events. These events describe situations affecting all applications in the system.
- Event constants that begin with EVENT_OBJECT identify object-level events. These events pertain to situations specific to objects within one application.
- Event constants that begin with EVENT_CONSOLE identify console-level events. These events indicate changes in console windows.
Both the system- and object-level classes of events are generated by the operating system and server applications. The operating system generates system-level and object-level events for the following scenarios:
- System-wide notifications about focus changes
- Activation changes
- Events regarding system-provided objects, such as common controls
Server applications generate system-level events for custom objects that replicate system objects, such as custom menus and scroll bars.
Server applications typically generate object-level events for changes to the accessible objects they contain, such as object creation, destruction, and selection.
Although the system generates object-level events for window objects, servers must also send object-level events for every accessible object contained in a window. For example, if a server application registers an application-defined window class to create a custom control, the system generates object-level events for the window that contains the custom control; the server generates object-level events for the accessible object that provides information about the control.
Servers only generate object-level events for the custom controls for which they implement the IAccessible interface. For more information, see Custom User Interface Elements.