Utilisation des ID enfants dans les paramètres

Cette rubrique décrit les paramètres d’entrée, les paramètres de sortie et les cas spéciaux d’interprétation des ID enfants retournés par les méthodes IAccessible .

Paramètres d’entrée

La plupart des fonctions Microsoft Active Accessibility et la plupart des propriétés IAccessible prennent une structure VARIANT comme paramètre d’entrée. Pour la plupart des propriétés IAccessible , ce paramètre permet aux développeurs clients de spécifier s’ils veulent des informations sur l’objet lui-même ou sur l’un des éléments simples de l’objet.

Microsoft Active Accessibility fournit la constante CHILDID_SELF pour indiquer que des informations sont nécessaires sur l’objet lui-même. Pour obtenir des informations sur un élément simple, les développeurs clients spécifient son ID enfant dans le paramètre VARIANT .

Lors de l’initialisation d’un paramètre VARIANT , veillez à spécifier VT_I4 dans le membre vt en plus de spécifier la valeur d’ID enfant (ou CHILDID_SELF) dans le membre lVal .

Par exemple, pour obtenir le nom d’un objet et non l’un des éléments enfants de l’objet, initialisez le VARIANT pour le premier paramètre de IAccessible::get_accName ( CHILDID_SELF dans le membre lVal et VT_I4 dans le membre vt ), puis appelez IAccessible::get_accName.

Paramètres de sortie

Plusieurs fonctions et méthodes IAccessible ont un paramètre de sortie VARIANT* qui contient un ID enfant ou un pointeur d’interface IDispatch vers un objet enfant. Il existe différentes étapes qu’un client doit effectuer selon qu’il reçoit un ID enfant VT_I4 (élément simple) ou un pointeur d’interface IDispatch avec CHILDID_SELF (objet complet). En suivant ces étapes, vous allez fournir un pointeur d’interface IAccessible et un ID enfant qui permettent aux clients d’utiliser les méthodes et propriétés IAccessible . Ces étapes s’appliquent aux méthodes IAccessible::accHitTest, get_accFocus et get_accSelection . Elles s’appliquent également aux fonctions clientes AccessibleObjectFromEvent, AccessibleObjectFromPoint et AccessibleObjectFromWindow .

Le tableau suivant répertorie le résultat possible retourné et les étapes de post-traitement requises afin que les clients aient un pointeur d’interface IAccessible et un ID enfant.

Résultat retourné Post-traitement de la valeur de retour
Pointeur d’interface IDispatch Il s’agit d’un objet complet. Appelez QueryInterface pour accéder au pointeur d’interface IAccessible .
Utilisez le pointeur d’interface IAccessible avec CHILDID_SELF pour accéder aux méthodes et propriétés IAccessible .
id enfant VT_I4 Appelez IAccessible::get_accChild à l’aide de l’ID enfant pour voir si vous avez un pointeur d’interface IDispatch . Si vous obtenez un pointeur d’interface IDispatch , utilisez-le avec CHILDID_SELF pour accéder aux méthodes et propriétés de l’interface IAccessible .
Si l’appel à get_accChild échoue, vous disposez d’un élément simple. Utilisez le pointeur d’interface IAccessible d’origine (celui que vous avez utilisé dans votre appel à la méthode ou à la fonction mentionnée ci-dessus) avec l’ID enfant VT_I4 retourné par l’appel.

Avant de pouvoir utiliser un paramètre VARIANT , vous devez l’initialiser en appelant la fonction COM (Component Object Model) VariantInit . Une fois la structure terminée, appelez VariantClear pour libérer la mémoire réservée à ce VARIANT.

Cas particuliers

Il existe des exceptions aux instructions dans le tableau ci-dessus, par exemple lorsqu’un ID enfant est retourné par la méthode IAccessible::accHitTest . Les serveurs doivent retourner une interface IDispatch si l’enfant est un objet accessible. Si un ID enfant est retourné par IAccessible::accHitTest, l’enfant est un élément simple.

En outre, il existe des cas spéciaux pour accNavigate. Pour plus d’informations, consultez IAccessible::accNavigate et Navigation spatiale et logique.

Conceptuel

IDispatch Interface

VARIANT Structure