В новых версиях Windows (по крайней мере, в Windows 7, но у меня есть основания полагать, что это происходит в Vista с) IFileDialog
(и, следовательно, IFileOpenDialog
и IFileSaveDialog
) автоматически добавляет шаблон подстановочного знака в файлописание типа, если они не найдены.
Это хорошая функция, облегчающая использование, повышая согласованность и соблюдение правил.Но иногда это не желательно.Если допустимых расширений много (например, «Все изображения»), то соответствующая запись в комбинированном списке слишком длинная.Хуже всего то, что это даже не задокументировано, и я нашел только примечание об этом (подтверждающее мои наблюдения) в статье CodeProject .
В Windows 7 проверка обратной совместимости (как упомянуто Статья CodeProject ) не так сильна, и кажется, что любые шаблоны, добавленные вручную в описание, будут препятствовать автоматическому добавлению.На это уже указывал ответ на другой вопрос .И все же это решение далеко от идеального.(Я решил снова задать тот же вопрос, так как считаю, что предыдущий был плохо помечен и описан: (1) Сначала я нашел его, посмотрев похожие вопросы, предложенные StackOverflow, мои предыдущие запросы в Google не делали 'не нашел его и (2) проблема носит общий характер и не ограничивается только Delphi.)
Как это предотвратить?
Обратите внимание, что я должен использовать IFileDialog
, потому что мне нужны его настройкипредложения.(Таким образом, переключение в диалоговое окно, создаваемое GetOpenFileName
и GetSaveFileName
, не вариант.)