Как интегрировать проводник windows в свое приложение?
Добрый день!
Пишу приложение расширяющее возможности стандартного проводника windows, и возникла проблема с реализацией того функционала, что уже есть в стандартном проводнике.
Основная проблема - корректный вывод файлов и папок с поддержкой всего комплекса мелочей который делают работу в нем удобней. Написать все самому с нуля - очень долго.
Можно ограничиться созданием расширения для стандартного проводника, но очень не хочется. Во-первых - потому что не имею опыта создания расширений и не знаю, как подступиться к этому вопросу, во-вторых - потому что мое приложений сильно меняет сам механизм работы проводника и умещать весь функционал на панельке расширения - не правильно.
Сам вопрос:
1. Можно ли, и если можно, то как, встроить в свою программу только файловую панель проводника? Но так, чтобы он поддерживал все функции стандартного (возможность переключения видов, контекстные меню и т.п.).
2. Если 1-й пункт невозможен - подскажите, куда копать для создания расширения проводника. И есть ли возможность влиять не только на панель расширения, но и на другие параметры (меню, оформление окна, подвал и т.п.)
Сейчас я пишу на Delphi XE5, но это не принципиально.
Вставьте WebBrowser (IE), или как оно там в Delphi, и загрузите в него URL папки. Если хотите проводник полностью (с интерфейсом), то только смотреть на MSDN. И то, не факт, что описано. WebBrowser выведет только список файлов, контекстные меню у файлов и у пустого места будут, переключение видов осуществляется через КМ пустого места.
Именно так я и делаю сейчас (через WebBrowser), но есть две проблемы: во первых не могу программно управлять видом папки, во вторых (что куда хуже) - не могу вывести произвольный список файлов (например для панели поиска). Это очень важный для меня функционал.
Для управления web-страницей загруженной в WebBrowser есть IHtmlDocument2, с помощью него можно получить доступ к любым элементам. А вот как быть со списком файлов - непонятно...
Если есть идеи - буду очень благодарен за любые советы.