Método IRawElementProviderFragmentRoot::ElementProviderFromPoint (uiautomationcore.h)
Recupera o provedor do elemento que está no ponto especificado neste fragmento.
Sintaxe
HRESULT ElementProviderFromPoint(
[in] double x,
[in] double y,
[out, retval] IRawElementProviderFragment **pRetVal
);
Parâmetros
[in] x
Tipo: duplo
A coordenada horizontal da tela.
[in] y
Tipo: duplo
A coordenada vertical da tela.
[out, retval] pRetVal
Tipo: IRawElementProviderFragment**
Recebe um ponteiro para o provedor do elemento em (x, y) ou NULL se nenhum existir. Este parâmetro é passado não inicializado.
Retornar valor
Tipo: HRESULT
Se o método for bem-sucedido, ele retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.
Comentários
O provedor retornado deve corresponder ao elemento que receberia a entrada do mouse no ponto especificado.
Se o ponto estiver nesse elemento, mas não em nenhum elemento filho, NULL ou o provedor da raiz do fragmento será retornado. Se o ponto estiver em um elemento em outra estrutura hospedada por esse fragmento, o método retornará o elemento que hospeda esse fragmento (conforme indicado por IRawElementProviderFragment::GetEmbeddedFragmentRoots).
Exemplos
O exemplo a seguir mostra uma implementação para uma caixa de listagem hospedada em um HWND cujo identificador é m_controlHwnd. IndexFromY recupera o índice do item de lista na posição do cursor e GetItemByIndex recupera o provedor de Automação da Interface do Usuário para esse item.
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 | Valor |
---|---|
Cliente mínimo com suporte | Windows XP [aplicativos da área de trabalho | aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | uiautomationcore.h (inclua UIAutomation.h) |