OFN_ENABLEHOOK изменяет внешний вид GetOpenFileName () - PullRequest
2 голосов
/ 19 января 2011

Почему при добавлении подключаемой процедуры (с флагами OFN_ENABLEHOOK и OFN_EXPLORER) в GetOpenFileName () в Windows 7 отображается другое диалоговое окно, если подключаемая процедура просто возвращает FALSE без каких-либо действий?


Обновление:

Видимо получить Vista / Windows 7 взгляд с крючком невозможно ... может кто-то подтвердить или опровергнуть это?

1 Ответ

5 голосов
/ 19 января 2011

Причина этого в том, что MS полностью реорганизовала файловые диалоги для Vista. Хуки используются для расширения файлового диалога путем предоставления файла ресурсов. Это дает настройщику слишком много власти. Они могут слишком легко изменять стандартные элементы диалога, и многие приложения сделали это. Реорганизация диалогов может привести к поломке многих приложений, использующих хуки. Те попытались бы манипулировать элементами диалога, которых там не было, или которые были реализованы по-другому. Устаревшие версии диалогов остаются для таких приложений, чтобы «зацепиться».

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

...