How WM_GETOBJECT Works

Active Accessibility sends the WM_GETOBJECT message to the appropriate server application when a client calls one of the AccessibleObjectFromX functions. The following list describes the various scenarios that occur:

  • If the window or control that receives WM_GETOBJECT implements IAccessible, the window returns a reference to the IAccessible interface using LresultFromObject. Active Accessibility, in conjunction with the COM library, performs the appropriate marshaling and passes the interface pointer from the server back to the client.
  • If the window that receives the message does not implement IAccessible, it should return zero.
  • If the window does not handle the WM_GETOBJECT message, the Microsoft Win32 API DefWindowProc returns zero.

Even if the server returns zero, Active Accessibility still provides the client with information about the object. For most system-provided objects such as list boxes and buttons, Active Accessibility provides complete information; for other objects, the information is limited. For example, Active Accessibility does not provide information for controls that do not have a window handle. Active Accessibility returns a proxied IAccessible interface pointer that the client uses to get information about the object.