Диалог открытия файлов Windows в Vista и выше поддерживает интерфейс IFileDialogEvents.
Одним из событий (или обратного вызова, если хотите) является событие OnFolderChanging
.Это позволяет исполнителю остановить навигацию в определенном месте.Использование этого события позволит вам прекратить ввод zip-файла в качестве папки, даже если эта возможность включена по умолчанию в установке Windows, на которой выполняется ваше приложение.Не знаю, как это разрешило бы навигацию в zip-архиве, если это не включено в самой Windows.
См. Интерфейс IFileDialogEvents (http://msdn.microsoft.com/en-us/library/bb775876(v=VS.85).aspx) для получения подробной информации.
AlphaControls, вероятно, использует этот метод.Чтобы сделать это самостоятельно, вам «нужно» только реализовать обработчик для события TOpenDialog.OnFolderChange (Спасибо, Дэвид).
Чтобы узнать больше об использовании Common Item Dialog , см.: http://msdn.microsoft.com/en-us/library/bb776913(v=VS.85).aspx
Примечание. Стандартные диалоги до Vista также поддерживают события, известные в этих версиях как уведомления.Он включает в себя уведомление FolderChange, но не FolderChanging, которое я могу найти.См. Общие диалоговые окна Уведомления (http://msdn.microsoft.com/en-us/library/ff468811(v=VS.85).aspx для списка поддерживаемых уведомлений. И Диалоговые окна (http://msdn.microsoft.com/en-us/library/ms632588(v=VS.85).aspx) для «входа» указывают на диалогящики.