accessiblechildren (oleacc)
Last changed: blog@thorarin.net-213.125.209.53

.

Summary:

The AccessibleChildren function retrieves the child ID or IDispatch interface of each child within an accessible container object

C# Signature:

[DllImport("oleacc.dll")]
public static extern uint AccessibleChildren( IAccessible paccContainer, int iChildStart, int cChildren, [Out] object[] rgvarChildren, out int pcObtained);

VB .NET Signature:

Declare Function AccessibleChildren Lib "oleacc.dll" (ByVal paccContainer As IAccessible, ByVal iChildStart As Integer, ByVal cChildren As Integer, <[Out]()> ByVal rgvarChildren() As Object, ByRef pcObtained As Integer) As UInteger

or

<DllImport("oleacc.dll")> _
Function AccessibleChildren(ByVal paccContainer As IAccessible, ByVal iChildStart As Integer, ByVal cChildren As Integer, <[Out]()> ByVal rgvarChildren() As Object, ByRef pcObtained As Integer) As UInteger
End Function

User-Defined Types:

None.

Notes:

In my opinion the return value should be a signed Integer (or int in c#) not an UInteger or uint.

Tips & Tricks:

Please add some!

Sample Code:

IAccessible accessible = null;

AccessibleObjectFromWindow(hWnd, (uint) OBJID.WINDOW, ref guid, ref accessible);

Object[] childs = new Object[accessible.accChildCount];

int obtained;

AccessibleChildren(accessible, 0, accessible.accChildCount, childs, out obtained);

Alternative Managed API:

The ManagedWindowsApi project (http://mwinapi.sourceforge.net) provides a SystemAccessibleObject class to access accessible objects, including their children.

Documentation