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 |
---|---|
|
Das -Objekt unterstützt die -Methode nicht. Dieser Wert wird für Steuerelemente zurückgegeben, die keine Aktionen ausführen, z. B. Bearbeitungsfelder. |
|
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
IAccessible::get_accDefaultAction