IOleInPlaceFrame::TranslateAccelerator
Translates accelerator keystrokes intended for the container's frame while an
object is active in place.
HRESULT TranslateAccelerator(
| LPMSG lpmsg, 
 | //Points to MSG structure 
 | 
| WORD wID 
 | //Command Identifier value 
 | 
| ); 
 | 
 | 
Parameters
lpmsg
[in] Points to an 
MSG structure containing the keystroke message.
wID
[in] Contains the command identifier value corresponding to the keystroke in
the container-provided accelerator table. Containers should use this value
instead of translating again.
Return Values
S_OK
The keystroke was used.
S_FALSE
The keystroke was not used.
E_INVALIDARG
One or more arguments are invalid.
E_UNEXPECTED
An unexpected error occurred.
Comments
Notes to Callers
The 
IOleInPlaceFrame::TranslateAccelerator method is called indirectly by 
OleTranslateAccelerator when a keystroke accelerator intended for the container (frame) is received. 
Notes to Implementors
The container application should perform its usual accelerator processing, or
use 
wID directly, and then return, indicating whether the keystroke accelerator was
processed. If the container is an MDI application and the Windows 
TranslateAccelerator call fails, the container can call the Windows 
TranslateMDISysAccel function, just as it does for its usual message processing.
In-place objects should be given first chance at translating accelerator
messages. However, because objects implemented by DLL object applications do not
have their own message pump, they receive their messages from the container's
message queue. To ensure that the object has first chance at translating messages,
a container should always call 
IOleInPlaceActiveObject::TranslateAccelerator before doing its own accelerator translation. Conversely, an executable
object application should call 
OleTranslateAccelerator after calling 
TranslateAccelerator, calling 
TranslateMessage and 
DispatchMessage only if both translation functions fail.
Note  You should define accelerator tables for containers so they will work
properly with object applications that do their own accelerator keystroke
translations. Tables should be defined  as follows: 
"char", wID, VIRTKEY, CONTROL 
 
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.
See Also
OleTranslateAccelerator, 
IOleInPlaceActiveObject::TranslateAccelerator
TranslateAccelerator, TranslateMessage, DispatchMessage, TranslateMDISysAccel in Win32
			
				- Software for developers
				
- 
				Delphi Components
 .Net Components
 Software for Android Developers
- More information resources
				
- 
				MegaDetailed.Net
 Unix Manual Pages
 Delphi Examples