Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Al crear aplicaciones o componentes, es mejor crear ensamblados de .NET Framework. Sin embargo, Visual Basic también facilita la exposición de un componente de .NET Framework a COM. Esto le permite proporcionar nuevos componentes para conjuntos de aplicaciones anteriores que requieren componentes COM. En este tutorial se muestra cómo usar Visual Basic para exponer objetos de .NET Framework como objetos COM, tanto con como sin la plantilla de clase COM.
La manera más fácil de exponer objetos COM es mediante la plantilla de clase COM. Esta plantilla crea una nueva clase y, a continuación, configura el proyecto para generar la clase con una capa de interoperabilidad como un objeto COM y registrarla en el sistema operativo.
Nota:
Aunque también puede exponer una clase creada en Visual Basic como un objeto COM para el código no administrado que se va a usar, no es un objeto COM verdadero y visual Basic no puede usarlo. Para obtener más información, consulte Interoperabilidad COM en aplicaciones de .NET Framework.
Nota:
El equipo puede mostrar nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio en las instrucciones siguientes. La edición de Visual Studio que tiene y la configuración que usa determinan estos elementos. Para obtener más información, consulte Personalizando el IDE.
Para crear un objeto COM mediante la plantilla de clase COM
Abra un nuevo proyecto de aplicación de Windows en el menú Archivo haciendo clic en Nuevo proyecto.
En el cuadro de diálogo Nuevo proyecto, en el campo Tipos de proyecto, verifique que Windows esté seleccionado. Seleccione Biblioteca de clases de la lista Plantillas y, a continuación, haga clic en Aceptar. Se muestra el nuevo proyecto.
Seleccione Agregar nuevo elemento en el menú Proyecto . Se muestra el cuadro de diálogo Agregar nuevo elemento .
Seleccione Clase COM en la lista Plantillas y, a continuación, haga clic en Agregar. Visual Basic agrega una nueva clase y configura el nuevo proyecto para la interoperabilidad COM.
Agregue código como propiedades, métodos y eventos a la clase COM.
Seleccione Build ClassLibrary1 en el menú Build. Visual Basic compila el ensamblado y registra el objeto COM con el sistema operativo.
Crear objetos COM sin la plantilla de clase COM
También puede crear manualmente una clase COM en lugar de usar la plantilla de clase COM. Este procedimiento es útil cuando se trabaja desde la línea de comandos o cuando se desea más control sobre cómo se definen los objetos COM.
Para configurar el proyecto para generar un objeto COM
Abra un nuevo proyecto de aplicación de Windows en el menú Archivo haciendo clic en NuevoProyecto.
En el cuadro de diálogo Nuevo proyecto, en el campo Tipos de proyecto, verifique que Windows esté seleccionado. Seleccione Biblioteca de clases de la lista Plantillas y, a continuación, haga clic en Aceptar. Se muestra el nuevo proyecto.
En el Explorador de soluciones, haga clic con el botón derecho en el proyecto y, a continuación, haga clic en Propiedades. Se muestra el Diseñador de proyectos .
Haga clic en la pestaña Compilar.
Active la casilla Registrar para interoperabilidad COM.
Para establecer el código en tu clase para crear un objeto COM
En el Explorador de soluciones, haga doble clic en Class1.vb para mostrar su código.
Cambie el nombre de la clase a
ComClass1
.Agregue las siguientes constantes a
ComClass1
. Almacenarán las constantes identificador único global (GUID) que deben tener los objetos COM.Public Const ClassId As String = "" Public Const InterfaceId As String = "" Public Const EventsId As String = ""
En el menú Herramientas , haga clic en Crear guid. En el cuadro de diálogo Crear GUID , haga clic en Formato del Registro y, a continuación, haga clic en Copiar. Haga clic en Salir.
Reemplace la cadena vacía del
ClassId
por el GUID, quitando las llaves iniciales y finales. Por ejemplo, si el GUID proporcionado por Guidgen es"{2C8B0AEE-02C9-486e-B809-C780A11530FE}"
, el código debería aparecer como se indica a continuación.Public Const ClassId As String = "2C8B0AEE-02C9-486e-B809-C780A11530FE"
Repita los pasos anteriores para las
InterfaceId
constantes yEventsId
, como en el ejemplo siguiente.Public Const InterfaceId As String = "3D8B5BA4-FB8C-5ff8-8468-11BF6BD5CF91" Public Const EventsId As String = "2B691787-6ED7-401e-90A4-B3B9C0360E31"
Nota:
Asegúrese de que los GUID son nuevos y únicos; De lo contrario, el componente COM podría entrar en conflicto con otros componentes COM.
Agregue el
ComClass
atributo aComClass1
, especificando los GUID para el identificador de clase, el identificador de interfaz y el identificador de eventos como en el ejemplo siguiente:<ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)> Public Class ComClass1
Las clases COM deben tener un constructor sin
Public Sub New()
parámetros o 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 termine con una
End Class
instrucción . Seleccione Generar solución en el menú Generar. Visual Basic compila el ensamblado y registra el objeto COM con el sistema operativo.Nota:
Otros objetos COM que genere con Visual Basic no pueden usarse en otras aplicaciones de Visual Basic porque no son objetos COM verdaderos. Los intentos de agregar referencias a estos objetos COM generarán un error. Para obtener más información, consulte Interoperabilidad COM en aplicaciones de .NET Framework.