IAccessible::accDoDefaultAction-Methode (oleacc.h)

Die IAccessible::accDoDefaultAction-Methode führt die Standardaktion des angegebenen Objekts aus. Nicht alle Objekte verfügen über eine Standardaktion.

Syntax

HRESULT accDoDefaultAction(
  [in] VARIANT varChild
);

Parameter

[in] varChild

Typ: VARIANT

Gibt an, ob die Standardaktion zum Objekt oder zu einem der untergeordneten Elemente des Objekts gehört. Weitere Informationen zum Initialisieren von VARIANT finden Sie unter Verwenden untergeordneter IDs in Parametern.

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.

Fehler BESCHREIBUNG
DISP_E_MEMBERNOTFOUND
Das -Objekt unterstützt die -Methode nicht. Dieser Wert wird für Steuerelemente zurückgegeben, die keine Aktionen ausführen, z. B. Bearbeitungsfelder.
E_INVALIDARG
Ein Argument ist ungültig.

Hinweise

Clients rufen eine Zeichenfolge ab, die die Standardaktion des Objekts beschreibt, indem sie IAccessible::get_accDefaultAction aufrufen.

Hinweis für Cliententwickler: Wenn accDoDefaultAction für ein Menüelement in einem Standardsystemmenü verwendet wird, gibt S_OK zurück, führt die Aktion jedoch nicht aus, wenn das in der Zugriffstaste verwendete Zeichen (das unterstrichene Zeichen im Text eines Menüelementnamens, auch als mnemonisch bezeichnet) ?, !, @oder ein anderes Zeichen ist, das die UMSCHALTTASTE oder eine andere Modifizierertaste erfordert. Dies geschieht auch auf internationalen Tastaturen mit einem Zugriffstastenzeichen, bei dem die ALT GR-Taste gedrückt werden muss. Dies ist kein Problem für Menüs in anderen Anwendungen, z. B. Microsoft Office oder Windows Internet Explorer. Weitere Informationen zu Zugriffsschlüsseln finden Sie unter IAccessible::get_accKeyboardShortcut.

Während accDoDefaultAction sofort zurückgegeben werden soll, blockieren einige Implementierungen die Rückgabe. Wenn beispielsweise beim Klicken auf einen Link ein Dialogfeld angezeigt wird, blockieren einige Implementierungen die Rückgabe, bis das Dialogfeld geschlossen wird. Solche Verzögerungen können verhindern, dass Clientanwendungen ein Dialogfeld verarbeiten. Server sollten Implementierungen vermeiden, die von einem Block zurückgegeben werden.

Serverbeispiel

Das folgende Beispiel zeigt eine mögliche Implementierung für ein benutzerdefiniertes Listensteuerelement, dessen Standardaktion ein Doppelklicken auf ein untergeordnetes Element ist. Um eine Blockierung zu verhindern, sendet die -Methode eine benutzerdefinierte Meldung, die, wenn sie vom Steuerelementfenster empfangen wird, eine Aktion auslöst, z. B. das Anzeigen von Elementeigenschaften.

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

Clientbeispiel

Die folgende Beispielfunktion führt die Standardaktion für ein Steuerelement aus.

HRESULT DoAction(IAccessible* pAcc)
{
        VARIANT varId;
        varId.vt = VT_I4;
        varId.lVal = CHILDID_SELF;
        return pAcc->accDoDefaultAction(varId);
}

Anforderungen

   
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 Server 4.0 mit SP6 und höher und Windows 95

Weitere Informationen

Anhang A: Referenz zu unterstützten Benutzeroberflächenelementen

DefaultAction-Eigenschaft

Iaccessible

IAccessible::get_accDefaultAction

IAccessible::get_accKeyboardShortcut

VARIANTE