Freigeben über


IOleInPlaceFrame::TranslateAccelerator-Methode (oleidl.h)

Übersetzt Tastenkombinationen, die für den Frame des Containers vorgesehen sind, während ein Objekt aktiv ist.

Syntax

HRESULT TranslateAccelerator(
  [in] LPMSG lpmsg,
  [in] WORD  wID
);

Parameter

[in] lpmsg

Ein Zeiger auf die MSG-Struktur , die die Tastatureingabemeldung enthält.

[in] wID

Der Befehlsbezeichnerwert, der der Tastatureingabe in der vom Container bereitgestellten Zugriffstastentabelle entspricht. Container sollten diesen Wert verwenden, anstatt erneut zu übersetzen.

Rückgabewert

Diese Methode gibt S_OK bei Erfolg zurück. Weitere mögliche Rückgabewerte:

Rückgabecode Beschreibung
S_FALSE
Die Tastatureingabe wurde nicht verwendet.
E_INVALIDARG
Der angegebene Zeiger ist ungültig.
E_UNEXPECTED
Ein unerwarteter Fehler ist aufgetreten.

Hinweise

Hinweise für Anrufer

Die IOleInPlaceFrame::TranslateAccelerator-Methode wird indirekt von OleTranslateAccelerator aufgerufen, wenn eine für den Container (Frame) vorgesehene Tastenkombination empfangen wird.

Hinweise für Implementierer

Die Containeranwendung sollte die übliche Beschleunigerverarbeitung ausführen oder wID direkt verwenden und dann zurückgeben, um anzugeben, ob die Tastenkombination verarbeitet wurde. Wenn der Container eine MDI-Anwendung ist und die TranslateAccelerator-Funktion fehlschlägt, kann der Container die TranslateMDISysAccel-Funktion aufrufen, genau wie bei der üblichen Nachrichtenverarbeitung.

Direkte Objekte sollten die erste Möglichkeit erhalten, Beschleunigermeldungen zu übersetzen. Da von DLL-Objektanwendungen implementierte Objekte jedoch keine eigene Nachrichtenpumpe haben, erhalten sie ihre Nachrichten aus der Nachrichtenwarteschlange des Containers. Um sicherzustellen, dass das Objekt die erste Chance beim Übersetzen von Nachrichten hat, sollte ein Container immer IOleInPlaceFrame::TranslateAccelerator aufrufen, bevor er seine eigene Beschleunigerübersetzung durchführt. Umgekehrt sollte eine ausführbare Objektanwendung OleTranslateAccelerator aufrufen, nachdem TranslateAccelerator aufgerufen wurde und TranslateMessage und DispatchMessage nur dann aufgerufen werden, wenn beide Übersetzungsfunktionen fehlschlagen.

Sie sollten Zugriffstastentabellen für Container definieren, damit sie ordnungsgemäß mit Objektanwendungen funktionieren, die ihre eigenen Tastenkombinationsübersetzungen durchführen. Tabellen sollten wie folgt definiert werden.

"char", wID, VIRTKEY, CONTROL

Dies ist die am häufigsten verwendete Methode zum Beschreiben von Tastenkombinationen. Andernfalls können Tastaturanschläge während einer direkten Sitzung verloren gehen oder an das falsche Objekt gesendet werden.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile oleidl.h

Weitere Informationen

IOleInPlaceFrame

IOleInPlaceFrame::TranslateAccelerator

OleTranslateAccelerator

TranslateAccelerator

TranslateMDISysAccel