Compartilhar via


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)

Confira também

Irawelementproviderfragmentroot