Compartir a través de


Función AccessibleObjectFromEvent (oleacc.h)

Recupera la dirección de la interfaz IAccessible para el objeto que generó el evento que está procesando actualmente la función de enlace de eventos del cliente.

Sintaxis

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

Parámetros

[in] hwnd

Tipo: HWND

Especifica el identificador de ventana de la ventana que generó el evento. Este valor debe ser el identificador de ventana que se envía a la función de enlace de eventos.

[in] dwId

Tipo: DWORD

Especifica el identificador de objeto del objeto que generó el evento. Este valor debe ser el identificador de objeto que se envía a la función de enlace de eventos.

[in] dwChildId

Tipo: DWORD

Especifica si un objeto o uno de sus elementos secundarios desencadenó el evento. Si el objeto desencadenó el evento, dwChildID se CHILDID_SELF. Si un elemento secundario desencadenó el evento, dwChildID es el identificador secundario del elemento. Este valor debe ser el identificador secundario que se envía a la función de enlace de eventos.

[out] ppacc

Tipo: IAccessible**

Dirección de una variable de puntero que recibe la dirección de una interfaz IAccessible . La interfaz es para el objeto que generó el evento o para el elemento primario del elemento que generó el evento.

[out] pvarChild

Tipo: VARIANT*

Dirección de una estructura VARIANT que especifica el identificador secundario que se puede usar para tener acceso a información sobre el elemento de la interfaz de usuario.

Valor devuelto

Tipo: STDAPI

Si se ejecuta correctamente, devuelve S_OK.

Si no se ejecuta correctamente, devuelve uno de los siguientes u otro código de error COM estándar.

Código devuelto Descripción
E_INVALIDARG
Un argumento no es válido.

Comentarios

Los clientes llaman a esta función dentro de una función de enlace de eventos para obtener un puntero de interfaz IAccessible al objeto que generó el evento o al elemento primario del elemento que generó el evento. Los parámetros enviados a la función de devolución de llamada WinEventProc deben usarse para los parámetros hwnd, dwObjectID y dwChildID de esta función.

Esta función recupera el objeto accesible de nivel más bajo en la jerarquía de objetos asociada a un evento. Si el elemento que generó el evento no es un objeto accesible (es decir, no admite IAccessible), la función recupera la interfaz IAccessible del objeto primario. El objeto primario debe proporcionar información sobre el elemento secundario a través de la interfaz IAccessible .

Al igual que con otros métodos y funciones IAccessible , los clientes pueden recibir errores de punteros de interfaz IAccessible debido a una acción del usuario. Para obtener más información, vea Recibir errores para punteros de interfaz IAccessible.

Se produce un error en esta función si se llama en respuesta a EVENT_OBJECT_CREATE porque el objeto no se inicializa completamente. Del mismo modo, los clientes no deben llamar a esto en respuesta a EVENT_OBJECT_DESTROY porque el objeto ya no está disponible y no puede responder. Los clientes watch para eventos de EVENT_OBJECT_SHOW y EVENT_OBJECT_HIDE en lugar de EVENT_OBJECT_CREATE yEVENT_OBJECT_DESTROY.

Ejemplos

El código de ejemplo siguiente muestra que se llama a este método en un controlador 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 Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado oleacc.h
Library Oleacc.lib
Archivo DLL Oleacc.dll
Redistribuible RDK de accesibilidad activa 1.3 en Windows NT 4.0 con SP6 y versiones posteriores y Windows 95

Consulte también

AccessibleObjectFromPoint

AccessibleObjectFromWindow

IAccessible

VARIANT

WinEventProc