Partager via


IRawElementProviderWindowlessSite ::GetAdjacentFragment, méthode (uiautomationcore.h)

Récupère un pointeur de fragment pour un fragment adjacent au contrôle Microsoft ActiveX sans fenêtre appartenant à ce site de contrôle.

Syntaxe

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

Paramètres

[in] direction

Type : NavigateDirection

Valeur qui indique le fragment adjacent à récupérer (parent, frère suivant, frère précédent, etc.).

[out, retval] ppParent

Type : IRawElementProviderFragment**

Reçoit le fragment adjacent.

Valeur de retour

Type : HRESULT

Si cette méthode réussit, elle retourne S_OK. Sinon, elle retourne un HRESULT code d’erreur. La valeur de retour est E_INVALIDARG si la direction est NavigateDirection_FirstChild ou NavigateDirection_LastChild, qui ne sont pas valides pour cette méthode. S’il n’existe aucun fragment adjacent dans la direction demandée, la méthode retourne S_OK et définit ppRetVal sur NULL.

Remarques

Pour retourner le parent du fragment, un objet qui implémente l’interface IRawElementProviderFragment doit être en mesure d’implémenter la méthode Navigate . L’implémentation de Navigate est difficile pour un contrôle ActiveX sans fenêtre, car le contrôle peut ne pas pouvoir déterminer son emplacement dans l’arborescence accessible de l’objet parent. La méthode GetAdjacentFragment permet au contrôle ActiveX sans fenêtre d’interroger son site pour le fragment adjacent, puis de renvoyer ce fragment au client appelé Navigate.

Un fournisseur appelle généralement cette méthode dans le cadre de la gestion de la méthode IRawElementProviderFragment ::Navigate.

Exemples

L’exemple de code C++ suivant montre comment implémenter la méthode 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;  
}   

Exigences

Exigence Valeur
client minimum pris en charge Windows 8 [applications de bureau | Applications UWP]
serveur minimum pris en charge Windows Server 2012 [applications de bureau | Applications UWP]
plateforme cible Windows
d’en-tête uiautomationcore.h (include UIAutomation.h)

Voir aussi

IRawElementProviderWindowlessSite