ProcessEditorInputW
Функция
ProcessEditorInputW
вызывается всякий раз, когда внутренний редактор Far Manager обрабатывает событие от клавиатуры или мыши.
intptr_t WINAPI ProcessEditorInputW( const struct ProcessEditorInputInfo *Info );
Параметры
Info
Указатель на структуру ProcessEditorInputInfo. Эта структура содержит информацию о последнем событии от клавиатуры или мыши.
В начале функции проверьте, что поле
В начале функции проверьте, что поле
ProcessEditorInputInfo.StructSize >= sizeof(ProcessEditorInputInfo)
.Возвращаемое значение
- Если плагин должен передать управление в редактор Far Manager`а, то верните
0
. - Если плагин в полной мере отработал событие или вы хотите, чтобы Far Manager игнорировал это событие, то верните
1
.
Замечания
- Плагин должен корректно обрабатывать входные события путём анализа поля
Info->INPUT_RECORD.EventType
и, в случае если плагин данное событие не обрабатывает, вернуть управление в Far Manager. - Во время "проигрывания" макроса клавиатурные события (
KEY_EVENT
) имеют "новый" тип - полеInfo->INPUT_RECORD.EventType
равно значению0x8001
. - Плагин может вызвать команду EditorControl
из этой функции, но будьте осторожны, когда вызываете здесь ECTL_PROCESSINPUT,
потому что эта команда вызывает функцию
ProcessEditorInputW
снова. Таким образом, плагин должен сам предотвратить такой самовызов, или он впадёт в бесконечный цикл. - Плагину не приходят клавиши: Ctrl+W, F11, Alt+F9, F12, Ctrl+Tab, Ctrl+Shift+Tab, Alt+Ins и Ctrl+Alt+Shift.
- Плагину приходят клавиши (с ограничениями):
- Alt+F5 - если плагин PrintMan не установлен
- Alt+F11 - если редактор модальный
- F6 - если есть запрет на переключение в программу просмотра (при вызове функции Editor не указан флаг EF_ENABLE_F6).
Смотрите также: