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
- Obtenez un pointeur d’interface IAccessible vers l’élément accessible qui doit être annoté.
- Appelez QueryInterface sur l’élément accessible pour obtenir un pointeur d’interface IAccIdentity .
- 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.
- Utilisez CoCreateInstance ou CoCreateInstanceEx pour créer l’objet IAccPropServices .
- Créez un objet COM (Component Object Model) qui implémente IAccPropServer.
- 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 .
- 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 |