Обработка вложенного контейнера

Место, где разработчики плагинов могут поделиться своим опытом.
Post Reply
rivitna
Posts: 35
Joined: Wed 30 Nov, 2016 10:58
Has thanked: 1 time
Been thanked: 2 times

Обработка вложенного контейнера

Post by rivitna »

Пишу плагин с эмулируемой файловой системой, где некоторые элементы сами могут быть контейнерами. Есть большее желание сделать в плагине функционал по просмотру содержимого таких контейнеров. При этом, сами вложенные контейнеры не имею специфичных имен, понять, что это контейнер, можно только проанализировав его структуру.

При нажатии на первоначальный файл-контейнер все логично: вызывается AnalyseW. а по ее результатам запускается плагин OpenW. При нажатии же на вложенный контейнер в эмулируемой файловой системе, файл извлекается в Temp, также запускается AnalyseW и т.п.

Собственно вопрос: как сделать так, чтобы функционал по анализу структуры вложенных контейнеров осуществлялся в AnalyseW только на извлеченные из исходного контейнера элементы и не работал по всем обычным файлам?

Решение в виде предварительного анализа всей структуры эмулируемой файловой системы и установки атрибута каталога на вложенные контейнеры не устраивает, так как они сами по себе тоже представляет интерес.
Пока решение видится в таком виде: идентифицировать в AnalyseW извлеченные в GetFilesW элементы и обрабатывать только их.

Если есть другие решения, особенно в рамках Plugin API, рад был бы услышать.
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Обработка вложенного контейнера

Post by zg »

rivitna wrote:Решение в виде предварительного анализа всей структуры эмулируемой файловой системы и установки атрибута каталога на вложенные контейнеры не устраивает, так как они сами по себе тоже представляет интерес.
можно не устанавливать атрибут каталога, но при нажатии на enter заходить как в каталог.
rivitna
Posts: 35
Joined: Wed 30 Nov, 2016 10:58
Has thanked: 1 time
Been thanked: 2 times

Обработка вложенного контейнера

Post by rivitna »

Спасибо за совет!
Хотелось бы уточнить, правильно ли я понял подход:
1) ProcessPanelInputW;
2) PanelControl(FCTL_GETCURRENTPANELITEM);
3) проверка содержимого текущего элемента, если контейнер, то внутри плагина изменить текущий каталог;
4) PanelControl(FCTL_UPDATEPANEL), PanelControl(FCTL_REDRAWPANEL)
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Обработка вложенного контейнера

Post by zg »

да, всё верно.
Post Reply

Return to “Разработка плагинов”