Поделиться через


Метод IRawElementProviderWindowlessSite::GetAdjacentFragment (uiautomationcore.h)

Извлекает указатель фрагмента для фрагмента, который находится рядом с элементом управления Microsoft ActiveX, принадлежащим этому сайту управления.

Синтаксис

HRESULT GetAdjacentFragment(
  [in]          NavigateDirection           direction,
  [out, retval] IRawElementProviderFragment **ppParent
);

Параметры

[in] direction

Тип: NavigateDirection

Значение, указывающее на полученный смежный фрагмент (родительский, следующий брат, предыдущий брат и т. д.).

[out, retval] ppParent

Тип: IRawElementProviderFragment**

Получает смежный фрагмент.

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

Тип: HRESULT

Если этот метод выполнен успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT. Возвращаемое значение E_INVALIDARG, если направление NavigateDirection_FirstChild или NavigateDirection_LastChild, которые недопустимы для этого метода. Если в запрошенном направлении нет смежных фрагментов, метод возвращает S_OK и задает ppRetVal значение NULL.

Замечания

Чтобы вернуть родительский элемент фрагмента, объект, реализующий интерфейс IRawElementProviderFragment, должен быть в состоянии реализовать метод Navigate. Реализация навигации является сложной для элемента управления ActiveX без окна, так как элемент управления может не определить его расположение в доступном дереве родительского объекта. Метод GetAdjacentFragment позволяет элементу activeX запрашивать его сайт для соседнего фрагмента, а затем возвращать этот фрагмент клиенту, который называется Navigate.

Поставщик обычно вызывает этот метод в рамках обработки метода IRawElementProviderFragment::Navigate.

Примеры

В следующем примере кода C++ показано, как реализовать метод GetAdjacentFragment.

IFACEMETHODIMP CProviderWindowlessSite::GetAdjacentFragment(
        enum NavigateDirection direction, IRawElementProviderFragment **ppFragment)   
{
    if (ppFragment == NULL)
    {
        return E_INVALIDARG;
    }
    
    *ppFragment = NULL;
    HRESULT hr = S_OK;

    switch (direction)
    {
        case NavigateDirection_Parent:
            {  
                IRawElementProviderSimple *pSimple = NULL;

                // Call an application-defined function to retrieve the
                // parent provider interface.
                hr = GetParentProvider(&pSimple);  
                if (SUCCEEDED(hr))  
                {  
                    // Get the parent's IRawElementProviderFragment interface.
                    hr = pSimple->QueryInterface(IID_PPV_ARGS(ppFragment));  
                    pSimple->Release();  
                } 
            }  
            break;  
  
        case NavigateDirection_FirstChild:
        case NavigateDirection_LastChild:
            hr = E_INVALIDARG;
            break;

        // Ignore NavigateDirection_NextSibling and NavigateDirection_PreviousSibling
        // because there are no adjacent fragments.
        default:  
            break;  
    }  
  
    return hr;  
}   

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 8 [классические приложения | Приложения UWP]
минимальный поддерживаемый сервер Windows Server 2012 [классические приложения | Приложения UWP]
целевая платформа Виндоус
заголовка uiautomationcore.h (include UIAutomation.h)

См. также

IRawElementProviderWindowlessSite