Importación de archivos y bibliotecas de tipos
Las palabras clave MIDL incluyen, importan e importalib permiten reutilizar el código haciendo referencia a archivos de encabezado, IDL y lenguaje de definición de objetos (ODL) existentes y bibliotecas de tipos compiladas.
La directiva include de ACF permite especificar en un archivo ACF uno o varios archivos de encabezado del lenguaje C que se incluirán en el código auxiliar generado por MIDL. El archivo generado tendrá una línea con una directiva de preprocesador de C #include con el archivo de encabezado indicado. Use esta directiva include para incluir archivos de encabezado específicos de un entorno operativo determinado y que no contengan información necesaria para la interfaz entre el cliente y el servidor. No use incluir para archivos de encabezado que contengan tipos de datos que desee que estén disponibles para el archivo IDL; en su lugar, use la directiva import .
Ejemplo 1
[
auto_handle
]
interface X86PC
{
include "gendefs.h", "protos.h", "myfile.h";
//interface typdefs and function declarations here
}
La directiva de importación de IDL es el método estándar para incorporar definiciones de tipo e interfaz de otros archivos IDL (o ODL) y archivos de encabezado en el archivo IDL. Todas las instrucciones IDL del archivo importado, como typedefs, declaraciones const y definiciones de interfaz, están disponibles para el archivo IDL de importación.
Al igual que la directiva de preprocesador de lenguaje C #include, la directiva import indica al compilador que incluya los tipos de datos definidos en los archivos IDL importados. A diferencia de la directiva #include , la directiva import omite los prototipos de procedimiento, ya que no se generan códigos auxiliares para nada en el archivo importado. Dado que el preprocesador se invoca por separado para el archivo importado, las directivas de preprocesador (como **) no se transfieren al archivo IDL de importación.
Para obtener información adicional sobre el uso de la importación para incluir archivos de encabezado del sistema en un archivo IDL, consulte Importación de archivos de encabezado del sistema.
Ejemplo 2
[
uuid(. . .), object
]
interface IKnown : IUnknown
{
import "base.idl", "unknwn.idl", "helper.idl";
//remainder of interface definition
}
La directiva importlib de ODL permite hacer referencia a una biblioteca de tipos compilada en el archivo IDL o ODL. La directiva importlib debe estar dentro de una instrucción de biblioteca y debe preceder a otras descripciones de tipo en la biblioteca. La biblioteca importada, así como la biblioteca generada, deben estar disponibles para la aplicación en tiempo de ejecución.
Ejemplo 3
library NewBrowser
{
importlib("stdole32.tlb");
importlib("legacy.tlb");
//remainder of library definition
};
También puede usar la directiva #include del preprocesador de C para incluir encabezados y otros archivos en el archivo IDL o ODL. Sin embargo, tenga en cuenta que esta directiva incluirá literalmente todo el contenido del archivo especificado. Si un archivo de encabezado contiene prototipos que no necesita o desea en los archivos de código auxiliar generados por MIDL, o si contiene definiciones de tipo no modificables, debe usar la directiva de importación MIDL en lugar de la directiva de #include .
Temas relacionados