2014-06-25 3 views
1

experts fenêtres Bonjour,Fenêtres d'extension Shell: meilleure communication entre ContextMenu et IconOverlay?

Je suis à la recherche d'un moyen simple d'activer une superposition sur les fichiers en utilisant le menu contextuel, tortoisesvn donne un exemple de ce qui peut être fait, mais il est très complexe pour mon simple besoin,

pour l'instant je suis à la recherche C++ façon:

http://www.codeproject.com/Articles/545781/NET-Shell-Extensions-Shell-Icon-Overlay-Handlers

http://www.codeproject.com/Articles/10104/Add-a-context-menu-to-the-Windows-Explorer

la question est de créer le lien entre les deux ce lien suggère de faire une carte, mais je suis puzzle de tout à fait sur la façon dont

What the best Language to use when creating Windows Shell Context Menu?

Merci pour la lecture, Pierre

+0

Le menu contextuel et la superposition ne communiquent pas entre eux. Au lieu de cela, ils communiquent avec un arrière-plan commun qui maintient l'état d'extension pour tous les fichiers. –

+0

merci pour la clarification, c'est précisément ce back end que j'essaye de créer – Pierrot

Répondre

1

Vous pouvez utiliser le Registre, par exemple stocker une valeur Enabled dans la clé HKEY_CURRENT_USER\YourCompany\YourApp. Lorsque l'utilisateur exécute votre élément de menu pour activer/désactiver la fonctionnalité, écrivez la valeur appropriée dans Enabled puis appelez SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil). Cela entraînera le shell à relire les icônes, y compris les icônes de votre extension de superposition. Dans la méthode IsMemberOf de votre gestionnaire IconOverlay, vérifiez votre valeur Enabled et retour S_FALSE si la fonctionnalité a été désactivée.

+0

Merci c'est une très belle façon de le faire, Je vais le tester tout de suite – Pierrot

+0

cela fonctionne msdn référence est https: // msdn .microsoft.com/fr-fr/library/windows/desktop/bb762118% 28v = vs.85% 29.aspx meilleure chose à faire est de notifier le système de fichiers, de cette façon l'explorateur sera averti quand même – Pierrot