I file virtuali vengono aperti da file temporanei Internet
Domanda
Ho creato un'estensione dello spazio dei nomi con root su Desktop.Lo scopo principale dell'estensione è fornire un elenco virtuale di file ZIP che rappresentano un elenco di directory configurabili.Quando l'utente fa clic su uno di questi elementi, il contenuto della directory correlata viene compresso e il file ZIP risultante viene archiviato in una cartella della cache.
Tutto questo funziona bene a parte un problema minore.Se andiamo in Esplora risorse, apriamo l'estensione e facciamo doppio clic su un elemento, il file aperto è quello dalla cache.[CORRETTO]
Se invece lo apriamo tramite una finestra di dialogo Apri, il file aperto proviene da una directory di file temporanei Internet.[SBAGLIATO]
Cosa devo cambiare affinché la finestra di dialogo Apri (se utilizzata ad esempio tramite notepad.exe) per aprire il file dalla cartella cache e non dai file temporanei Internet.Ho provato a inviare sempre il nome file qualificato in IShellFolder::GetDisplayNameOf ma senza fortuna.
Soluzione 2
Il problema è stato risolto mascherando SFGAO_FILESYSTEM
negli attributi restituiti dall'implementazione del metodo di interfaccia IShellFolder::GetAttributesOf.
Altri suggerimenti
Sembra che tu non stia passando nella directory iniziale corretta (nel parametro lpstrInitialDir o lpstrFile della tua struttura OPENFILENAME).
Inserisci la directory della cache in lpstrInitialDir e lascia vuoto lpstrFile e dovrebbe funzionare.