Enregistrement de gestionnaires de commandes d’Assembly d’interopérabilitéRegistering Interop Assembly Command Handlers

Un VSPackage doit inscrire avec Visual StudioVisual Studio afin que l’environnement de développement intégré (IDE) achemine ses commandes correctement.A VSPackage must register with Visual StudioVisual Studio so that the integrated development environment (IDE) routes its commands properly.

Le Registre peut être mis à jour par une modification manuelle ou à l’aide d’un fichier d’inscription (.rgs).The registry can be updated either by manual editing or by using a Registrar (.rgs) file. Pour plus d’informations, consultez création de Scripts de bureau d’enregistrement.For more information, see Creating Registrar Scripts.

Managed Package Framework (MPF) fournit cette fonctionnalité via le ProvideMenuResourceAttribute classe.The Managed Package Framework (MPF) provides this functionality through the ProvideMenuResourceAttribute class.

Référence de Table de Format de commande ressources se trouvent dans des DLL de l’interface utilisateur de satellites non managé.Command Table Format Reference resources are located in unmanaged satellite UI dlls.

Inscription du Gestionnaire de commande d’un VSPackageCommand Handler Registration of a VSPackage

Un VSPackage agissant comme un gestionnaire pour l’interface utilisateur (IU)-en fonction des commandes nécessite une entrée de Registre nommée d’après le VSPackage GUID.A VSPackage acting as a handler for user interface (UI)-based commands requires a registry entry named after the VSPackage GUID. Cette entrée de Registre spécifie l’emplacement du fichier de ressources de l’interface utilisateur du VSPackage et de la ressource de menu dans le fichier.This registry entry specifies the location of the VSPackage's UI resource file and the menu resource within that file. L’entrée du Registre se trouve sous HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\<Version > \Menus, où <Version > est la version de Visual StudioVisual Studio, par exemple 9.0.The registry entry itself is located under HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\<Version> \Menus, where <Version> is the version of Visual StudioVisual Studio, for example 9.0.

Note

Le chemin d’accès racine de HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\<Version > peut être remplacée par une autre racine quand le Visual StudioVisual Studio shell est initialisé.The root path of HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\<Version> can be overridden with an alternate root when the Visual StudioVisual Studio shell is initialized. Pour plus d’informations sur le chemin d’accès racine, consultez l’installation de VSPackages avec Windows Installer.For more information about the root path, see Installing VSPackages With Windows Installer.

L’entrée de Registre de ressource CTMENUThe CTMENU Resource Registry Entry

La structure de l’entrée de Registre est :The structure of the registry entry is:

HKEY_LOCAL_MACHINE\Software\VisualStudio\<Version>\  
  Menus\  
    <GUID> = <Resource Information>  

<GUID> est le GUID du VSPackage sous la forme {XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX}.<GUID> is the GUID of the VSPackage in the form {XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX}.

<Informations sur les ressources > se compose de trois éléments séparés par des virgules.<Resource Information> consists of three elements separated by commas. Ces éléments sont, dans l’ordre :These elements are, in order:

<Chemin d’accès à la DLL de ressource>, < ID de ressource de Menu>, < Menu Version><Path to Resource DLL>, <Menu Resource ID>, <Menu Version>

Le tableau suivant décrit les champs de < informations sur les ressources>.The following table describes the fields of <Resource Information>.

ÉlémentElement DescriptionDescription
<Chemin d’accès à la DLL de ressource><Path to Resource DLL> Il s’agit du chemin d’accès complet à la DLL de ressource qui contient la ressource de menu ou il est vide, indiquant que le VSPackage DLL de ressource est utilisable (comme spécifié dans la sous-clé de Packages dans laquelle le VSPackage lui-même est inscrit).This is the full path to the resource DLL that contains the menu resource or this is left blank, indicating that the VSPackage's resource DLL is to be used (as specified in the Packages subkey where the VSPackage itself is registered).

Il est habituel de laisser ce champ vide.It is customary to leave this field blank.
<ID de ressource de menu><Menu Resource ID> L’ID de ressource de la CTMENU ressource qui contient tous les éléments d’interface utilisateur pour le VSPackage comme compilé à partir d’un .vsct fichier.This is the resource ID of the CTMENU resource that contains all of the UI elements for the VSPackage as compiled from a .vsct file.
<Menu Version><Menu Version> Il s’agit d’un nombre utilisé en tant que version pour le CTMENU ressource.This is a number used as a version for the CTMENU resource. Visual StudioVisual Studio utilise cette valeur pour déterminer s’il faut remerge le contenu de la CTMENU ressource avec son cache de tous les CTMENU ressources. uses this value to determine if it needs to remerge the contents of the CTMENU resource with its cache of all CTMENU resources. Une remerge est déclenchée par l’exécution de la commande devenv.A remerge is triggered by executing the devenv setup command.

Cette valeur doit être initialement la valeur 1 et incrémentée après chaque modification dans le CTMENU ressource et avant le remerge se produit.This value should initially be set to 1 and incremented after every change in the CTMENU resource and before the remerge occurs.

ExempleExample

Voici un exemple de deux entrées de ressources :Here is an example of a couple of resource entries:

HKEY_LOCAL_MACHINE\Software\VisualStudio\9.0Exp\  
  Menus\  
    {019971D6-4685-11D2-B48A-0000F87572EB} = ,1, 10  
    {1b027a40-8f43-11d0-8d11-00a0c91bc942} = , 10211, 3  

Voir aussiSee Also

Comment les VSPackages ajouter les éléments d’Interface utilisateur How VSPackages Add User Interface Elements
Commandes et menus utilisant des assemblys d’interopérabilitéCommands and Menus That Use Interop Assemblies