Tutorial: Crear objetos COM con Visual Basic

Al crear nuevas aplicaciones o componentes, es mejor crear .NET Framework ensamblados. Sin embargo, Visual Basic también facilita la exposición de un componente .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 .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 que lo use el código no administrado, no es un objeto COM verdadero y no lo puede usar Visual Basic. Para obtener más información, vea Interoperabilidad COM en .NET Framework aplicaciones.

Nota

Es posible que el equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio en las siguientes instrucciones. La edición de Visual Studio que se tenga y la configuración que se utilice determinan estos elementos. Para obtener más información, vea Personalizar el IDE.

Para crear un objeto COM mediante la plantilla de clase COM

  1. Abra un nuevo proyecto Windows aplicación en el menú Archivo haciendo clic en Nuevo Project.

  2. En el cuadro de Project cuadro de diálogo Nuevo Project en el campo Tipos de datos, compruebe que Windows está seleccionado. Seleccione Biblioteca de clases en la lista Plantillas y, a continuación, haga clic en Aceptar. Se muestra el nuevo proyecto.

  3. Seleccione Agregar nuevo elemento en el Project menú. Se abrirá el cuadro de diálogo Agregar nuevo elemento.

  4. 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.

  5. Agregue código como propiedades, métodos y eventos a la clase COM.

  6. Seleccione Clase de compilaciónLibrary1 en el menú Compilar. 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 resulta útil cuando se trabaja desde la línea de comandos o cuando se quiere tener más control sobre cómo se definen los objetos COM.

Para configurar el proyecto para generar un objeto COM

  1. Abra un nuevo proyecto Windows aplicación en el menú Archivo haciendo clic en NuevoProyecto.

  2. En el cuadro de Project cuadro de diálogo Nuevo Project en el campo Tipos de datos, compruebe que Windows está seleccionado. Seleccione Biblioteca de clases en la lista Plantillas y, a continuación, haga clic en Aceptar. Se muestra el nuevo proyecto.

  3. En el Explorador de soluciones, haga clic con el botón derecho del mouse en su proyecto y después seleccione Propiedades. Se muestra Project diseñador de aplicaciones.

  4. Haga clic en la pestaña Compilar.

  5. Active la casilla Register for COM Interop (Registrar para interoperabilidad COM).

Para configurar el código de la clase para crear un objeto COM

  1. En Explorador de soluciones, haga doble clic en Class1.vb para mostrar su código.

  2. Cambie el nombre de la clase a ComClass1.

  3. Agregue las siguientes constantes a ComClass1 . Almacenarán las constantes de 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 = ""
    
  4. En el menú Herramientas, haga clic en Crear GUID. En el cuadro de diálogo Crear GUID, haga clic en Formato de Registro y luego en Copiar. Haga clic en Salir.

  5. Reemplace la cadena vacía de ClassId por el GUID, quitando las llaves inicial y final. Por ejemplo, si el GUID proporcionado por Guidgen es "{2C8B0AEE-02C9-486e-B809-C780A11530FE}" , el código debe aparecer como sigue.

    Public Const ClassId As String = "2C8B0AEE-02C9-486e-B809-C780A11530FE"
    
  6. Repita los pasos anteriores para las InterfaceId constantes y , como en el ejemplo EventsId 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 estar en conflicto con otros componentes COM.

  7. Agregue el atributo a , especificando los GUID para el identificador de clase, el identificador de interfaz y el identificador de eventos como ComClass ComClass1 en el ejemplo siguiente:

    <ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)>
    Public Class ComClass1
    
  8. 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
    
  9. Agregue propiedades, métodos y eventos a la clase y termine con una End Class instrucción . Seleccione Compilar solución en el menú Compilar. Visual Basic compila el ensamblado y registra el objeto COM con el sistema operativo.

    Nota

    Los objetos COM que se generan con Visual Basic no pueden ser utilizados por otras aplicaciones Visual Basic porque no son objetos COM verdaderos. Los intentos de agregar referencias a estos objetos COM producirán un error. Para obtener más información, vea Interoperabilidad COM en .NET Framework Aplicaciones.

Consulta también