Share via


IRawElementProviderFragmentRoot::ElementProviderFromPoint-Methode (uiautomationcore.h)

Ruft den Anbieter des Elements ab, das sich an dem angegebenen Punkt in diesem Fragment befindet.

Syntax

HRESULT ElementProviderFromPoint(
  [in]          double                      x,
  [in]          double                      y,
  [out, retval] IRawElementProviderFragment **pRetVal
);

Parameter

[in] x

Typ: double

Die horizontale Bildschirmkoordinate.

[in] y

Typ: double

Die vertikale Bildschirmkoordinate.

[out, retval] pRetVal

Typ: IRawElementProviderFragment**

Empfängt einen Zeiger auf den Anbieter des Elements bei (x, y) oder NULL , wenn keines vorhanden ist. Dieser Parameter wird nicht initialisiert übergeben.

Rückgabewert

Typ: HRESULT

Wenn diese Methode erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.

Hinweise

Der zurückgegebene Anbieter sollte dem Element entsprechen, das die Mauseingabe an dem angegebenen Punkt empfangen würde.

Wenn sich der Punkt auf diesem Element, aber nicht auf einem untergeordneten Element befindet, wird entweder NULL oder der Anbieter des Fragmentstamms zurückgegeben. Wenn sich der Punkt auf einem Element in einem anderen Framework befindet, das von diesem Fragment gehostet wird, gibt die Methode das Element zurück, das dieses Fragment hostet (wie in IRawElementProviderFragment::GetEmbeddedFragmentRoots angegeben).

Beispiele

Das folgende Beispiel zeigt eine Implementierung für ein Listenfeld, das in einem HWND gehostet wird, dessen Handle m_controlHwnd ist. IndexFromY ruft den Index des Listenelements an der Cursorposition ab, und GetItemByIndex ruft den Benutzeroberflächenautomatisierung Anbieter für dieses Element ab.

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;
}            

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile uiautomationcore.h (include UIAutomation.h)

Weitere Informationen

IRawElementProviderFragmentRoot