Compartir a través de


Crear una interfaz COM

Visual Studio proporciona asistentes y plantillas para crear proyectos que utilizan interfaces y dispinterfaces que definen COM para los objetos de COM y las clases de automatización.

Puede usar estos asistentes para realizar las siguientes tres tareas comunes:

  • Agregar compatibilidad con ATL a un proyecto MFC.

    Agregue compatibilidad de ATL a una aplicación MFC después de crear un proyecto MFC mediante el Asistente para aplicaciones MFC y ejecutar el asistente de código Agregar compatibilidad de ATL a MFC. Esta compatibilidad solo se aplica a los objetos COM simples que se agregan a un archivo ejecutable de MFC o un proyecto de DLL. Estos objetos ATL pueden tener más de una interfaz.

  • Crear un control ActiveX MFC.

    Abra el Asistente para controles ActiveX MFC para crear un control ActiveX con una interfaz dispinterface y un mapa de eventos definido en el archivo .idl y la clase de control, respectivamente.

  • Agregar un control ATL.

    Use una combinación del Asistente para proyectos ATL y el Asistente para controles ATL para crear un control ActiveX ATL.

    También se puede agregar un control ATL a un proyecto MFC al que se haya agregado compatibilidad de ATL, como se ha explicado arriba. Además, si selecciona Control ATL en el cuadro de diálogo Agregar clase y todavía no ha agregado compatibilidad de ATL al proyecto MFC, Visual Studio muestra un cuadro de diálogo que confirma la adición de compatibilidad de ATL al proyecto MFC.

    Este asistente genera código fuente de IDL y un mapa COM en las clases del proyecto.

Cuando hay un proyecto ATL abierto, en el cuadro de diálogo Agregar clase se ofrecen asistentes y plantillas adicionales para agregar interfaces COM al proyecto. Los siguientes asistentes permiten establecer una o más interfaces para el objeto.

Además, puede implementar nuevas interfaces en el control COM. Solo tiene que hacer clic con el botón derecho en la clase de control del objeto en la Vista de clases y elegir Implementar interfaz.

Nota:

Visual Studio no proporciona ningún asistente para agregar una interfaz a un proyecto. Puede agregar una interfaz a un proyecto ATL o Agregar compatibilidad con ATL a un proyecto MFC si incorpora un objeto simple con el Asistente para objetos simples ATL. Como alternativa, abra el archivo .idl del proyecto y cree la interfaz escribiendo lo siguiente:

interface IMyInterface {
};

Para obtener más información, vea Implementar una interfaz y Agregar objetos y controles a un proyecto ATL.

Visual C++ proporciona varias maneras para ver y editar las interfaces COM definidas en los proyectos. En la Vista de clases se muestran los iconos de cualquier interfaz o dispinterface definida en un archivo .idl del proyecto de C++.

Para las clases de objetos COM basadas en ATL, la Vista de clases lee el mapa COM en la clase ATL para mostrar la relación entre la clase ATL y las interfaces que implementa.

En la Vista de clases y sus menús contextuales, se puede trabajar con las interfaces de esta forma:

  • Agregar objetos ATL a una aplicación basada en MFC.
  • Agregar métodos, propiedades y eventos.
  • Ir directamente al código de la interfaz de un elemento haciendo doble clic en el elemento.

En esta sección

Editar una interfaz COM

Mediante los comandos del menú contextual Vista de clases, se pueden definir métodos y propiedades nuevos para las interfaces COM en los proyectos de Visual Studio C++. Desde el cuadro de herramientas, también se pueden definir eventos para controles ActiveX.

Para las clases de objeto COM basadas en ATL y MFC, se puede editar la implementación de la clase al mismo tiempo que se edita la interfaz.

Nota:

En el caso de las interfaces definidas fuera del cuadro de diálogo Agregar clase, Visual C++ agrega los métodos o propiedades al archivo .idl y agrega stubs a las clases que implementan métodos, aun cuando las interfaces se agreguen de forma manual.

Los tres asistentes siguientes ayudan a personalizar las interfaces existentes. Están disponibles desde Class View:

Asistente Tipo de proyecto
Asistente para agregar propiedades Proyectos de ATL o MFC compatibles con ATL. Haga clic con el botón derecho en la interfaz a la que quiera agregar la propiedad.

Visual C++ detecta el tipo de proyecto y modifica las opciones en el Asistente para agregar propiedades según sea necesario:

- En el caso de las interfaces de tipo "dispinterface" en proyectos creados mediante el Asistente para aplicaciones MFC, invocar el Asistente para agregar propiedades proporciona opciones específicas para MFC.
- Para las interfaces de controles ActiveX MFC, el Asistente para agregar propiedades proporciona una lista de métodos y propiedades estándar que se pueden usar tal cual o personalizar para controlarlos.
- Para todas las demás interfaces, los asistentes para agregar propiedades proporcionan opciones de utilidad en la mayoría de los casos.
Asistente para agregar métodos Proyectos de ATL o MFC compatibles con ATL. Haga clic con el botón derecho en la interfaz a la que quiera agregar el método.

Visual C++ detecta el tipo de proyecto y modifica las opciones en el Asistente para agregar métodos según sea necesario:

- En el caso de las dispinterfaces de proyectos creados mediante el Asistente para aplicaciones MFC, usar el Asistente para agregar métodos proporciona opciones específicas para MFC.
- Para las interfaces de controles ActiveX MFC, el Asistente para agregar métodos proporciona una lista de métodos y propiedades estándar que se pueden usar tal cual o personalizar para controlarlos.
- Para todas las demás interfaces, los asistentes para agregar métodos proporcionan opciones de utilidad en la mayoría de los casos.

Además, puede implementar nuevas interfaces en el control COM. Solo tiene que hacer clic con el botón derecho en la clase de control del objeto en la Vista de clases y elegir Implementar interfaz.