Метод 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) |