Ситуация такая:
В ответ на вызов AnalyseW я сообщаю Far'у, что буду открывать файл как архив.
При вызове OpenW обрабатываю файл в соответствии со своей логикой (не эмулируя панель, показываю картинку в плагине ImageView).
После этого хочу установить пометки на файлах активной панели и переместить курсор на нужный элемент, т.е. вызвать AdvControl(FCTL_REDRAWPANEL), но тут у меня начинаются проблемы - файлы помечаются и курсор перемещается, но вернув управление Far'у он (Far) снова обновляет панель теряя мои пометки и позицию курсора. Как оставить сделанные пометки?
Актуально только при открытии через связку AnalyseW + OpenW. При обработке префикса можно смело вернуть INVALID_HANDLE_VALUE, что не приведёт к сбросу панели.
Функция из плагина GetFindDataW не экспортируется, из функции AnalyseW возвращается NULL.
AnalyseW + OpenW + FCTL_REDRAWPANEL
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Re: AnalyseW + OpenW + FCTL_REDRAWPANEL
Я тут посмотрел наПри вызове OpenW обрабатываю файл в соответствии со своей логикой (не эмулируя панель, показываю картинку в плагине ImageView).
FCTL_REDRAWPANEL тут не при чём, т.к. "return NULL" - это как раз, внезапно, эмулирование панели, ибо:
Но для OpenFrom == OPEN_ANALYSE возвращать INVALID_HANDLE_VALUE тоже нельзя, т.к. если пользователь закроет картинку по Enter, а плагин скажет INVALID_HANDLE_VALUE, то Enter уйдет дальше и картинка полетит в ShellExecute. Возвращать надо (HANDLE)-2.OpenW wrote:Вы можете использовать эту функцию для реализации плагинов, работающих без создания файловых панелей. Просто выполните все необходимые действия и верните INVALID_HANDLE_VALUE.