Metodo IRawElementProviderFragmentRoot::ElementProviderFromPoint (uiautomationcore.h)
Recupera il provider dell'elemento che si trova nel punto specificato in questo frammento.
Sintassi
HRESULT ElementProviderFromPoint(
[in] double x,
[in] double y,
[out, retval] IRawElementProviderFragment **pRetVal
);
Parametri
[in] x
Tipo: double
Coordinata orizzontale dello schermo.
[in] y
Tipo: double
Coordinata verticale dello schermo.
[out, retval] pRetVal
Tipo: IRawElementProviderFragment**
Riceve un puntatore al provider dell'elemento in (x, y) o NULL se non esiste alcun elemento. Questo parametro viene passato non inizializzato.
Valore restituito
Tipo: HRESULT
Se questo metodo ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .
Commenti
Il provider restituito deve corrispondere all'elemento che riceverà l'input del mouse al punto specificato.
Se il punto si trova su questo elemento ma non su alcun elemento figlio, viene restituito NULL o il provider della radice del frammento. Se il punto si trova in un altro framework ospitato da questo frammento, il metodo restituisce l'elemento che ospita tale frammento , come indicato da IRawElementProviderFragment::GetEmbeddedFragmentRoots.
Esempio
Nell'esempio seguente viene illustrata un'implementazione per una casella di riepilogo ospitata in un HWND il cui handle è m_controlHwnd. IndexFromY recupera l'indice dell'elemento di elenco nella posizione del cursore e GetItemByIndex recupera il provider di Automazione interfaccia utente per tale elemento.
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;
}
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP [app desktop | App UWP] |
Server minimo supportato | Windows Server 2003 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | uiautomationcore.h (includere UIAutomation.h) |