Aunque los ensamblados de .NET son la mejor opción para las aplicaciones nuevas, es posible que a veces tenga que utilizar objetos COM. Este tutorial muestra dos formas de crear objetos COM con Visual Basic .NET, con o sin la plantilla de clase COM.
La forma más fácil de crear un objeto COM es utilizar la plantilla de clase COM. Esta plantilla crea una clase nueva, configura el proyecto para generar la clase como un objeto COM y registra este objeto en el sistema operativo.
Para crear un objeto COM mediante la plantilla de clase COM
En el menú Archivo, haga clic en Nuevo para abrir un nuevo proyecto de aplicación para Windows y, a continuación, haga clic en Proyecto. Aparecerá el cuadro de diálogo Nuevo proyecto.
Con la opción Proyectos de Visual Basic resaltada en la lista Tipos de proyecto, seleccione Biblioteca de clases en la lista Plantillas y, a continuación, haga clic en Aceptar. Aparecerá el proyecto nuevo.
Seleccione Agregar nuevo elemento en el menú Proyecto. Se mostrará el cuadro de diálogo Agregar nuevo elemento.
Seleccione Clase COM en la lista Plantillas y, a continuación, haga clic en Abrir. Visual Basic .NET agrega una clase nueva y configura el proyecto nuevo para la interoperabilidad COM.
Agregue código a la clase COM, como propiedades, métodos y eventos.
Seleccione Generar solución en el menú Generar. Visual Basic .NET genera el ensamblado y registra el objeto COM en el sistema operativo.
Crear objetos COM sin la plantilla de clase COM
Puede crear una clase COM manualmente, en lugar de utilizar la plantilla de clase COM. Este procedimiento puede ser útil al trabajar desde la línea de comandos o cuando se desea tener más control sobre la definición de los objetos COM.
Para configurar el proyecto para generar un objeto COM
En el menú Archivo, haga clic en Nuevo para abrir un nuevo proyecto de aplicación para Windows y, a continuación, haga clic en Proyecto. Aparecerá el cuadro de diálogo Nuevo proyecto.
Con la opción Proyectos de Visual Basic resaltada en la lista Tipos de proyecto, seleccione Biblioteca de clases en la lista Plantillas y, a continuación, haga clic en Aceptar. Aparecerá el proyecto nuevo.
En el Explorador de soluciones, haga clic con el botón secundario del mouse (ratón) en el proyecto y, a continuación, haga clic en Propiedades. Aparece el cuadro de diálogo Páginas de propiedades.
Haga clic en la carpeta Propiedades de configuración y después haga clic en la carpeta Generar. Se muestran las propiedades de Generación.
Active la casilla de verificación Registrar para interoperabilidad COM.
Para configurar el código de la clase para crear un objeto COM
En el Explorador de soluciones, haga doble clic en Class1.vb para mostrar el código que contiene.
Cambie el nombre de la clase.
Agregue el atributo ComClass a la clase, especificando los guid correspondientes al Id. de clase, el Id. de interfaz y los Id. de evento, como en el siguiente ejemplo:
<ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)> _
Public Class ComClass1
Especifique las constantes del Identificador único global (GUID) para el atributo ComClass. Para crear GUID para el objeto COM, haga clic en Crear GUID en el menú Herramientas, o ejecute guidgen.exe para iniciar la herramienta guidgen. Seleccione Formato de registro en la lista de formatos proporcionados por la aplicación guidgen. Haga clic en el botón Nuevo GUID para generar el GUID y, a continuación, haga clic en el botón Copiar para copiar el GUID al Portapapeles. Pegue el GUID en el editor de código de Visual Studio .Net. Quite las llaves de apertura y de cierre del GUID proporcionado. Por ejemplo, si el GUID proporcionado por guidgen es "{2C8B0AEE-02C9-486e-B809-C780A11530FE}", debe aparecer como: "2C8B0AEE-02C9-486e-B809-C780A11530FE".
Haga clic en los botones Nuevo GUID y Copiar hasta generar los GUIDS para ClassId, InterfaceId y EventsId. Por ejemplo:
Public Const ClassId As String = "832F34A5-5CF5-403f-B4A8-428C8351FD02"
Public Const InterfaceId As String = "3D8B5BA4-FB8C-5ff8-8468-11BF6BD5CF91"
Public Const EventsId As String = "2B691787-6ED7-401e-90A4-B3B9C0360E31"
Las clases COM deben tener un constructor Public Sub New() sin parámetros; de lo contrario, la clase no se registrará correctamente. Agregue un constructor sin parámetros a la clase:
Public Sub New()
MyBase.New()
End Sub
Agregue propiedades, métodos y eventos a la clase, y agregue la instrucción End Class al final. Seleccione Generar solución en el menú Generar. Visual Basic .NET genera el ensamblado y registra el objeto COM en el sistema operativo.
Nota Los objetos COM que genere con Visual Studio .NET no se podrán utilizar en otras aplicaciones de Visual Studio .NET. Si intenta agregar referencias a estos objetos COM se producirá un error.