IUIAutomationElement::FindFirst Method

Retrieves the first child or descendant element that matches the specified condition.

Syntax

HRESULT FindFirst(      
    TreeScope scope,
    IUIAutomationCondition *condition,
    IUIAutomationElement **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 the IUIAutomationElement interface for the element. 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::FindAll, IUIAutomationElement::FindAllBuildCache, IUIAutomationElement::FindFirstBuildCache, Obtaining UI Automation Elements