# ProcessKey

The ProcessKey function allows to override standard control keys processing in a plugin panel.

    int WINAPI ProcessKey(
      HANDLE hPlugin,
      int Key,
      unsigned int ControlState
    );

### Parameters

hPlugin
Plugin handle returned by OpenPlugin or OpenFilePlugin.
Key
Virtual key code.
Key may have the PKF_PREPROCESS flag set.
ControlState
Indicates control keys state. One or more flags from the FAR_PKF_FLAGS enum (except PKF_PREPROCESS).
For example, when `Shift-F7` is pressed, Key is equal to VK_F7 and ControlState is equal to PKF_SHIFT.

### Return value

Return FALSE to use standard FAR key processing. If the plugin processes the key combination by itself, it should return TRUE

### Remarks

- FAR 1.70 build 2051 and earlier versions:
  Because of FAR kernel implementation specifics this function does not receive the following keys: `Tab`, `Ctrl-F1`, `Ctrl-F2`, `Ctrl-B`, `Cltr-L`, `Ctrl-Q`, `Ctrl-T`, `Ctrl-O`, `Ctrl-P`, `Ctrl-I`, `Ctrl-U`, `Alt-F1`, `Alt-F2`, `Alt-F7`, `Ctrl-Down`, `Ctrl-Up`, `Ctrl-Left`, `Ctrl-Right`, `Ctrl-Num5`, `F9`, `Shift-F10`, `Ctrl-0..9`, `Alt-Ins`, `Ctrl-W`, `F11`, `Alt-F9`, `F12`, `Ctrl-Tab` and `Ctrl-Shift-Tab`.
  Since 1.70 build 2052 those restrictions no longer apply (refer to the remarks on the PKF_PREPROCESS flag)