2009-10-28 4 views
2

Je parle des extensions shell Windows.Comment désactiver l'extension Shell dans la boîte de dialogue FileOpen

J'ai une extension shell qui pourrait montrer les propriétés spécifiques de mon type de fichier personnalisé, par exemple, * .filetype. Et bien sûr cela provoquera le chargement de mes DLL d'extension shell dans le processus explorer.exe. Mais maintenant, si je lance la boîte de dialogue FileOpen dans n'importe quelle application et vérifie les propriétés du fichier dans cette boîte de dialogue (notepad par exemple), ces DLL d'extension shell seront chargées dans le processus notepad.exe, ce que je veux éviter.

Est-il possible de désactiver une extension de shell spécifique dans FileOpen Dialog?

Merci.

Répondre

2

Créez une shim dll qui ne fait que charger votre vraie (importante) extension shell dll. Le seul travail de cette DLL est de vérifier si le processus en cours est "explorer.exe". Si c'est le cas, la cale charge la DLL réelle et transmet tous les appels là-bas. Si ce n'est pas le cas, le shim ne charge pas votre vraie DLL mais renvoie simplement E_NOTIMPL ou quelque chose comme ça à toutes les demandes.

+1

mais nous devons faire de telles choses pour chaque extension de shell que nous voulons. –

Questions connexes