Compartilhar via


Importar arquivos de cabeçalho do sistema

Embora geralmente seja possível usar a diretiva #include para incluir arquivos de cabeçalho no arquivo IDL, isso não é recomendado. O compilador MIDL gerará stubs para todas as funções definidas no arquivo IDL que está sendo compilado. Normalmente, um arquivo de cabeçalho contém vários protótipos que você não precisa nem deseja incluir em seus arquivos stub, e um #include efetivamente coloca todas essas definições em seu arquivo IDL main. Além disso, se houver tipos não reremotáveis definidos no arquivo de cabeçalho, o arquivo IDL poderá não ser compilado.

Há duas maneiras de incluir definições de tipo de arquivos de cabeçalho em um arquivo IDL:

  • Use a diretiva de importação para incluir tipos de dados definidos em um arquivo de cabeçalho. Ao contrário da diretiva de #include da linguagem C, a diretiva de importação apenas pega definições de tipo e constante e ignora protótipos de procedimento. Essa abordagem funcionará desde que o arquivo IDL do main não faça referência a nenhum tipo nãoremotável definido no arquivo de cabeçalho.
  • Crie um arquivo IDL auxiliar com uma interface fictícia que inclua os arquivos de cabeçalho. Em seguida, use a diretiva de importação para incluir o arquivo auxiliar. Dessa forma, somente os typedefs aparecerão nos stubs compilados. Por exemplo:
//in helper.idl:
interface dummy
{ 
   #include "kitchensink.h"
   #include "system.h"
}

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