IsAccelerator

Determines whether the keystroke maps to an accelerator in the given accelerator table.

BOOL IsAccelerator(
  HACCEL hAccel,      //Handle to accelerator table
  INT cAccelEntries,  //Number of entries in the accelerator table
  LPMSG lpMsg,        //Pointer to the keystroke message to be 
                      // translated
  WORD * lpwCmd       //Pointer to return the corresponding command 
                      // identifier
);
 

Parameters

hAccel
[in] Handle to the accelerator table.
cAccelEntries
[in] Number of entries in the accelerator table.
lpMsg
[in] Pointer to the keystroke message to be translated.
lpwCmd
[out] Pointer to where to return the corresponding command identifier if there is an accelerator for the keystroke. It may be NULL.

Return Values

TRUE
The message is for the object application.
FALSE
The message is not for the object and should be forwarded to the container.

Remarks

While an object is active in-place, the object always has first chance to translate the keystrokes into accelerators. If the keystroke corresponds to one of its accelerators, the object must not call the OleTranslateAccelerator function — even if its call to the Windows TranslateAccelerator function fails. Failure to process keystrokes in this manner can lead to inconsistent behavior.

If the keystroke is not one of the object's accelerators, then the object must call OleTranslateAccelerator to let the container try its accelerator translation.

The object's server can call IsAccelerator to determine if the accelerator message belongs to it. Some servers do accelerator translation on their own and do not call TranslateAccelerator. Those applications will not call IsAccelerator, because they already have the information.

QuickInfo

  Windows NT: Use version 3.1 or later.
  Windows: Use Windows 95 or later.
  Windows CE: Unsupported.
  Header: Declared in ole2.h.
  Import Library: Included as a resource in ole32.dll.

See Also

OleTranslateAccelerator, TranslateAccelerator in Win32