Виртуальные файлы открываются из временных файлов Интернета.

StackOverflow https://stackoverflow.com/questions/71475

  •  09-06-2019
  •  | 
  •  

Вопрос

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

Все это работает хорошо, если не считать небольшой проблемы.Если мы зайдем в проводник Windows, откроем расширение и дважды щелкните элемент, то открытый файл будет файлом из кеша.[ПРАВИЛЬНЫЙ]

Если, с другой стороны, мы открываем его с помощью диалогового окна открытия, открытый файл находится в каталоге временных файлов Интернета.[НЕПРАВИЛЬНО]

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

Это было полезно?

Решение 2

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top