Importación de archivos de encabezado del sistema

Aunque a menudo es posible usar la directiva #include para incluir archivos de encabezado en el archivo IDL, no se recomienda. El compilador MIDL generará códigos auxiliares para todas las funciones definidas en el archivo IDL que se está compilando. Normalmente, un archivo de encabezado contiene una serie de prototipos que no necesita ni quiere incluir en los archivos auxiliares, y un #include coloca eficazmente todas esas definiciones en el archivo IDL principal. Además, si hay tipos no modificables definidos en el archivo de encabezado, es posible que el archivo IDL no se compile.

Hay dos maneras de incluir definiciones de tipos de archivos de encabezado en un archivo IDL:

  • Use la directiva import para incluir tipos de datos definidos en un archivo de encabezado. A diferencia de la directiva #include del lenguaje C, la directiva import solo recoge definiciones de tipo y constantes y omite los prototipos de procedimiento. Este enfoque funcionará siempre que el archivo IDL principal no haga referencia a ningún tipo no modificable definido en el archivo de encabezado.
  • Cree un archivo IDL del asistente con una interfaz ficticia que incluya los archivos de encabezado. A continuación, use la directiva import para incluir el archivo auxiliar. De este modo, solo aparecerán las definiciones de tipoen los códigos auxiliares compilados. Por ejemplo:
//in helper.idl:
interface dummy
{ 
   #include "kitchensink.h"
   #include "system.h"
}

//in main.idl:
import "helper.idl";