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.

Syntax

HRESULT FindFirstBuildCache(      
    TreeScope scope,
    IUIAutomationCondition *condition,
    IUIAutomationCacheRequest *cacheRequest,
    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.
  • cacheRequest
    [in] The address of an IUIAutomationCacheRequest interface that specifies the control patterns and properties to include in the cache.
  • 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

Caching UI Automation Properties and Control Patterns, IUIAutomationElement, IUIAutomationElement::FindAll, IUIAutomationElement::FindAllBuildCache, IUIAutomationElement::FindFirst, Obtaining UI Automation Elements