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 |
---|---|
|
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 |