Méthode IAccessible::accDoDefaultAction (oleacc.h)
La méthode IAccessible::accDoDefaultAction effectue l’action par défaut de l’objet spécifié. Les objets n'ont pas tous une action par défaut.
Syntaxe
HRESULT accDoDefaultAction(
[in] VARIANT varChild
);
Paramètres
[in] varChild
Type : VARIANT
Spécifie si l’action par défaut appartient à l’objet ou à l’un des éléments enfants de l’objet. Pour plus d’informations sur l’initialisation du VARIANT, consultez Utilisation des ID enfants dans les paramètres.
Valeur retournée
Type : HRESULT
En cas de réussite, retourne S_OK.
En cas de non-réussite, retourne l’une des valeurs de la table qui suit ou un autre code d’erreur COM standard.
Error | Description |
---|---|
|
L’objet ne prend pas en charge la méthode. Cette valeur est retournée pour les contrôles qui n’effectuent pas d’actions, telles que les champs de modification. |
|
Un argument n’est pas valide. |
Notes
Les clients récupèrent une chaîne qui décrit l’action par défaut de l’objet en appelant IAccessible::get_accDefaultAction.
Remarque aux développeurs clients : Lorsqu’il est utilisé sur un élément de menu dans un menu système standard, accDoDefaultAction retourne S_OK, mais ne parvient pas à effectuer l’action si le caractère utilisé dans la touche d’accès (le caractère souligné dans le texte d’un nom d’élément de menu, également appelé mnémonique) est ?, !, @, ou tout autre caractère qui nécessite la touche MAJ ou une autre touche de modificateur. Cela se produit également sur les claviers internationaux avec un caractère de touche d’accès qui nécessite d’appuyer sur la touche ALT GR. Ce n’est pas un problème pour les menus dans d’autres applications, telles que Microsoft Office ou Windows Internet Explorer. Pour plus d’informations sur les clés d’accès, consultez IAccessible::get_accKeyboardShortcut.
En outre, alors que accDoDefaultAction est censé retourner immédiatement, certaines implémentations bloquent le retour. Par exemple, si cliquer sur un lien affiche un dialogue, certaines implémentations bloquent le retour jusqu’à ce que la boîte de dialogue soit ignorée. De tels retards peuvent empêcher les applications clientes de traiter une boîte de dialogue. Les serveurs doivent éviter les implémentations qui bloquent les retours.
Exemple de serveur
L’exemple suivant montre une implémentation possible pour un contrôle de liste personnalisé dont l’action par défaut est un double-clic sur un élément enfant. Pour éviter le blocage, la méthode publie un message personnalisé qui, lorsqu’il est reçu par la fenêtre de contrôle, déclenche une action, telle que l’affichage des propriétés d’élément.
// Assume a previous definition such as this:
// #define CUSTOMLB_DEFERDOUBLECLICK (WM_USER + 1)
HRESULT STDMETHODCALLTYPE AccServer::accDoDefaultAction(
VARIANT varChild)
{
if (varChild.vt != VT_I4)
{
return E_INVALIDARG;
}
if (varChild.lVal != CHILDID_SELF)
{
// It is assumed that the control does its own checking to see which
// item has the focus when it receives this message.
PostMessage(m_hwnd, CUSTOMLB_DEFERDOUBLECLICK, 0, 0);
}
return S_OK;
};
Exemple de client
L’exemple de fonction suivant effectue l’action par défaut sur un contrôle.
HRESULT DoAction(IAccessible* pAcc)
{
VARIANT varId;
varId.vt = VT_I4;
varId.lVal = CHILDID_SELF;
return pAcc->accDoDefaultAction(varId);
}
Spécifications
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | oleacc.h |
Bibliothèque | Oleacc.lib |
DLL | Oleacc.dll |
Composant redistribuable | Active Accessibility 1.3 RDK sur Windows NT Server 4.0 avec SP6 et versions ultérieures et Windows 95 |
Voir aussi
Annexe A : Référence des éléments d’interface utilisateur pris en charge
IAccessible::get_accDefaultAction