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.