Метод IRawElementProviderFragment::Navigate (uiautomationcore.h)

Извлекает элемент автоматизации пользовательского интерфейса Майкрософт в указанном направлении в дереве автоматизации пользовательского интерфейса.

Синтаксис

HRESULT Navigate(
                NavigateDirection           direction,
  [out, retval] IRawElementProviderFragment **pRetVal
);

Параметры

direction

[out, retval] pRetVal

Тип: IRawElementProviderFragment**

Получает указатель на поставщика элемента автоматизации пользовательского интерфейса в указанном направлении или значение NULL , если в этом направлении нет элемента. Этот параметр передается неинициализированным.

Возвращаемое значение

Тип: HRESULT

Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Комментарии

Реализации этого метода сервером автоматизации пользовательского интерфейса определяют структуру дерева автоматизации пользовательского интерфейса.

Навигация должна поддерживаться вверх к родительскому элементу, вниз к первому и последнему дочерним элементам, а также с боковой стороны к следующему и предыдущему одноуровневому элементам, если применимо.

Каждый дочерний узел имеет только один родительский узел и должен быть помещен в цепочку одноуровневых элементов, достигнутых от родительского узла NavigateDirection_FirstChild и NavigateDirection_LastChild.

Отношения между двумя братьями и сестрами должны быть одинаковыми в обоих направлениях: если A является предыдущим братом B (NavigateDirection_PreviousSibling), то B является следующим братом A (NavigateDirection_NextSibling). У первого ребенка (NavigateDirection_FirstChild) нет предыдущего брата, а у последнего ребенка (NavigateDirection_LastChild) нет следующего брата.

Корня фрагментов не позволяет переходить к родительским или одноуровневые элементы; Навигация между корнями фрагментов обрабатывается поставщиками окон по умолчанию. Элементы во фрагментах должны переходить только к другим элементам внутри этого фрагмента.

Примеры

В следующем примере показана реализация поставщика элементов списка. Переменные-члены для родительского, предыдущего и следующего одноуровневого поставщиков были инициализированы при создании списка.

HRESULT STDMETHODCALLTYPE ListItemProvider::Navigate(NavigateDirection direction, IRawElementProviderFragment ** pRetVal)
{
    if (pRetVal == NULL) 
    {
        return E_INVALIDARG;
    }

    IRawElementProviderFragment* pFrag = NULL;
    switch(direction)
    {
        case NavigateDirection_Parent:
            pFrag = (IRawElementProviderFragment*)m_parentProvider;       
            break;

        case NavigateDirection_NextSibling:
            pFrag = (IRawElementProviderFragment*)m_nextSiblingProvider;
            break;

        case NavigateDirection_PreviousSibling:  
            pFrag = (IRawElementProviderFragment*)m_previousSiblingProvider;
            break;
    }
    *pRetVal = pFrag;
    if (pFrag != NULL) 
    {
        pFrag->AddRef();
    }
    return S_OK;
}              

Требования

   
Минимальная версия клиента Windows XP [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2003 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header uiautomationcore.h (включая UIAutomation.h)

См. также раздел

IRawElementProviderFragment