# IOleControlSite::TranslateAccelerator

Instructs the control site to process the keystroke described in pMsg and modified by the flags in grfModifiers.

HRESULT TranslateAccelerator(

LPMSG pMsg , | //Pointer to the structure
DWORD grfModifiers | //Flags describing the state of the keys
); |

Parameters

pMsg
  [in] Pointer to the MSG structure describing the keystroke to be processed.
grfModifiers
  [in] Flags describing the state of the Control, Alt, and Shift keys. The value of the flag can be any valid KEYMODIFIERS enumeration values.

Return Values

S_OK
  The container processed the message.
S_FALSE
  The container did not process the message. This value must also be returned in all other error cases besides E_NOTIMPL.
E_NOTIMPL
  The container does not implement accelerator support.

Remarks

This method is called by a control that can be UI-active. In such cases, a control can process all keystrokes first through IOleInPlaceActiveObject::TranslateAccelerator, according to normal OLE Compound Document rules. Inside that method, the control can give the container certain messages to process first by calling IOleControlSite::TranslateAccelerator and using the return value to determine if any processing took place. Otherwise, the control always processes the message first. If the control does not use the keystroke as an accelerator, it passes the keystroke to the container through this method.

See Also

IOleInPlaceActiveObject::TranslateAccelerator, KEYMODIFIERS