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 de Active Accessibility de Microsoft et la plupart des propriétés IAccessible prennent une structure de variante 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 souhaitent 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 de l’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 :: obtenir _ accName ( CHILDID _ Self dans le membre lVal et VT _ I4 dans le membre VT ), puis appelez IAccessible :: obtenir _ 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. Un client doit suivre différentes étapes, selon qu’il reçoit un ID enfant VT _ I4 (élément simple) ou un pointeur d’interface IDispatch avec CHILDID _ Self (objet complet). Les étapes suivantes fournissent un pointeur d’interface IAccessible et un ID enfant qui, ensemble, permettent aux clients d’utiliser les méthodes et propriétés IAccessible . Ces étapes s’appliquent aux méthodes IAccessible :: accHitTest, _ accFocuset _ accSelection . Elles s’appliquent également aux fonctions du client AccessibleObjectFromEvent, AccessibleObjectFromPointet AccessibleObjectFromWindow .

Le tableau suivant répertorie les résultats possibles retournés et les étapes de retraitement requises pour que les clients aient un pointeur d’interface IAccessible et un ID enfant.

Résultat retourné Après le 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 :: obtenir _ accChild à l’aide de l’ID enfant pour déterminer si vous disposez d’un pointeur d’interface IDispatch . Si vous recevez 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 à la méthode obtenir _ accChild échoue, vous avez 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 de l’enfant VT _ I4 renvoyé par l’appel.

Avant de pouvoir utiliser un paramètre Variant , vous devez l’initialiser en appelant la fonction com (Component Object Model) VariantInit . Lorsque vous avez terminé avec la structure, appelez VariantClear pour libérer la mémoire réservée pour cette variante.

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

Interface IDispatch

Structure de variante