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
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database