Share via


Definición de interfaces COM

Microsoft define muchas interfaces COM. En la mayoría de los casos, puede reutilizar estas interfaces genéricas. Sin embargo, algunas aplicaciones tienen requisitos específicos que hacen que sea deseable o necesario definir sus propias interfaces de objeto.

Todas las interfaces COM deben derivar, directa o indirectamente, de la interfaz IUnknown . Dentro de esa restricción, la interfaz personalizada puede admitir casi cualquier método o parámetro, incluidos los métodos asincrónicos. También puede generar una biblioteca de tipos para las interfaces personalizadas para que los clientes puedan acceder a información sobre los métodos del objeto en tiempo de ejecución. Después de definir una interfaz, describa en Lenguaje de definición de interfaz de Microsoft (MIDL), compile y regístrela, la usará igual que cualquier interfaz genérica. Con COM distribuido, los métodos de interfaz están disponibles tanto para procesos remotos como para otros procesos en el mismo equipo.

Por último, la creación de interfaces COM requiere un entorno de desarrollo que incluya un compilador de C/C++ y el compilador de Midl.exe.

Los pasos para crear una interfaz COM son los siguientes:

  • Decida cómo desea proporcionar compatibilidad de serialización para la interfaz; ya sea con serialización controlada por la biblioteca de tipos o con un archivo DLL proxy/stub. Incluso las interfaces en proceso deben serializarse si se van a usar a través de los límites del apartamento. Es una buena idea crear compatibilidad con serialización en cada interfaz COM, incluso si no cree que lo necesitará. Consulte Serialización de interfaz para obtener más información.
  • Describir la interfaz o las interfaces en un archivo de definición de interfaz (IDL). Además, puede especificar ciertos aspectos locales de la interfaz en un archivo de configuración de aplicación (ACF). Si usa serialización controlada por la biblioteca de tipos, agregue una instrucción de biblioteca que haga referencia a las interfaces para las que desea generar información de tipos.
  • Use el compilador MIDL para generar un archivo de biblioteca de tipos y un archivo de encabezado, o archivos proxy/código auxiliar del lenguaje C, archivo de identificador de interfaz, archivo de datos DLL y archivo de encabezado. Consulte Compilación MIDL para obtener más información.
  • En función del método de serialización elegido, escriba un archivo de definición de módulo (DEF), compile y vincule todos los archivos generados por MIDL en un único archivo DLL de proxy y registre la interfaz en el registro del sistema o registre la biblioteca de tipos. Consulte Cargar y registrar una biblioteca de tipos y compilar y registrar un archivo DLL de proxy para obtener más información.

Anatomía de un archivo IDL

Clientes y servidores COM

Reglas de diseño de interfaz

The Component Object Model [Modelo de objetos componentes (COM)]