Question

J'ai créé une extension d'espace de nom enracinée dans le bureau. L’objectif principal de cette extension est de fournir une liste virtuelle de fichiers ZIP représentant une liste de répertoires configurables. Lorsque l'utilisateur clique sur l'un de ces éléments, le contenu du répertoire associé est compressé et le fichier ZIP obtenu est stocké dans un dossier de cache.

Tout cela fonctionne bien à part un problème mineur. Si nous allons dans l'explorateur Windows, ouvrons l'extension et double-cliquez sur un élément du fichier ouvert est celui du cache. [CORRECT]

Si par contre nous l'ouvrons par un dialogue ouvert, le fichier ouvert est un fichier provenant d'un répertoire de fichiers Internet temporaires. [INCORRECT]

Que dois-je changer pour que la boîte de dialogue Ouvrir (utilisée par exemple avec notepad.exe) ouvre le fichier à partir du dossier de cache et non à partir des fichiers Internet temporaires. J'ai toujours essayé d'envoyer le nom de fichier qualifié dans IShellFolder :: GetDisplayNameOf mais sans succès.

Était-ce utile?

La solution 2

Le problème a été résolu en masquant SFGAO_FILESYSTEM dans les attributs renvoyés par l'implémentation de la méthode d'interface IShellFolder :: GetAttributesOf .

Autres conseils

On dirait que vous ne passez pas dans le bon répertoire initial (dans le paramètre lpstrInitialDir ou lpstrFile de votre structure OPENFILENAME).

Entrez votre répertoire de cache dans lpstrInitialDir et laissez lpstrFile vide et cela devrait fonctionner.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top