Virtuelle Dateien werden geöffnet von Temporary Internet Files
Frage
Ich habe eine Namespace-Erweiterung erstellt, die unter Desktop-wurzeln. Der Hauptzweck der Erweiterung ist eine virtuelle Liste von ZIP-Dateien zur Verfügung zu stellen, die eine Liste von konfigurierbaren Verzeichnissen darstellen. Wenn der Benutzer eine der diese Elemente klickt der Inhalt des zugehörigen Verzeichnisses wird an Ort und Stelle und die resultierende ZIP-Datei komprimiert in einem Cache-Ordner gespeichert.
Das alles funktioniert gut beiseite ein kleines Problem. Wenn wir Windows Explorer gehen, öffnen Sie die Erweiterung und doppelt auf ein Element klicken die geöffnete Datei ist derjenige aus dem Cache. [RICHTIG]
Wenn auf der anderen Seite haben wir es durch einen offenen Dialog öffnen, ist die geöffnete Datei die man von einem temporären Internet-Dateien-Verzeichnis. [FALSCH]
Was muß ich für den Öffnen-Dialog ändern (wenn zum Beispiel Trog notepad.exe verwendet), um die Datei aus dem Cache-Ordner zu öffnen und nicht aus Temporäre Internetdateien. Ich habe versucht, Allways die qualifizierten Dateinamen in IShellFolder :: GetDisplayNameOf zu senden, aber ohne Erfolg.
Lösung 2
Das Problem durch Maskieren SFGAO_FILESYSTEM
in den Attributen durch Umsetzung der Schnittstellenmethode IShellFolder :: GetAttributesOf .
Andere Tipps
Es klingt wie Sie in der richtigen Ausgangsverzeichnis (im lpstrInitialDir oder LpstrFile Parameter Ihrer OPENFILE struct) sind nicht vorbei.
Geben Sie Ihre Cache-Verzeichnis in lpstrInitialDir und lassen LpstrFile leer und es sollte funktionieren.