ProcessEditorInputW

Programming Far Manager plugins

ProcessEditorInputW

Функция ProcessEditorInputW вызывается всякий раз, когда внутренний редактор Far Manager обрабатывает событие от клавиатуры или мыши.
intptr_t WINAPI ProcessEditorInputW(
  const struct ProcessEditorInputInfo *Info
);

Параметры

Info
Указатель на структуру ProcessEditorInputInfo. Эта структура содержит информацию о последнем событии от клавиатуры или мыши.
В начале функции проверьте, что поле ProcessEditorInputInfo.StructSize >= sizeof(ProcessEditorInputInfo).

Возвращаемое значение

  • Если плагин должен передать управление в редактор Far Manager`а, то верните 0.
  • Если плагин в полной мере отработал событие или вы хотите, чтобы Far Manager игнорировал это событие, то верните 1.

Замечания

  1. Плагин должен корректно обрабатывать входные события путём анализа поля Info->INPUT_RECORD.EventType и, в случае если плагин данное событие не обрабатывает, вернуть управление в Far Manager.
  2. Во время "проигрывания" макроса клавиатурные события (KEY_EVENT) имеют "новый" тип - поле Info->INPUT_RECORD.EventType равно значению 0x8001.
  3. Плагин может вызвать команду EditorControl из этой функции, но будьте осторожны, когда вызываете здесь ECTL_PROCESSINPUT, потому что эта команда вызывает функцию ProcessEditorInputW снова. Таким образом, плагин должен сам предотвратить такой самовызов, или он впадёт в бесконечный цикл.
  4. Плагину не приходят клавиши: Ctrl+W, F11, Alt+F9, F12, Ctrl+Tab, Ctrl+Shift+Tab, Alt+Ins и Ctrl+Alt+Shift.
  5. Плагину приходят клавиши (с ограничениями):
    • Alt+F5 - если плагин PrintMan не установлен
    • Alt+F11 - если редактор модальный
    • F6 - если есть запрет на переключение в программу просмотра (при вызове функции Editor не указан флаг EF_ENABLE_F6).
Смотрите также: