Overzicht: COM-objecten maken met Visual Basic

Wanneer u nieuwe toepassingen of onderdelen maakt, kunt u het beste .NET Framework-assembly's maken. Visual Basic maakt het echter ook eenvoudig om een .NET Framework-onderdeel beschikbaar te maken voor COM. Hiermee kunt u nieuwe onderdelen bieden voor eerdere toepassingssuites waarvoor COM-onderdelen zijn vereist. In dit scenario ziet u hoe u Visual Basic gebruikt om .NET Framework-objecten beschikbaar te maken als COM-objecten, zowel met als zonder de COM-klassesjabloon.

De eenvoudigste manier om COM-objecten beschikbaar te maken, is met behulp van de COM-klassesjabloon. Met deze sjabloon maakt u een nieuwe klasse, configureert u vervolgens uw project voor het genereren van de klasse met een interoperabiliteitslaag als COM-object en registreert u deze bij het besturingssysteem.

Notitie

Hoewel u ook een klasse die is gemaakt in Visual Basic als com-object voor onbeheerde code beschikbaar kunt maken, is het geen echt COM-object en kan deze niet worden gebruikt door Visual Basic. Zie COM-interoperabiliteit in .NET Framework-toepassingen voor meer informatie.

Notitie

Mogelijk worden op uw computer verschillende namen of locaties weergegeven voor sommige elementen van de Visual Studio-gebruikersinterface in de volgende instructies. De Visual Studio-editie die u hebt en de instellingen die u gebruikt, bepalen deze elementen. Zie Personalizing the IDE (Personalizing the IDE) voor meer informatie.

Een COM-object maken met behulp van de COM-klassesjabloon

  1. Open een nieuw Windows-toepassingsproject in het menu Bestand door op Nieuw project te klikken.

  2. Controleer in het dialoogvenster Nieuw project onder het veld Projecttypen of Windows is geselecteerd. Selecteer Klassebibliotheek in de lijst Sjablonen en klik vervolgens op OK. Het nieuwe project wordt weergegeven.

  3. Selecteer Nieuw item toevoegen in het menu Project . Het dialoogvenster Nieuw item toevoegen wordt weergegeven.

  4. Selecteer COM-klasse in de lijst Sjablonen en klik vervolgens op Toevoegen. Visual Basic voegt een nieuwe klasse toe en configureert het nieuwe project voor COM-interoperabiliteit.

  5. Voeg code zoals eigenschappen, methoden en gebeurtenissen toe aan de COM-klasse.

  6. Selecteer Build ClassLibrary1 in het menu Build . Visual Basic bouwt de assembly en registreert het COM-object bij het besturingssysteem.

COM-objecten maken zonder de COM-klassesjabloon

U kunt ook handmatig een COM-klasse maken in plaats van de COM-klassesjabloon te gebruiken. Deze procedure is handig wanneer u vanaf de opdrachtregel werkt of als u meer controle wilt over de manier waarop COM-objecten worden gedefinieerd.

Uw project instellen voor het genereren van een COM-object

  1. Open een nieuw Windows-toepassingsproject in het menu Bestand door op NewProject te klikken.

  2. Controleer in het dialoogvenster Nieuw project onder het veld Projecttypen of Windows is geselecteerd. Selecteer Klassebibliotheek in de lijst Sjablonen en klik vervolgens op OK. Het nieuwe project wordt weergegeven.

  3. Klik in Solution Explorer met de rechtermuisknop op uw project en klik vervolgens op Eigenschappen. De projectontwerper wordt weergegeven.

  4. Klik op het tabblad Compileren .

  5. Schakel het selectievakje Registreren voor COM Interop in.

De code in uw klasse instellen om een COM-object te maken

  1. Dubbelklik in Solution Explorer op Class1.vb om de bijbehorende code weer te geven.

  2. Wijzig de naam van de klasse in ComClass1.

  3. Voeg de volgende constanten toe aan ComClass1. Ze slaan de GUID-constanten (Globally Unique Identifier) op die de COM-objecten moeten hebben.

    Public Const ClassId As String = ""
    Public Const InterfaceId As String = ""
    Public Const EventsId As String = ""
    
  4. Klik in het menu Extra op Guid maken. Klik in het dialoogvenster GUID maken op Registerindeling en klik vervolgens op Kopiëren. Klik op Afsluiten.

  5. Vervang de lege tekenreeks voor de ClassId guid en verwijder de voorloop- en volgaccolades. Als de GUID van Guidgen bijvoorbeeld is "{2C8B0AEE-02C9-486e-B809-C780A11530FE}" , moet uw code er als volgt uitzien.

    Public Const ClassId As String = "2C8B0AEE-02C9-486e-B809-C780A11530FE"
    
  6. Herhaal de vorige stappen voor de InterfaceId en EventsId constanten, zoals in het volgende voorbeeld.

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

    Notitie

    Zorg ervoor dat de GUID's nieuw en uniek zijn; anders kan uw COM-onderdeel conflicteren met andere COM-onderdelen.

  7. Voeg het ComClass kenmerk toe aan ComClass1, waarbij u de GUID's voor de klasse-id, interface-id en gebeurtenis-id opgeeft, zoals in het volgende voorbeeld:

    <ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)>
    Public Class ComClass1
    
  8. COM-klassen moeten een constructor zonder parameters Public Sub New() hebben of de klasse wordt niet correct geregistreerd. Voeg een parameterloze constructor toe aan de klasse:

    Public Sub New()
        MyBase.New()
    End Sub
    
  9. Voeg eigenschappen, methoden en gebeurtenissen toe aan de klasse en beëindig deze met een End Class instructie. Selecteer Build Solution in het menu Build . Visual Basic bouwt de assembly en registreert het COM-object bij het besturingssysteem.

    Notitie

    De COM-objecten die u met Visual Basic genereert, kunnen niet worden gebruikt door andere Visual Basic-toepassingen omdat ze geen echte COM-objecten zijn. Pogingen om verwijzingen naar dergelijke COM-objecten toe te voegen, veroorzaken een fout. Zie COM-interoperabiliteit in .NET Framework-toepassingen voor meer informatie.

Zie ook