2008-09-16 2 views
0

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

Все это отлично работает в сторону незначительной проблемы. Если мы перейдем к Проводнику Windows, откройте расширение и дважды щелкните элемент, который открыл файл из кеша. [CORRECT]

Если, с другой стороны, мы открываем его открытым диалоговым окном, открытый файл является одним из каталога временных файлов Интернета. [INCORRECT]

Что мне нужно изменить для Open Dialog (когда используется, например, notepad.exe), чтобы открыть файл из папки кэша, а не из временных файлов Интернета. Я попытался отправить все имя квалифицированного файла в IShellFolder :: GetDisplayNameOf, но без везения.

ответ

0

Проблема была устранена путем маскировки SFGAO_FILESYSTEM в атрибутах, возвращаемых методом интерфейса IShellFolder::GetAttributesOf.

0

Похоже, что вы не проходите в правильной начальной директории (в параметре lpstrInitialDir или lpstrFile структуры OPENFILENAME).

Введите свой каталог кеша в lpstrInitialDir и оставьте lpstrFile пустым, и он должен работать.

+0

Я не могу открыть файл напрямую. Это выполняется по модели программирования Shell, учитывая имя, указанное в IShellFolder :: GetDisplayNameOf. – 2008-09-18 14:59:01

Смежные вопросы