Méthode IRawElementProviderFragmentRoot ::ElementProviderFromPoint (uiautomationcore.h)
Récupère le fournisseur de l’élément qui se trouve au point spécifié dans ce fragment.
Syntaxe
HRESULT ElementProviderFromPoint(
[in] double x,
[in] double y,
[out, retval] IRawElementProviderFragment **pRetVal
);
Paramètres
[in] x
Type : double
Coordonnée d'écran horizontale.
[in] y
Type : double
Coordonnée d'écran verticale.
[out, retval] pRetVal
Type : IRawElementProviderFragment**
Reçoit un pointeur vers le fournisseur de l’élément à (x, y) ou NULL s’il n’existe aucun élément. Ce paramètre est passé sans être initialisé.
Valeur retournée
Type : HRESULT
Si cette méthode réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.
Remarques
Le fournisseur retourné doit correspondre à l’élément qui recevrait l’entrée de la souris au point spécifié.
Si le point se trouve sur cet élément, mais pas sur un élément enfant, null ou le fournisseur de la racine du fragment est retourné. Si le point se trouve sur un élément d’une autre infrastructure hébergé par ce fragment, la méthode retourne l’élément qui héberge ce fragment (comme indiqué par IRawElementProviderFragment ::GetEmbeddedFragmentRoots).
Exemples
L’exemple suivant montre une implémentation pour une zone de liste hébergée dans un HWND dont le handle est m_controlHwnd. IndexFromY récupère l’index de l’élément de liste à la position du curseur et GetItemByIndex récupère le fournisseur UI Automation pour cet élément.
HRESULT STDMETHODCALLTYPE ListProvider::ElementProviderFromPoint(double x, double y, IRawElementProviderFragment** pRetVal)
{
if (pRetVal == NULL)
{
return E_INVALIDARG;
}
POINT pt;
pt.x = (LONG)x;
pt.y = (LONG)y;
ScreenToClient(m_controlHwnd, &pt);
int itemIndex = this->m_pControl->IndexFromY(m_controlHwnd, pt.y);
ListItemProvider* pItem = GetItemByIndex(itemIndex);
if (pItem != NULL)
{
*pRetVal = (IRawElementProviderFragment*)pItem;
pItem->AddRef();
}
else
{
pRetVal = (IRawElementProviderFragment*)this;
pItem->AddRef();
}
return S_OK;
}
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP [applications de bureau | applications UWP] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau | applications UWP] |
Plateforme cible | Windows |
En-tête | uiautomationcore.h (incluez UIAutomation.h) |