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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top