IAccessible::get_accFocus-Methode (oleacc.h)

Die IAccessible::get_accFocus-Methode ruft das Objekt ab, das über den Tastaturfokus verfügt. Alle Objekte, die möglicherweise den Tastaturfokus erhalten, müssen diese Eigenschaft unterstützen.

Syntax

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

Parameter

[out, retval] pvarChild

Typ: VARIANT*

Adresse einer VARIANT-Struktur , die Informationen zu dem Objekt empfängt, das den Fokus hat. In der folgenden Tabelle werden die in pvarID zurückgegebenen Informationen beschrieben.

Wert Bedeutung
VT_EMPTY
Keine. Weder dieses Objekt noch eines seiner untergeordneten Elemente verfügt über den Tastaturfokus.
VT_I4
lVal ist CHILDID_SELF. Das Objekt selbst hat den Tastaturfokus.
VT_I4
lVal enthält die untergeordnete ID des untergeordneten Elements, das den Tastaturfokus hat.
VT_DISPATCH
pdispVal-Member ist die Adresse der IDispatch-Schnittstelle für das untergeordnete Objekt, das den Tastaturfokus hat.

Rückgabewert

Typ: HRESULT

Gibt bei Erfolg S_OK zurück.

Wenn dies nicht erfolgreich ist, gibt einen der Werte in der folgenden Tabelle oder einen anderen COM-Standardfehlercode zurück. Server geben diese Werte zurück, aber Clients müssen die Ausgabeparameter immer überprüfen, um sicherzustellen, dass sie gültige Werte enthalten. Weitere Informationen finden Sie unter Überprüfen von IAccessible-Rückgabewerten.

Fehler BESCHREIBUNG
S_FALSE
Das Objekt ist ein Fenster, aber nicht das Vordergrundfenster.
DISP_E_MEMBERNOTFOUND
Das -Objekt unterstützt diese Eigenschaft nicht.

Hinweise

Das Konzept des Tastaturfokus hängt mit dem eines aktiven Fensters zusammen. Ein aktives Fenster ist das Vordergrundfenster, in dem der Benutzer arbeitet. Das Objekt mit dem Tastaturfokus ist entweder das aktive Fenster oder ein untergeordnetes Objekt des aktiven Fensters.

Nur ein Objekt oder Element innerhalb eines Containers hat den Fokus gleichzeitig. Das Objekt mit dem Tastaturfokus ist nicht immer das ausgewählte Objekt. Weitere Informationen zum Unterschied zwischen Auswahl und Fokus finden Sie unter Auswahl- und Fokuseigenschaften und -methoden.

Diese Methode gibt entweder einen IDispatch-Schnittstellenzeiger oder eine untergeordnete ID für die pvarID zurück. Weitere Informationen zur Verwendung des IDispatch-Schnittstellenzeigers oder der untergeordneten ID finden Sie unter Verwenden untergeordneter IDs in Parametern.

Wie bei anderen IAccessible-Methoden und -Funktionen erhalten Clients aufgrund einer Benutzeraktion möglicherweise Fehler für IAccessible-Schnittstellenzeiger . Weitere Informationen finden Sie unter Empfangen von Fehlern für IAccessible-Schnittstellenzeiger.

Serverbeispiel

Der folgende Beispielcode zeigt eine mögliche Implementierung dieser Methode für ein benutzerdefiniertes Listenfeld für die Einzelauswahl. Wenn das Steuerelement nicht über den Fokus verfügt, wird VT_EMPTY in der Variante vom standardmäßig zugänglichen Objekt für den HWND zurückgegeben. Wenn das Steuerelement den Fokus hat und ein Element ausgewählt ist, wird die untergeordnete ID dieses Elements zurückgegeben. wenn keine Auswahl vorhanden ist, wird CHILDID_SELF zurückgegeben.

// 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;
};


Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile oleacc.h
Bibliothek Oleacc.lib
DLL Oleacc.dll
Verteilbare Komponente Active Accessibility 1.3 RDK unter Windows NT 4.0 mit SP6 und höher und Windows 95

Weitere Informationen

Iaccessible

IAccessible::accSelect

IAccessible::get_accSelection

IDispatch

Eigenschaften und Methoden für Auswahl und Fokus