Freigeben über


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)

Siehe auch

IRawElementProviderWindowlessSite