IUIAutomationElement::FindAll Method

Returns all UI Automation elements that satisfy the specified condition.

Syntax

HRESULT FindAll(      
    TreeScope scope,
    IUIAutomationCondition *condition,
    IUIAutomationElementArray **found
);

Parameters

  • scope
    [in] A bitwise combination of values from the TreeScope enumerated type specifying the scope of the search.
  • condition
    [in] The address of an IUIAutomationCondition interface that represents the criteria to match.
  • found
    [out, retval] The address of a variable that receives a pointer to an IUIAutomationElementArray interface that represents the array of matching elements. NULL is returned if no matching element is found.

Return Value

Returns S_OK if successful, or an error value otherwise.

Remarks

The scope of the search is relative to the element on which the method is called. Elements are returned in the order in which they were encountered in the tree.

When searching for top-level windows on the desktop, be sure to specify TreeScope_Children in the scope parameter, not TreeScope_Descendants. A search through the entire subtree of the desktop could iterate through thousands of items and lead to a stack overflow.

If your client application might try to find elements in its own user interface, you must make all UI Automation calls on a separate thread.

See Also

IUIAutomationElement, IUIAutomationElement::FindAllBuildCache, IUIAutomationElement::FindFirst, IUIAutomationElement::FindFirstBuildCache, Obtaining UI Automation Elements