Подкласс Windows File Explorer
В моем программном обеспечении я использую диалоги выбора файлов и папок. Эти средства выбора позволяют задавать фильтры типов файлов, поэтому я могу сказать, что отображаются только файлы XML. Это хорошо работает.
Мне нужно углубиться в некоторые xml-файлы и показать только те, которые действительны для схемы. Поэтому я хочу показать пользователю только те XML-файлы определенного типа.
Я не хочу писать код драйвера устройства. Мне было интересно, что возможно какое-то подклассификация проводника Windows. Есть ли какой-то механизм обратного вызова?
Одна идея может заключаться в использовании пользовательских свойств файлов, поэтому отдельная программа может пометить файлы XML в структуре каталогов с помощью специального свойства. Затем в диалоговом окне выбора файлов можно было бы выполнить поиск только тех файлов, которые помечены как таковые. Возможно, другие способы возможны.
1 ответ
При вызове GetOpenFileName устанавливается флаг OFN_ENABLEHOOK. Позволяет получать уведомления из открытого диалога. Одним из уведомлений является CDN_INCLUDEITEM. Внутри вашего обработчика у вас будет IShellFolder папки и PItemIDList текущего файла для вставки в список файлов. Если процедура подключения возвращает ноль, диалоговое окно исключает элемент из списка элементов. Чтобы включить элемент, верните ненулевое значение из процедуры подключения.