AccessibleObjectFromWindow (oleacc)
Last changed: -12.47.205.126

.
Summary

The AccessibleObjectFromWindow function retrieves the address of the specified interface to the object associated with the given window.

C# Signature:

    [DllImport("oleacc.dll")]
    public static extern int AccessibleObjectFromWindow(
    IntPtr hwnd, uint id, ref Guid iid, [In, Out, MarshalAs(UnmanagedType.IUnknown)] ref object ppvObject);    

VB .Net Signature:

    Private Declare Function AccessibleObjectFromWindow Lib "oleacc" (ByVal Hwnd As Int32, _
    ByVal dwId As Int32, _
    ByRef riid As Guid, _
    <MarshalAs(UnmanagedType.IUnknown)> ByRef ppvObject As Object) As Int32

User-Defined Types:

None.

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

    Private Declare Function AccessibleObjectFromWindow Lib "oleacc" (ByVal Hwnd As Int32, _
    ByVal dwId As Int32, _
    ByRef riid As Guid, _
    <MarshalAs(UnmanagedType.IUnknown)> ByRef ppvObject As Object) As Int32
    Declare Function GetForegroundWindow Lib "user32" () As Int32

    Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim varChild As Accessibility.IAccessible
    Dim hWnd As Int32 = GetForegroundWindow()
    Dim ID As Int32 = 0
    Dim IID_IAcce As Guid = New Guid("618736E0-3C3D-11CF-810C-00AA00389B71")
    Dim aaVal As Int32 = AccessibleObjectFromWindow(hWnd, ID, IID_IAcce, varChild)
    End Sub

Alternative Managed API:

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

Documentation