IUIAutomationElement::FindFirst method (uiautomationclient.h)

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


HRESULT FindFirst(
                TreeScope              scope,
  [in]          IUIAutomationCondition *condition,
  [out, retval] IUIAutomationElement   **found



[in] condition

Type: IUIAutomationCondition*

A pointer to a condition that represents the criteria to match.

[out, retval] found

Type: IUIAutomationElement**

Receives a pointer to the element. NULL is returned if no matching element is found.

Return value


If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.


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.

This function cannot search for ancestor elements in the Microsoft UI Automation tree; that is, TreeScope_Ancestors is not a valid value for the scope parameter.

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.

This function ignores elements in the raw tree. Call FindFirstBuildCache to search the raw tree by specifying the appropriate TreeScope on the IUIAutomationCacheRequest passed to that function.


Requirement Value
Minimum supported client Windows 7, Windows Vista with SP2 and Platform Update for Windows Vista, Windows XP with SP3 and Platform Update for Windows Vista [desktop apps only]
Minimum supported server Windows Server 2008 R2, Windows Server 2008 with SP2 and Platform Update for Windows Server 2008, Windows Server 2003 with SP2 and Platform Update for Windows Server 2008 [desktop apps only]
Target Platform Windows
Header uiautomationclient.h (include UIAutomation.h)

See also






Obtaining UI Automation Elements