Choix d’une méthode de menu contextuel statique ou dynamique
Cette rubrique est organisée comme suit :
- Choisir une méthode verb
- Étendre un menu contextuel
- Prise en charge des méthodes détaillées par système d’exploitation
- Rubriques connexes
Choisir une méthode verb
Il est fortement recommandé d’implémenter un menu contextuel à l’aide de l’une des méthodes de verbe statique.
Méthodes de verbe statique
Les verbes statiques sont les verbes les plus simples à implémenter, mais ils fournissent toujours des fonctionnalités enrichies. Choisissez toujours la méthode de menu contextuel la plus simple qui répond à vos besoins.
Verbe statique | Description |
---|---|
CreateProcess avec des paramètres de ligne de commande | Il s’agit du moyen le plus simple et le plus familier d’implémenter un verbe statique. Un processus est appelé par le biais d’un appel à la fonction CreateProcess avec les fichiers sélectionnés et tous les paramètres facultatifs passés en tant que ligne de commande. Cela ouvre le fichier ou le dossier. Cette méthode présente les limitations suivantes :
|
DropTarget/IDropTarget | Une activation détaillée basée sur COM signifie qu’elle prend en charge l’activation in-proc ou out-of-proc. DropTarget/IDropTarget prend également en charge la réutilisation d’un gestionnaire déjà en cours d’exécution lorsque l’interface IDropTarget est implémentée par un serveur local. Il exprime également parfaitement les éléments via l’objet de données marshalé et fournit une référence à la chaîne de site appelante afin que vous puissiez interagir avec l’appelant via QueryService. |
Windows 7 et versions ultérieures : IExecuteCommand | Méthode d’implémentation la plus directe. Comme il s’agit d’une méthode d’appel COM (comme DropTarget), cette interface prend en charge l’activation in-proc et out-of-proc. Le verbe implémente IExecuteCommand et IObjectWithSelection, et éventuellement IInitializeCommand. Les éléments sont transmis directement en tant que tableau d’éléments Shell, et plus de paramètres de l’appelant sont disponibles pour l’implémentation de verbe, y compris le point d’appel, l’état du clavier, etc. |
Windows 7 et versions ultérieures :ExplorerCommand/ IExplorerCommand | Permet aux sources de données qui fournissent leurs commandes de module de commande via IExplorerCommandProvider d’utiliser ces commandes comme verbes dans un menu contextuel. Étant donné que cette interface prend uniquement en charge l’activation in-process, il est recommandé d’utiliser des sources de données Shell qui doivent partager l’implémentation entre les commandes et les menus contextuels. |
Remarque
IExplorerCommand est un hybride entre un verbe statique et dynamique. IExplorerCommand a été déclaré dans Windows Vista, mais sa capacité à implémenter un verbe dans un menu contextuel est nouvelle pour Windows 7.
Pour plus d’informations sur les requêtes IDropTarget et Shell pour les attributs d’association de fichiers, consultez Types perçus et Inscription d’application.
Méthodes de verbe dynamique préférées
Les méthodes de verbe dynamique suivantes sont préférées :
Type de verbe | Description |
---|---|
Verbe statique (répertorié dans le tableau précédent) + Syntaxe de requête avancée (AQS) | Ce choix obtient une visibilité détaillée dynamique. |
Windows 7 et versions ultérieures : IExplorerCommand | Ce choix permet une implémentation courante de verbes et de commandes d’explorateur affichés dans le module de commandes dans l’Explorateur Windows. |
Windows 7 et versions ultérieures : IExplorerCommandState + verbe statique | Ce choix obtient également une visibilité dynamique des verbes. Il s’agit d’un modèle hybride où un gestionnaire in-process simple est utilisé pour calculer si un verbe statique donné doit être affiché. Cela peut être appliqué à toutes les méthodes d’implémentation de verbes statiques pour obtenir un comportement dynamique et réduire l’exposition de la logique in-process. IExplorerCommandState présente l’avantage de s’exécuter sur un thread d’arrière-plan et évite ainsi le blocage de l’interface utilisateur. Il est considérablement plus simple que IContextMenu. |
Méthodes dynamiques déconseillées
IContextMenu est la méthode la plus puissante, mais aussi la plus complexe à implémenter. Il est basé sur des objets COM in-process qui s’exécutent sur le thread de l’appelant, qui généralement l’Explorateur Windows, mais peut être n’importe quelle application hébergeant les éléments. IContextMenu prend en charge la visibilité des verbes, l’ordre et le dessin personnalisé. Certaines de ces fonctionnalités ont été ajoutées aux caractéristiques de verbe statique, telles qu’une icône à associer à une commande, et IExplorerCommand pour gérer la visibilité.
Si vous devez étendre le menu contextuel d’un type de fichier en inscrivant un verbe dynamique pour le type de fichier, suivez les instructions fournies dans La personnalisation d’un menu contextuel à l’aide de verbes dynamiques.
Étendre un menu contextuel
Après avoir choisi une méthode de verbe, vous pouvez étendre un menu contextuel pour un type de fichier en inscrivant un verbe statique pour le type de fichier. Pour plus d’informations, consultez Création de gestionnaires de menus contextuels.
Prise en charge des méthodes détaillées par système d’exploitation
La prise en charge des méthodes d’appel de verbes par système d’exploitation est répertoriée dans le tableau suivant.
Verb, méthode | Windows XP | Windows Vista | Windows 7 et au-delà |
---|---|---|---|
CreateProcess | X | X | X |
DDE | X | X | X |
DropTarget | X | X | X |
ExecuteCommand | X | X | |
ExplorerCommand | X | ||
ExplorerCommandState | X |
Rubriques connexes
-
Meilleures pratiques pour les gestionnaires de menus contextuels et les verbes de sélection multiple
-
Personnalisation d’un menu contextuel à l’aide de verbes dynamiques