Método IRawElementProviderFragmentRoot::ElementProviderFromPoint (uiautomationcore.h)
Recupera el proveedor del elemento que se encuentra en el punto especificado de este fragmento.
Sintaxis
HRESULT ElementProviderFromPoint(
[in] double x,
[in] double y,
[out, retval] IRawElementProviderFragment **pRetVal
);
Parámetros
[in] x
Tipo: double
Coordenada horizontal de la pantalla.
[in] y
Tipo: double
Coordenada vertical de la pantalla.
[out, retval] pRetVal
Tipo: IRawElementProviderFragment**
Recibe un puntero al proveedor del elemento en (x, y) o NULL si no existe ninguno. Este parámetro se pasa sin inicializar.
Valor devuelto
Tipo: HRESULT
Si este método se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.
Comentarios
El proveedor devuelto debe corresponder al elemento que recibiría la entrada del mouse en el punto especificado.
Si el punto está en este elemento pero no en ningún elemento secundario, se devuelve NULL o el proveedor de la raíz del fragmento. Si el punto está en un elemento de otro marco hospedado por este fragmento, el método devuelve el elemento que hospeda ese fragmento (como se indica en IRawElementProviderFragment::GetEmbeddedFragmentRoots).
Ejemplos
En el ejemplo siguiente se muestra una implementación de un cuadro de lista hospedado en un HWND cuyo identificador es m_controlHwnd. IndexFromY recupera el índice del elemento de lista en la posición del cursor y GetItemByIndex recupera el proveedor de Automatización de la interfaz de usuario para ese 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;
}
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP [aplicaciones de escritorio | aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | uiautomationcore.h (include UIAutomation.h) |