Partager via


Utilisation de l’annotation de serveur

Cette rubrique fournit des informations sur l’utilisation de l’annotation de serveur pour spécifier un objet de rappel.

Pour remplacer une propriété qui spécifie un objet de rappel

  1. Obtenez un pointeur d’interface IAccessible vers l’élément accessible qui doit être annoté.
  2. Appelez QueryInterface sur l’élément accessible pour obtenir un pointeur d’interface IAccIdentity .
  3. Appelez IAccIdentity::GetIdentityString() sur le pointeur d’interface IAccIdentity pour obtenir une chaîne qui identifie de manière unique l’élément accessible à annoter.
  4. Utilisez CoCreateInstance ou CoCreateInstanceEx pour créer l’objet IAccPropServices .
  5. Créez un objet COM (Component Object Model) qui implémente IAccPropServer.
  6. Appelez IAccPropServices::SetPropServer en passant la chaîne d’identité, un GUID indiquant la propriété à remplacer et un pointeur vers l’objet de rappel IAccPropServer .
  7. Pointeurs d’interface de libération et mémoire libre.

Lorsqu’un client demande la propriété de l’élément accessible, l’objet de rappel est appelé et retourne la valeur au client.

Comme lors de la spécification d’une valeur, les développeurs de serveurs peuvent également utiliser la méthode IAccPropServices::ComposeHwndIdentityString pour obtenir une chaîne d’identité ; ou ils peuvent utiliser la méthode IAccPropServices::SetHwndPropServer et spécifier les paramètres hwnd, idObject ou idChild au lieu d’une chaîne d’identité.

Lorsque vous utilisez SetPropServer ou SetHwndPropServer sur un objet conteneur, les développeurs serveur peuvent éventuellement spécifier que les informations de substitution doivent également s’appliquer à tous les enfants d’éléments de ce conteneur.

Les serveurs peuvent effacer explicitement l’annotation à tout moment à l’aide de IAccPropServices::ClearProps. Cela n’est généralement pas obligatoire, car le service d’annotation propre automatiquement les informations d’annotation et libère les informations d’annotation lorsque l’élément accessible annoté disparaît.

Vous trouverez ci-dessous une liste de propriétés qui peuvent être annotées à l’aide de cette procédure.

Propriétés prises en charge lors de la spécification d’un rappel

Lors de la spécification d’un rappel, les propriétés suivantes peuvent être annotées. Actuellement, ces propriétés ne peuvent pas être annotées directement en spécifiant une valeur.

Propriété Type
PROPID_ACC_NAME VT_BSTR
PROPID_ACC_DESCRIPTION VT_BSTR
PROPID_ACC_ROLE VT_I4
PROPID_ACC_STATE VT_I4
PROPID_ACC_HELP VT_BSTR
PROPID_ACC_KEYBOARDSHORTCUT VT_BSTR
PROPID_ACC_DEFAULTACTION VT_BSTR
PROPID_ACC_VALUEMAP VT_BSTR
PROPID_ACC_ROLEMAP VT_BSTR
PROPID_ACC_STATEMAP VT_BSTR
PROPID_ACC_FOCUS VT_DISPATCH
VT_I4
PROPID_ACC_SELECTION VT_DISPATCH
VT_I4
VT_UNKNOWN
PROPID_ACC_PARENT VT_DISPATCH
PROPID_ACC_NAV_UP VT_DISPATCH
VT_I4
PROPID_ACC_NAV_DOWN VT_DISPATCH
VT_I4
PROPID_ACC_NAV_LEFT VT_DISPATCH
VT_I4
PROPID_ACC_NAV_RIGHT VT_DISPATCH
VT_I4
PROPID_ACC_NAV_PREV VT_DISPATCH
VT_I4
PROPID_ACC_NAV_NEXT VT_DISPATCH
VT_I4
PROPID_ACC_NAV_FIRSTCHILD VT_DISPATCH
VT_I4
PROPID_ACC_NAV_LASTCHILD VT_DISPATCH
VT_I4