Fonction AccessibleObjectFromEvent (oleacc.h)

Récupère l’adresse de l’interface IAccessible pour l’objet qui a généré l’événement en cours de traitement par la fonction de hook d’événements du client.

Syntaxe

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

Paramètres

[in] hwnd

Type : HWND

Spécifie le handle de fenêtre de la fenêtre qui a généré l’événement. Cette valeur doit être le handle de fenêtre envoyé à la fonction de hook d’événement.

[in] dwId

Type : DWORD

Spécifie l’ID d’objet de l’objet qui a généré l’événement. Cette valeur doit être l’ID d’objet envoyé à la fonction de hook d’événement.

[in] dwChildId

Type : DWORD

Spécifie si l’événement a été déclenché par un objet ou l’un de ses éléments enfants. Si l’objet a déclenché l’événement, dwChildID est CHILDID_SELF. Si un élément enfant a déclenché l’événement, dwChildID est l’ID enfant de l’élément. Cette valeur doit être l’ID enfant envoyé à la fonction de hook d’événement.

[out] ppacc

Type : IAccessible**

Adresse d’une variable pointeur qui reçoit l’adresse d’une interface IAccessible . L’interface est soit pour l’objet qui a généré l’événement, soit pour le parent de l’élément qui a généré l’événement.

[out] pvarChild

Type : VARIANT*

Adresse d’une structure VARIANT qui spécifie l’ID enfant qui peut être utilisé pour accéder aux informations sur l’élément d’interface utilisateur.

Valeur retournée

Type : STDAPI

En cas de réussite, retourne S_OK.

En cas de non-réussite, retourne l’un des codes d’erreur COM suivants ou un autre code d’erreur COM standard.

Code de retour Description
E_INVALIDARG
Un argument n’est pas valide.

Remarques

Les clients appellent cette fonction dans une fonction de hook d’événement pour obtenir un pointeur d’interface IAccessible vers l’objet qui a généré l’événement ou vers le parent de l’élément qui a généré l’événement. Les paramètres envoyés à la fonction de rappel WinEventProc doivent être utilisés pour les paramètres hwnd, dwObjectID et dwChildID de cette fonction.

Cette fonction récupère l’objet accessible de niveau le plus bas dans la hiérarchie d’objets associé à un événement. Si l’élément qui a généré l’événement n’est pas un objet accessible (autrement dit, ne prend pas en charge IAccessible), la fonction récupère l’interface IAccessible de l’objet parent. L’objet parent doit fournir des informations sur l’élément enfant via l’interface IAccessible .

Comme avec d’autres méthodes et fonctions IAccessible , les clients peuvent recevoir des erreurs pour les pointeurs d’interface IAccessible en raison d’une action utilisateur. Pour plus d’informations, consultez Réception d’erreurs pour les pointeurs d’interface IAccessible.

Cette fonction échoue si elle est appelée en réponse à EVENT_OBJECT_CREATE car l’objet n’est pas entièrement initialisé. De même, les clients ne doivent pas appeler cela en réponse à EVENT_OBJECT_DESTROY , car l’objet n’est plus disponible et ne peut pas répondre. Les clients watch pour les événements EVENT_OBJECT_SHOW et EVENT_OBJECT_HIDE plutôt que pour les EVENT_OBJECT_CREATE et les EVENT_OBJECT_DESTROY.

Exemples

L’exemple de code suivant montre que cette méthode est appelée dans un gestionnaire d’événements 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();
    }
}

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête oleacc.h
Bibliothèque Oleacc.lib
DLL Oleacc.dll
Composant redistribuable Active Accessibility 1.3 RDK sur Windows NT 4.0 avec SP6 et versions ultérieures et Windows 95

Voir aussi

AccessibleObjectFromPoint

AccessibleObjectFromWindow

Iaccessible

VARIANTE

WinEventProc