IOleInPlaceFrame::TranslateAccelerator
Translates
accelerator keystrokes intended for the container s frame while an object is
active in place.
HRESULT TranslateAccelerator(
LPMSG lpmsg, |
//Pointer to structure |
WORD wID |
//Command identifier value |
); |
|
Parameters
lpmsg
[in] Pointer
to the MSG structure containing the keystroke message.
wID
[in] Command
identifier value corresponding to the keystroke in the container-provided
accelerator table. Containers should use this value instead of translating
again.
Return Values
This method
supports the standard return values E_INVALIDARG and E_UNEXPECTED, as well as
the following:
S_OK
The keystroke
was used.
S_FALSE
The keystroke
was not used.
Remarks
Notes to Callers
The IOleInPlaceFrame::TranslateAccelerator
method is called indirectly by OleTranslateAccelerator
Notes to Implementers
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
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
TranslateAccelerator, TranslateMessage