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.

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top