Partager via


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