IRawElementProviderWindowlessSite::GetAdjacentFragment-Methode (uiautomationcore.h)

Ruft einen Fragmentzeiger für ein Fragment ab, das an das fensterlose Microsoft ActiveX-Steuerelement an dieser Steuerelementwebsite angrenzt.

Syntax

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

Parameter

direction

[out, retval] ppParent

Typ: IRawElementProviderFragment**

Empfängt das benachbarte Fragment.

Rückgabewert

Typ: HRESULT

Wenn diese Methode erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode HRESULT zurückgegeben. Der Rückgabewert wird E_INVALIDARG, wenn die Richtung NavigateDirection_FirstChild oder NavigateDirection_LastChild ist, die für diese Methode nicht gültig sind. Wenn kein angrenzendes Fragment in der angeforderten Richtung vorhanden ist, gibt die Methode S_OK zurück und legt ppRetVal auf NULL fest.

Hinweise

Um das übergeordnete Element des Fragments zurückzugeben, muss ein Objekt, das die IRawElementProviderFragment-Schnittstelle implementiert, in der Lage sein, die Navigate-Methode zu implementieren. Die Implementierung von Navigate ist für ein fensterloses ActiveX-Steuerelement schwierig, da das Steuerelement möglicherweise nicht in der Lage ist, seinen Speicherort in der Zugriffsstruktur des übergeordneten Objekts zu bestimmen. Die GetAdjacentFragment-Methode ermöglicht es dem fensterlosen ActiveX-Steuerelement, seinen Standort nach dem angrenzenden Fragment abzufragen und dieses Fragment dann an den Client zurückzugeben, der Navigate aufgerufen hat.

Ein Anbieter ruft diese Methode normalerweise im Rahmen 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
Unterstützte Mindestversion (Client) Windows 8 [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile uiautomationcore.h (include UIAutomation.h)

Weitere Informationen

IRawElementProviderWindowlessSite