IPreviewHandler::TranslateAccelerator-Methode (shobjidl_core.h)
Weist den Vorschauhandler an, eine Tastatureingabe zu behandeln, die von der Nachrichtenpumpe des Prozesses übergeben wird, in dem der Vorschauhandler ausgeführt wird.
Syntax
HRESULT TranslateAccelerator(
[in] MSG *pmsg
);
Parameter
[in] pmsg
Typ: MSG*
Ein Zeiger auf eine Fenstermeldung.
Rückgabewert
Typ: HRESULT
Wenn die Tastatureingabemeldung vom Vorschauhandler verarbeitet werden kann, verarbeitet der Handler sie und gibt S_OK zurück. Wenn der Vorschauhandler die Tastatureingabemeldung nicht verarbeiten kann, bietet er sie dem Host mithilfe von TranslateAccelerator an. Wenn der Host die Nachricht verarbeitet, gibt diese Methode S_OK zurück. Wenn der Host die Nachricht nicht verarbeitet, gibt diese Methode S_FALSE zurück.
Hinweise
Diese Funktion wird nur von der Nachrichtenpumpe des Prozesses aufgerufen, in dem der Vorschauhandler ausgeführt wird. Diese Funktion ermöglicht das Weiterleiten von Tastatureingabemeldungen von der Nachrichtenpumpe an den Host mithilfe von TranslateAccelerator.
Wenn der Vorschauhandler eine Nachricht (eine Tastatureingabe) von seiner Nachrichtenpumpe empfängt, ist er für die Weiterleitung an den Host verantwortlich.
Wenn IObjectWithSite::SetSite im Vorschauhandler aufgerufen wird, wird ein Verweis auf den Host des Vorschauhandlers übergeben. Das -Objekt sollte sofort QueryInterface für diese Website für IPreviewHandlerFrame und diesen Zeiger speichern.
Der Vorschauhandler hat dann die Möglichkeit, GetWindowContext aufzurufen, um eine Zugriffstastentabelle zum Filtern von Tastaturanschlägen abzurufen. Die Vorschau kann dann Tastenanschläge mit dieser Beschleunigertabelle mithilfe von IsAccelerator vergleichen und IPreviewHandler::TranslateAccelerator nur für Tastenanschläge aufrufen, die übereinstimmen. Dies kann zu einer geringfügigen Leistungssteigerung führen. Der Vorschauhandler muss die Acceleratortabelle mithilfe der DestroyAcceleratorTable-Funktion freigeben.
Es ist auch akzeptabel, dass der Vorschauhandler die Verwendung der Tabelle vollständig vermeidet und IPreviewHandler::TranslateAccelerator für jede Tasteneingabe aufruft. Beachten Sie, dass alle Vorschauhandler, die in Prozessen mit niedriger Integrität ausgeführt werden, diese Methode verwenden müssen.
Wenn eine Tabulatortaste gedrückt wird, ist ein Vorschauhandler über mehr als einen Tabstopp für das Verschieben des Tastaturfokus innerhalb dieser Tabstopps verantwortlich. Wenn sich der aktuelle Tastaturfokus auf einem dieser Registerkartenstopps befindet und das Verschieben des Tastaturfokus zu einem anderen Tabstopp für die Vorschau verschoben würde, sollte die Vorschau beim nächsten Tabstopp SetFocus aufrufen. Andernfalls sollte die Tabulatortaste an den Host weitergeleitet werden, um das Tabbing aus der Vorschau zu verarbeiten.
Anforderungen
Unterstützte Mindestversion (Client) | Windows Vista, Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | shobjidl_core.h (shobjidl.h einschließen) |
Verteilbare Komponente | Windows Search 4 oder höher |