Called by the object application, allowing the container to translate its accelerators pointed to by lpFrameInfo.

HRESULT OleTranslateAccelertor(

//Possible location to send keystrokes
//Accelerator table obtained from container
LPMSG lpmsg
//Structure containing the keystroke



Points to the IOleInPlaceFrame interface where the keystroke might be sent.


Points to an OLEINPLACEFRAMEINFO structure containing the accelerator table obtained from the container.


Points to an MSG structure containing the keystroke.

Return Values


Indicates the keystroke was processed.


Indicates the object should continue processing this message.


Indicates one of the arguments is invalid.


Indicates an unexpected error occurred.


While an object is UI active, it always has first chance at translating any messages received. If the object does not want to translate the message, it calls OleTranslateAccelerator to give the container a chance. If the keyboard input matches an accelerator found in the container-provided accelerator table, OleTranslateAccelerator passes the message and its command identifier on to the container through the IOleInPlaceFrame::TranslateAccelerator method. This method returns S_OK if the keystroke is consumed; otherwise it returns S_FALSE.

The OleTranslateAccelerator function is intended to be called only by local server object applications and not by in-process server objects. In the case of a local server object application, keyboard input goes directly to the object application's message pump. If the object does not translate the key, OleTranslateAccelerator gives the container application an opportunity to do it. In the case of an in-process server object, the keyboard input goes directly to the container's message pump.

Note Accelerator tables for containers should be defined so they will work properly with object applications that do their own accelerator keystroke translations. These tables should take the form:


This is the most common way to describe keyboard accelerators. Failure to do so can result in keystrokes being lost or sent to the wrong object during an in-place session.

Objects can call the IsAccelerator function to see whether the accelerator keystroke belongs to the object or the container.

See Also

IsAccelerator, IOleInPlaceFrame::TranslateAccelerator

Software for developers
Delphi Components
.Net Components
Software for Android Developers
More information resources
Unix Manual Pages
Delphi Examples
Databases for Amazon shops developers
Amazon Categories Database
Browse Nodes Database