Méthode IAccessible ::get_accFocus (oleacc.h)

La méthode IAccessible ::get_accFocus récupère l’objet qui a le focus clavier. Tous les objets qui peuvent recevoir le focus clavier doivent prendre en charge cette propriété.

Syntaxe

HRESULT get_accFocus(
  [out, retval] VARIANT *pvarChild
);

Paramètres

[out, retval] pvarChild

Type : VARIANT*

Adresse d’une structure VARIANT qui reçoit des informations sur l’objet qui a le focus. Le tableau suivant décrit les informations retournées dans pvarID.

Valeur Signification
VT_EMPTY
Aucun. Ni cet objet ni aucun de ses enfants n’a le focus clavier.
VT_I4
lVal est CHILDID_SELF. L’objet lui-même a le focus clavier.
VT_I4
lVal contient l’ID enfant de l’élément enfant qui a le focus clavier.
VT_DISPATCH
Le membre pdispVal est l’adresse de l’interface IDispatch pour l’objet enfant qui a le focus clavier.

Valeur retournée

Type : HRESULT

En cas de réussite, retourne S_OK.

En cas d’erreur, retourne l’une des valeurs de la table qui suit ou un autre code d’erreur COM standard. Les serveurs retournent ces valeurs, mais les clients doivent toujours case activée paramètres de sortie pour s’assurer qu’ils contiennent des valeurs valides. Pour plus d’informations, consultez Vérification des valeurs de retour IAccessible.

Erreur Description
S_FALSE
L’objet est une fenêtre, mais pas la fenêtre de premier plan.
DISP_E_MEMBERNOTFOUND
L’objet ne prend pas en charge cette propriété.

Remarques

Le concept de focus clavier est lié à celui d’une fenêtre active. Une fenêtre active est la fenêtre de premier plan sur laquelle l’utilisateur travaille. L’objet avec le focus clavier est la fenêtre active ou un objet enfant de la fenêtre active.

Un seul objet ou élément au sein d’un conteneur a le focus à la fois. L’objet avec le focus clavier n’est pas toujours l’objet sélectionné. Pour plus d’informations sur la différence entre la sélection et le focus, consultez Propriétés et méthodes de sélection et de focus.

Cette méthode retourne un pointeur d’interface IDispatch ou un ID enfant pour le pvarID. Pour plus d’informations sur l’utilisation du pointeur d’interface IDispatch ou de l’ID enfant, consultez Utilisation des ID enfants dans les paramètres.

Comme avec d’autres méthodes et fonctions IAccessible , les clients peuvent recevoir des erreurs pour les pointeurs d’interface IAccessible en raison d’une action de l’utilisateur. Pour plus d’informations, consultez Réception d’erreurs pour les pointeurs d’interface IAccessible.

Exemple de serveur

L’exemple de code suivant montre une implémentation possible de cette méthode pour une zone de liste à sélection unique personnalisée. Si le contrôle n’a pas le focus, VT_EMPTY est retourné dans la variante par l’objet accessible standard pour le HWND. Si le contrôle a le focus et qu’un élément est sélectionné, l’ID enfant de cet élément est retourné ; s’il n’y a pas de sélection, CHILDID_SELF est retourné.

// m_pControl is the control object that is served by this implementation. 
// m_pStdAccessibleObject is the object returned by CreateStdAccessibleObject. 

HRESULT STDMETHODCALLTYPE AccServer::get_accFocus(VARIANT *pvarChild)
{
    FAIL_IF_NO_CONTROL;  // Macro that checks for existence of control. 

    HRESULT hr = m_pStdAccessibleObject->get_accFocus(pvarChild);  
    if (pvarChild->vt != VT_I4)
    {
        return hr;
    }
    else
    {
        int index = m_pControl->GetSelectedIndex();
        if (index <0)
        {
            pvarChild->lVal = CHILDID_SELF;
        }
        else
        {
            // Convert to 1-based index for child ID. 
            pvarChild->lVal = index + 1;
        }
    }
    return S_OK;
};


Configuration requise

Condition requise Valeur
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 4.0 avec SP6 et versions ultérieures et Windows 95

Voir aussi

Iaccessible

IAccessible ::accSelect

IAccessible ::get_accSelection

IDispatch

Propriétés et méthodes de sélection et de focus