Native IAccessible Support

Oleacc.dll implements IAccIdentity on behalf of OBJID_CLIENT IAccessible interface pointers and their immediate simple element children. An OBJID_CLIENT IAccessible interface pointer is returned when WM_GETOBJECT with lParam = OBJID_CLIENT is sent to an HWND, which represents the client area of the window or the control as a whole. The parent of such an IAccessible interface pointer will typically have a role of ROLE_SYSTEM_WINDOW and is the IAccessible object returned when WM_GETOBJECT with lParam = OBJID_WINDOW is sent to an hwnd.

These IAccessible interface pointers typically occur where an Oleacc.dll proxy is subclassed, or where a simple custom control (such as a container IAccessible plus one level of simple element children) provides a native IAccessible implementation.

More complicated native IAccessible implementations such as where a hierarchy of IAccessibles exists or where custom object IDs are used must implement IAccIdentity themselves.