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

Lors de la création d’applications ou de composants, il est préférable 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 les suites d’applications antérieures qui nécessitent 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.

Le moyen le 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 pour générer la classe avec une couche d’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 en Visual Basic en tant qu’objet COM pour du code non managé à utiliser, il ne s’agit pas d’un véritable objet COM et ne peut pas être utilisé par Visual Basic. Pour plus d’informations, consultez Interopérabilité COM dans les applications .NET Framework.

Notes

Il est possible que pour certains des éléments de l'interface utilisateur de Visual Studio, votre ordinateur affiche des noms ou des emplacements différents de ceux indiqués 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 Personnalisation de l’IDE.

Créer un objet COM à l’aide du modèle de classe COM

  1. Ouvrez un nouveau projet d’application Windows dans le menu Fichier en cliquant sur Nouveau projet.

  2. Dans la boîte de dialogue Nouveau projet, sous le champ Types de projets, vérifiez 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 le menu Projet, sélectionnez Ajouter un nouvel élément. 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 tel que des propriétés, des méthodes et des é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 mieux contrôler la façon dont les objets COM sont définis.

Configurer votre projet pour générer un objet COM

  1. Ouvrez un nouveau projet d’application Windows dans le menu Fichier en cliquant sur Nouveau projet.

  2. Dans la boîte de dialogue Nouveau projet, sous le champ Types de projets, vérifiez 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. Cochez la case Inscrire pour COM Interop.

Configurer le code dans 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 en ComClass1.

  3. Ajoutez les constantes suivantes à ComClass1. Elles stockeront les constantes GUID (Global Unique Identifier) que les objets COM doivent avoir.

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

  5. Remplacez la chaîne vide pour le ClassId par le GUID, en supprimant 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 apparaître 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. Dans le cas contraire, votre composant COM pourrait entrer en conflit avec d’autres composants COM.

  7. Ajoutez l’attribut ComClass à ComClass1, en spécifiant les GUID pour l’ID de classe, l’ID d’interface et l’ID d’é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, sinon la classe ne s’inscrit pas correctement. Ajoutez un constructeur sans paramètre à la classe :

    Public Sub New()
        MyBase.New()
    End Sub
    
  9. Ajoutez des propriétés, des méthodes et des é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 il ne s’agit pas de véritables objets COM. Les tentatives d’ajout de références à ces objets COM déclenchent une erreur. Pour plus d’informations, consultez Interopérabilité COM dans les applications .NET Framework.

Voir aussi