IRawElementProviderWindowlessSite::GetAdjacentFragment-Methode (uiautomationcore.h)
Ruft einen Fragmentzeiger für ein Fragment ab, das sich neben dem fensterlosen Microsoft ActiveX-Steuerelement befindet, das sich im Besitz dieser Steuerelementwebsite befindet.
Syntax
HRESULT GetAdjacentFragment(
[in] NavigateDirection direction,
[out, retval] IRawElementProviderFragment **ppParent
);
Parameter
[in] direction
Typ: NavigateDirection-
Ein Wert, der das abzurufende benachbarte Fragment angibt (übergeordnetes Element, nächstes gleichgeordnetes Element, vorheriges gleichgeordnetes Element usw.).
[out, retval] ppParent
Typ: IRawElementProviderFragment**
Empfängt das angrenzende Fragment.
Rückgabewert
Typ: HRESULT-
Wenn diese Methode erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein HRESULT- Fehlercode zurückgegeben. Der Rückgabewert wird E_INVALIDARG, wenn die Richtung NavigateDirection_FirstChild oder NavigateDirection_LastChildist, die für diese Methode ungültig sind. Wenn in der angeforderten Richtung kein angrenzendes Fragment vorhanden ist, gibt die Methode S_OK zurück und legt ppRetVal- auf NULL-fest.
Bemerkungen
Um das übergeordnete Element des Fragments zurückzugeben, muss ein Objekt, das die IRawElementProviderFragment Schnittstelle implementiert, die Navigate-Methode implementieren können. Das Implementieren von Navigieren ist für ein fensterloses ActiveX-Steuerelement schwierig, da das Steuerelement möglicherweise nicht in der Lage ist, seine Position in der barrierefreien Struktur des übergeordneten Objekts zu bestimmen. Mit der GetAdjacentFragment--Methode kann das fensterlose ActiveX-Steuerelement seine Website für das angrenzende Fragment abfragen und dieses Fragment dann an den Client zurückgeben, der Navigateaufgerufen hat.
Ein Anbieter ruft diese Methode in der Regel als Teil der Behandlung der IRawElementProviderFragment::Navigate-Methode auf.
Beispiele
Das folgende C++-Codebeispiel zeigt, wie die GetAdjacentFragment--Methode implementiert wird.
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;
}
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 8 [Desktop-Apps | UWP-Apps] |
mindestens unterstützte Server- | Windows Server 2012 [Desktop-Apps | UWP-Apps] |
Zielplattform- | Fenster |
Header- | uiautomationcore.h (include UIAutomation.h) |