internal AutomationElement Normalize(Condition condition, CacheRequest request ) { CheckElement(); UiaCoreApi.UiaCacheRequest cacheRequest; if (request == null) cacheRequest = CacheRequest.DefaultUiaCacheRequest; else cacheRequest = request.GetUiaCacheRequest(); // Normalize against the treeview condition, not the one in the cache request... UiaCoreApi.UiaCacheResponse response = UiaCoreApi.UiaGetUpdatedCache(_hnode, cacheRequest, UiaCoreApi.NormalizeState.Custom, condition); return CacheHelper.BuildAutomationElementsFromResponse(cacheRequest, response); }
/// <summary> /// Get an AutomationElement with updated cached values /// </summary> /// <param name="request">CacheRequest object describing the properties and other information to fetch</param> /// <returns>Returns a new AutomationElement, which refers to the same UI as this element, but which is /// populated with properties specified in the CacheRequest.</returns> /// <remarks> /// Unlike other methods, such as FromHandle, FromPoint, this method takes /// an explicit CacheRequest as a parameter, and ignores the currently /// active CacheRequest. /// </remarks> public AutomationElement GetUpdatedCache(CacheRequest request) { Misc.ValidateArgumentNonNull(request, "request"); CheckElement(); UiaCoreApi.UiaCacheRequest cacheRequest = request.GetUiaCacheRequest(); // Don't normalize when getting updated cache... UiaCoreApi.UiaCacheResponse response = UiaCoreApi.UiaGetUpdatedCache(_hnode, cacheRequest, UiaCoreApi.NormalizeState.None, null); return CacheHelper.BuildAutomationElementsFromResponse(cacheRequest, response); }
// Called by the treewalker classes to navigate - we call through to the // provider wrapper, which gets the navigator code to do its stuff internal AutomationElement Navigate(NavigateDirection direction, Condition condition, CacheRequest request) { CheckElement(); UiaCoreApi.UiaCacheRequest cacheRequest; if (request == null) cacheRequest = CacheRequest.DefaultUiaCacheRequest; else cacheRequest = request.GetUiaCacheRequest(); UiaCoreApi.UiaCacheResponse response = UiaCoreApi.UiaNavigate(_hnode, direction, condition, cacheRequest); return CacheHelper.BuildAutomationElementsFromResponse(cacheRequest, response); }