Genomgång: Skapa COM-objekt med Visual Basic

När du skapar nya program eller komponenter är det bäst att skapa .NET Framework-sammansättningar. Visual Basic gör det dock också enkelt att exponera en .NET Framework-komponent för COM. På så sätt kan du tillhandahålla nya komponenter för tidigare programpaket som kräver COM-komponenter. Den här genomgången visar hur du använder Visual Basic för att exponera .NET Framework-objekt som COM-objekt, både med och utan COM-klassmallen.

Det enklaste sättet att exponera COM-objekt är att använda COM-klassmallen. Den här mallen skapar en ny klass och konfigurerar sedan projektet för att generera klassen med ett samverkanslager som ett COM-objekt och registrerar den med operativsystemet.

Kommentar

Även om du också kan exponera en klass som skapats i Visual Basic som ett COM-objekt för ohanterad kod att använda, är det inte ett sant COM-objekt och kan inte användas av Visual Basic. Mer information finns i COM-samverkan i .NET Framework-program.

Kommentar

Datorn kan visa olika namn eller platser för vissa av Visual Studio-användargränssnittselementen i följande instruktioner. Den Visual Studio-utgåva som du har och de inställningar som du använder avgör dessa element. Mer information finns i Anpassa IDE.

Skapa ett COM-objekt med hjälp av COM-klassmallen

  1. Öppna ett nytt Windows-programprojekt från arkivmenyn genom att klicka på Nytt projekt.

  2. I dialogrutan Nytt projekt under fältet Projekttyper markerar du att Windows är markerat. Välj Klassbibliotek i listan Mallar och klicka sedan på OK. Det nya projektet visas.

  3. Välj Lägg till nytt objektProjekt-menyn . Dialogrutan Lägg till nytt objekt visas.

  4. Välj COM-klass i listan Mallar och klicka sedan på Lägg till. Visual Basic lägger till en ny klass och konfigurerar det nya projektet för COM-interop.

  5. Lägg till kod som egenskaper, metoder och händelser i COM-klassen.

  6. Välj Skapa ClassLibrary1menyn Skapa . Visual Basic skapar sammansättningen och registrerar COM-objektet med operativsystemet.

Skapa COM-objekt utan COM-klassmallen

Du kan också skapa en COM-klass manuellt i stället för att använda COM-klassmallen. Den här proceduren är användbar när du arbetar från kommandoraden eller när du vill ha mer kontroll över hur COM-objekt definieras.

Så här konfigurerar du projektet för att generera ett COM-objekt

  1. Öppna ett nytt Windows-programprojekt från menyn Arkiv genom att klicka på NewProject.

  2. I dialogrutan Nytt projekt under fältet Projekttyper markerar du att Windows är markerat. Välj Klassbibliotek i listan Mallar och klicka sedan på OK. Det nya projektet visas.

  3. Högerklicka på projektet i Solution Explorer och klicka sedan på Egenskaper. Projektdesignern visas.

  4. Klicka på fliken Kompilera .

  5. Markera kryssrutan Registrera för COM Interop .

Så här konfigurerar du koden i klassen för att skapa ett COM-objekt

  1. Dubbelklicka Class1.vb i Solution Explorer för att visa koden.

  2. Byt namn på klassen till ComClass1.

  3. Lägg till följande konstanter i ComClass1. De lagrar konstanterna för globalt unik identifierare (GUID) som COM-objekten måste ha.

    Public Const ClassId As String = ""
    Public Const InterfaceId As String = ""
    Public Const EventsId As String = ""
    
  4. På menyn Verktyg klickar du på Skapa guid. I dialogrutan Skapa GUID klickar du på Registerformat och sedan på Kopiera. Klicka på Avsluta.

  5. Ersätt den tomma strängen ClassId för med GUID och ta bort inledande och avslutande klammerparenteser. Om guidgens GUID till exempel är "{2C8B0AEE-02C9-486e-B809-C780A11530FE}" bör koden visas på följande sätt.

    Public Const ClassId As String = "2C8B0AEE-02C9-486e-B809-C780A11530FE"
    
  6. Upprepa föregående steg för konstanterna InterfaceId och EventsId som i följande exempel.

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

    Kommentar

    Kontrollera att GUID:erna är nya och unika. Annars kan com-komponenten komma i konflikt med andra COM-komponenter.

  7. ComClass Lägg till attributet i ComClass1och ange GUID:erna för klass-ID, gränssnitts-ID och händelse-ID som i följande exempel:

    <ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)>
    Public Class ComClass1
    
  8. COM-klasser måste ha en parameterlös Public Sub New() konstruktor, annars registreras inte klassen korrekt. Lägg till en parameterlös konstruktor i klassen:

    Public Sub New()
        MyBase.New()
    End Sub
    
  9. Lägg till egenskaper, metoder och händelser i klassen och avsluta den med en End Class -instruktion. Välj Skapa lösningmenyn Skapa . Visual Basic skapar sammansättningen och registrerar COM-objektet med operativsystemet.

    Kommentar

    DE COM-objekt som du genererar med Visual Basic kan inte användas av andra Visual Basic-program eftersom de inte är sanna COM-objekt. Försök att lägga till referenser till sådana COM-objekt ger upphov till ett fel. Mer information finns i COM-samverkan i .NET Framework-program.

Se även