Procédure pas à pas : création d'objets COM avec Visual Basic

Lors de la création de nouvelles applications ou de nouveaux composants, il est conseillé de créer des assemblys .NET Framework. Toutefois, Visual Basic facilite également l'exposition d'un composant .NET Framework à COM. Cela vous permet de fournir de nouveaux composants pour des suites d'applications antérieures qui requièrent des composants COM. Cette procédure pas à pas montre comment utiliser Visual Basic pour exposer des objets .NET Framework en tant qu'objets COM, avec et sans le modèle de classe COM.

La façon la plus simple d'exposer des objets COM consiste à utiliser le modèle de classe COM. Ce modèle crée une classe, puis configure votre projet de façon à générer la couche classe et interopérabilité en tant qu'objet COM et l'inscrire auprès du système d'exploitation.

Notes

Bien que vous puissiez également exposer une classe créée dans Visual Basic en tant qu'objet COM pour le code non managé à utiliser, il ne s'agit pas d'un véritable objet COM et il ne peut pas être utilisé par Visual Basic. Pour plus d'informations, consultez Interopérabilité COM dans les applications .NET Framework (Visual Basic).

Notes

Il est possible que votre ordinateur affiche des noms ou des emplacements différents pour certains des éléments d'interface utilisateur de Visual Studio dans les instructions suivantes. L'édition de Visual Studio dont vous disposez et les paramètres que vous utilisez déterminent ces éléments. Pour plus d'informations, consultez Paramètres Visual Studio.

Pour créer un objet COM à l'aide du modèle de classe COM

  1. Ouvrez un nouveau projet d'application Windows à partir du menu Fichier en cliquant sur Nouveau projet.

  2. Dans la boîte de dialogue Nouveau projet sous le champ Types de projets, assurez-vous que Windows est sélectionné. Sélectionnez Bibliothèque de classes dans la liste Modèles, puis cliquez sur OK. Le nouveau projet s'affiche.

  3. Sélectionnez Ajouter un nouvel élément dans le menu Projet. La boîte de dialogue Ajouter un nouvel élément s'affiche.

  4. Sélectionnez Classe COM dans la liste Modèles, puis cliquez sur Ajouter. Visual Basic ajoute une nouvelle classe et configure le nouveau projet pour COM Interop.

  5. Ajoutez du code, par exemple des propriétés, méthodes et événements, à la classe COM.

  6. Sélectionnez Générer ClassLibrary1 dans le menu Générer. Visual Basic génère l'assembly et inscrit l'objet COM auprès du système d'exploitation.

Création d'objets COM sans le modèle de classe COM

Vous pouvez également créer une classe COM manuellement au lieu d'utiliser le modèle de classe COM. Cette procédure est utile lorsque vous travaillez à partir de la ligne de commande ou lorsque vous souhaitez davantage de contrôle sur le mode de définition des objets COM.

Pour configurer votre projet pour générer un objet COM

  1. Ouvrez un nouveau projet d'application Windows à partir du menu Fichier en cliquant sur Nouveau Projet.

  2. Dans la boîte de dialogue Nouveau projet sous le champ Types de projets, assurez-vous que Windows est sélectionné. Sélectionnez Bibliothèque de classes dans la liste Modèles, puis cliquez sur OK. Le nouveau projet s'affiche.

  3. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet, puis cliquez sur Propriétés. Le Concepteur de projets s'affiche.

  4. Cliquez sur l'onglet Compiler.

  5. Activez la case à cocher Inscrire pour COM Interop.

Pour configurer le code de votre classe pour créer un objet COM

  1. ‎Dans l'Explorateur de solutions, double-cliquez sur Class1.vb pour afficher son code.

  2. Renommez la classe ComClass1.

  3. Ajoutez les constantes suivantes à ComClass1. Elles stockeront les constantes GUID (identificateur global unique) dont les objets COM doivent être assortis.

    Public Const ClassId As String = ""
    Public Const InterfaceId As String = ""
    Public Const EventsId As String = ""
    
  4. Dans le menu Outils, cliquez sur Create GUID. Dans la boîte de dialogue Create GUID, cliquez sur Format du Registre, puis sur Copier. Cliquez sur Quitter.

  5. Remplacez la chaîne vide de ClassId par le GUID et supprimez les accolades de début et de fin. Par exemple, si le GUID fourni par Guidgen est "{2C8B0AEE-02C9-486e-B809-C780A11530FE}", votre code doit s'afficher comme suit :

    Public Const ClassId As String = "2C8B0AEE-02C9-486e-B809-C780A11530FE"
    
  6. Répétez les étapes précédentes pour les constantes InterfaceId et EventsId, comme dans l'exemple suivant.

    Public Const InterfaceId As String = "3D8B5BA4-FB8C-5ff8-8468-11BF6BD5CF91"
    Public Const EventsId As String = "2B691787-6ED7-401e-90A4-B3B9C0360E31"
    

    Notes

    Assurez-vous que les GUID sont nouveaux et uniques, faute de quoi votre composant COM pourrait présenter des conflits avec d'autres composants COM.

  7. Ajoutez l'attribut ComClass à ComClass1, en indiquant les GUID de l'ID de la classe, de l'interface et des événements, comme dans l'exemple suivant :

    <ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)>
    Public Class ComClass1
    
  8. Les classes COM doivent avoir un constructeur Public Sub New() sans paramètre, sans quoi elles ne seront pas inscrites correctement. Ajoutez un constructeur sans paramètre à la classe :

    Public Sub New()
        MyBase.New()
    End Sub
    
  9. Ajoutez des propriétés, méthodes et événements à la classe, en la terminant par une instruction End Class. Sélectionnez Générer la solution dans le menu Générer. Visual Basic génère l'assembly et inscrit l'objet COM auprès du système d'exploitation.

    Notes

    Les objets COM que vous générez avec Visual Basic ne peuvent pas être utilisés par d'autres applications Visual Basic, car ils ne constituent pas de véritables objets COM. Les tentatives d'ajout de références à ces objets COM généreront une erreur. Pour plus d'informations, consultez Interopérabilité COM dans les applications .NET Framework (Visual Basic).

Voir aussi

Tâches

Procédure pas à pas : implémentation de l'héritage avec les objets COM (Visual Basic)

Dépannage des problèmes liés à l'interopérabilité (Visual Basic)

Référence

ComClassAttribute

#Region, directive

Autres ressources

COM Interop (Visual Basic)

Interopérabilité COM dans les applications .NET Framework (Visual Basic)