Share via


Função AccessibleObjectFromEvent (oleacc.h)

Recupera o endereço da interface IAccessible para o objeto que gerou o evento que está sendo processado pela função de gancho de evento do cliente.

Sintaxe

HRESULT AccessibleObjectFromEvent(
  [in]  HWND        hwnd,
  [in]  DWORD       dwId,
  [in]  DWORD       dwChildId,
  [out] IAccessible **ppacc,
  [out] VARIANT     *pvarChild
);

Parâmetros

[in] hwnd

Tipo: HWND

Especifica o identificador de janela da janela que gerou o evento. Esse valor deve ser o identificador de janela que é enviado para a função de gancho de evento.

[in] dwId

Tipo: DWORD

Especifica a ID do objeto que gerou o evento. Esse valor deve ser a ID do objeto que é enviada para a função de gancho de evento.

[in] dwChildId

Tipo: DWORD

Especifica se o evento foi disparado por um objeto ou um de seus elementos filho. Se o objeto disparou o evento, dwChildID será CHILDID_SELF. Se um elemento filho disparou o evento, dwChildID será a ID filho do elemento. Esse valor deve ser a ID filho que é enviada para a função de gancho de evento.

[out] ppacc

Tipo: IAccessible**

Endereço de uma variável de ponteiro que recebe o endereço de uma interface IAccessible . A interface é para o objeto que gerou o evento ou para o pai do elemento que gerou o evento.

[out] pvarChild

Tipo: VARIANT*

Endereço de uma estrutura VARIANT que especifica a ID filho que pode ser usada para acessar informações sobre o elemento de interface do usuário.

Retornar valor

Tipo: STDAPI

Se for bem-sucedido, retornará S_OK.

Se não for bem-sucedido, retornará um dos seguintes ou outro código de erro COM padrão.

Código de retorno Descrição
E_INVALIDARG
Um argumento não é válido.

Comentários

Os clientes chamam essa função dentro de uma função de gancho de evento para obter um ponteiro de interface IAccessible para o objeto que gerou o evento ou para o pai do elemento que gerou o evento. Os parâmetros enviados para a função de retorno de chamada WinEventProc devem ser usados para os parâmetros hwnd, dwObjectID e dwChildID dessa função.

Essa função recupera o objeto acessível de nível mais baixo na hierarquia de objetos associada a um evento. Se o elemento que gerou o evento não for um objeto acessível (ou seja, não dá suporte a IAccessible), a função recuperará a interface IAccessible do objeto pai. O objeto pai deve fornecer informações sobre o elemento filho por meio da interface IAccessible .

Assim como acontece com outros métodos e funções IAccessible , os clientes podem receber erros para ponteiros de interface IAccessible devido a uma ação do usuário. Para obter mais informações, consulte Recebendo erros para ponteiros de interface IAccessible.

Essa função falhará se for chamada em resposta a EVENT_OBJECT_CREATE porque o objeto não está totalmente inicializado. Da mesma forma, os clientes não devem chamar isso em resposta a EVENT_OBJECT_DESTROY porque o objeto não está mais disponível e não pode responder. Os clientes watch para eventos de EVENT_OBJECT_SHOW e EVENT_OBJECT_HIDE em vez de para EVENT_OBJECT_CREATE e EVENT_OBJECT_DESTROY.

Exemplos

O código de exemplo a seguir mostra esse método sendo chamado em um manipulador de eventos WinEventProc .


void CALLBACK HandleWinEvent(HWINEVENTHOOK hook, DWORD event, HWND hwnd, 
                             LONG idObject, LONG idChild, 
                             DWORD dwEventThread, DWORD dwmsEventTime)
{
    IAccessible* pAcc = NULL;
    VARIANT varChild;
    HRESULT hr = AccessibleObjectFromEvent(hwnd, idObject, idChild, &pAcc, &varChild);  
    if ((hr == S_OK) && (pAcc != NULL))
    {
        // Do something with the accessible object, then release it.        
        // ... 
        pAcc->Release();
    }
}

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho oleacc.h
Biblioteca Oleacc.lib
DLL Oleacc.dll
Redistribuível Active Accessibility 1.3 RDK no Windows NT 4.0 com SP6 e posterior e Windows 95

Confira também

AccessibleObjectFromPoint

AccessibleObjectFromWindow

Iaccessible

VARIANT

WinEventProc