Question

J'ai créé une extension Windows Shell à l'aide d'ATL (Visual Studio 2008). Il comporte les modules suivants et chaque module est un objet simple ATL distinct avec son propre fichier .rgs à enregistrer: -

  1. IShellFolder / IShellView - > Pour un lecteur virtuel dans l'explorateur Windows
  2. IContextMenu / IShellExtInit - > Pour un menu contextuel fichiers et dossiers
  3. IShellIconOverlayIdentifier - Pour afficher les icônes de superposition sur les fichiers et les dossiers
  4. IShellPropSheetExt / IShellExtInit - > Pour une page de propriétés personnalisée dans Fichier & amp; Propriétés du dossier

Les opérations ci-dessus fonctionnent correctement sous WinXP et je suis en mesure de déboguer cette extension shell sous WinXP. Mais aussitôt que je passe à Vista, je ne reçois que des appels de méthodes pour (2) et (4). Le lecteur est créé dans l'Explorateur Windows, mais les méthodes sous-jacentes ne sont pas appelées lorsque je clique dessus. Bien que, lorsque je clique avec le bouton droit de la souris, je suis appelé (2) et que je sélectionne "Propriétés". pour un fichier ou un dossier, j'entre dans le code de (4).

Existe-t-il une interface qui me manque pour (1) et (3) sur Vista? Je n'ai pas trouvé de documentation complète et détaillée sur l'écriture de Shell Extensions for Vista sur MSDN. J'avais déjà lu les articles de CodeProject sur les extensions de shell.

Était-ce utile?

La solution

Le problème était dû à l'utilisation d'un pointeur SMART Xml. Il y avait eu des problèmes lorsque Release () a été appelé.

Vérifiez ce lien Internet Explorer se bloque lorsque MSXML2 :: IXMLDOMDocumentPtr - > Release () s'appelle

Autres conseils

Assurez-vous que vos extensions gèrent l'initialisation correctement, sinon le verclsid.exe ne laissera pas votre extension être chargée. verclsid.exe charge d’abord les extensions du shell et les vérifie rapidement avant d’envoyer un «ok» au shell indiquant qu’il est sans danger de charger l’extension.

Voir ici pour plus d'informations sur verclsid.exe.

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