Подкласс Windows File Explorer

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

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

Я не хочу писать код драйвера устройства. Мне было интересно, что возможно какое-то подклассификация проводника Windows. Есть ли какой-то механизм обратного вызова?

Одна идея может заключаться в использовании пользовательских свойств файлов, поэтому отдельная программа может пометить файлы XML в структуре каталогов с помощью специального свойства. Затем в диалоговом окне выбора файлов можно было бы выполнить поиск только тех файлов, которые помечены как таковые. Возможно, другие способы возможны.

1 ответ

Решение

При вызове GetOpenFileName устанавливается флаг OFN_ENABLEHOOK. Позволяет получать уведомления из открытого диалога. Одним из уведомлений является CDN_INCLUDEITEM. Внутри вашего обработчика у вас будет IShellFolder папки и PItemIDList текущего файла для вставки в список файлов. Если процедура подключения возвращает ноль, диалоговое окно исключает элемент из списка элементов. Чтобы включить элемент, верните ненулевое значение из процедуры подключения.

Другие вопросы по тегам