Compartir a través de


Bibliotecas de tipos, DCOM y COM

El Modelo de objetos componentes (COM) y el Modelo de objetos componentes distribuidos (DCOM) usan llamadas a procedimiento remoto (RPC) para permitir que los objetos de componente distribuidos se comuniquen entre sí. Por lo tanto, una interfaz COM o DCOM define la identidad y las características externas de un objeto COM. Forma los medios por los que los clientes pueden obtener acceso a los métodos y datos de un objeto. Con DCOM, este acceso es posible independientemente de si los objetos existen en el mismo proceso, procesos diferentes en el mismo equipo o en máquinas diferentes. Al igual que con las interfaces de cliente/servidor RPC, un objeto COM o DCOM puede exponer su funcionalidad de varias maneras diferentes y a través de varias interfaces.

Biblioteca de tipos

Una biblioteca de tipos (.tlb) es un archivo binario que almacena información sobre las propiedades y métodos de un objeto COM o DCOM en un formulario que es accesible para otras aplicaciones en tiempo de ejecución. Con una biblioteca de tipos, una aplicación o explorador puede determinar qué interfaces admite un objeto e invocar los métodos de interfaz de un objeto. Esto puede ocurrir incluso si el objeto y las aplicaciones cliente se escribieron en diferentes lenguajes de programación. El entorno en tiempo de ejecución de COM/DCOM también puede usar una biblioteca de tipos para proporcionar serialización automática entre apartamentos, procesos cruzados y entre equipos para interfaces descritas en bibliotecas de tipos.

Características de una interfaz

Las características de una interfaz se definen en un archivo de definición de interfaz (IDL) y un archivo de configuración de aplicación opcional (ACF):

  • El archivo IDL especifica las características de las interfaces de la aplicación en la conexión, es decir, cómo se transmiten los datos entre el cliente y el servidor, o entre objetos COM.
  • El archivo ACF especifica características de interfaz, como identificadores de enlace, que solo pertenecen al entorno operativo local. El archivo ACF también puede especificar cómo serializar y transmitir una estructura de datos compleja en un formato independiente de la máquina.

Para obtener más información sobre los archivos IDL y ACF, vea Los archivos IDL y ACF.

Los archivos IDL y ACF son scripts escritos en microsoft Interface Definition Language (MIDL), que es la implementación y extensión de Microsoft del lenguaje de definición de interfaz (IDL) de OSF-DCE. Las extensiones de Microsoft para el lenguaje IDL permiten crear interfaces COM y bibliotecas de tipos. El compilador, Midl.exe, usa estos scripts para generar códigos auxiliares de lenguaje C y archivos de encabezado, así como archivos de biblioteca de tipos.

Compilador MIDL

Según el contenido del archivo IDL, el compilador MIDL generará cualquiera de los siguientes archivos.

Un archivo de código auxiliar o proxy de lenguaje C, un archivo de identificador de interfaz, un archivo de datos DLL y un archivo de encabezado relacionado para una interfaz COM personalizada. El compilador MIDL genera estos archivos cuando encuentra el atributo object en una lista de atributos de interfaz. Para obtener información más detallada sobre estos archivos, vea Archivos generados para una interfaz COM.

Un archivo de biblioteca de tipos compilado (.tlb) y un archivo de encabezado relacionado. MIDL genera estos archivos cuando encuentra una instrucción de biblioteca en el archivo IDL. Para obtener información general sobre las bibliotecas de tipos, vea Contenido de una biblioteca de tipos, en la Referencia del programador de Automation.

Archivos de código auxiliar de cliente y servidor de C/C++-language y archivos de encabezado relacionados para una interfaz RPC. Estos archivos se generan cuando hay interfaces en el archivo IDL que no tienen el atributo object . Para obtener información general sobre el código auxiliar y los archivos de encabezado, vea Procedimiento de compilación general. Para obtener información más detallada, vea Archivos generados para una interfaz RPC.