IUIAutomationElement::FindFirstBuildCache method

Retrieves the first child or descendant element that matches the specified condition, prefetches the requested properties and control patterns, and stores the prefetched items in the cache.


HRESULT FindFirstBuildCache(
  TreeScope scope           ,
  IUIAutomationCondition    *condition,
  IUIAutomationCacheRequest *cacheRequest,
  IUIAutomationElement      **found



Type: TreeScope

A combination of values specifying the scope of the search.


Type: IUIAutomationCondition*

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


Type: IUIAutomationCacheRequest*

A pointer to a cache request that specifies the control patterns and properties to include in the cache.


Type: IUIAutomationElement**

Receives a pointer to the matching element, or NULL 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.

To search the raw tree, specify the appropriate TreeScope in the cacheRequest parameter.


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

Caching UI Automation Properties and Control Patterns






Obtaining UI Automation Elements