2009-03-23 9 views
1

J'utilise la commande suivante dans un raccourci pour ouvrir mon lecteur virtuel dans l'Explorateur Windows. % SystemRoot% \ Explorer.exe/e, :: {MyExtension CLSID}C++: Comment ouvrir le dossier du lecteur IShellFolder à partir d'un raccourci

Le lecteur virtuel utilise l'interface IShellFolder et est une extension Shell. Il y a quelques dossiers prédéfinis dans celui-ci. Le problème est que je peux directement ouvrir le lecteur virtuel dans l'explorateur Windows en utilisant l'instruction ci-dessus mais je ne peux pas ouvrir directement l'un de ses dossiers.

Ce lien explique comment ouvrir un IShellFolder http://msdn.microsoft.com/en-us/library/bb776817(VS.85).aspx#

mais je ne suis pas sûr de savoir comment utiliser le objectname % SystemRoot param% \ Explorer.exe/e, :: {CLSID} Mon extension, nom_objet

Répondre

2

J'ai pris le GMail Drive Shell extension, l'ai installé et j'ai créé un dossier dans l'espace de noms. Ensuite, j'utilise la méthode ci-dessus (/ E, :: {CLSID}) pour créer le raccourci et ajouté ", foldername" à la fin.
Cela a fonctionné parfaitement, je pense que vous devez vérifier votre implémentation IPersistFolder::Initialize.

+0

Shay !! Y at-il un article qui explique la manière correcte d'implémenter la méthode IPersistFolder :: Initialize? Je veux revérifier la mise en œuvre. – A9S6

+0

Vérifiez cela: http://www.viksoe.dk/code/adfview.htm, quelqu'un a écrit un espace de noms de shell qui impliquent Initialize() correctement. –

Questions connexes