accessibleobjectfromevent (oleacc)
Last changed: -84.155.137.237

.
Summary
The AccessibleObjectFromEvent function retrieves the address of the IAccessible interface for the object that generated the event. The event is the one that the client's event hook function is currently processing.

C# Signature:

[DllImport("oleacc.dll")]
public static extern uint AccessibleObjectFromEvent( IntPtr hwnd, uint dwObjectID, uint dwChildID, out IAccessible ppacc, [MarshalAs(UnmanagedType.Struct)] out object pvarChild);

VB .NET Signature:

Declare Function AccessibleObjectFromEvent Lib "oleacc.dll" (TODO) As TODO

User-Defined Types:

None.

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

    private static IAccessible GetFocusedAccessibleWindowFromHandle()
    {
        IntPtr hwnd = GetFocusedWindow();

        IAccessible accWindow = null;
        object objChild;
        AccessibleObjectFromEvent(hwnd, 0, 0, out accWindow, out objChild);
        return accWindow;
    }

    [DllImport("oleacc.dll")]
    private static extern uint AccessibleObjectFromEvent(IntPtr hwnd, uint dwObjectID, uint dwChildID,
        out IAccessible ppacc, [MarshalAs(UnmanagedType.Struct)] out object pvarChild);

Alternative Managed API:

The ManagedWindowsApi project (http://mwinapi.sourceforge.net) provides a SystemAccessibleObject class to access accessible objects, that can be instantiated from an accessible event.

Documentation