Share via


Importando arquivos e bibliotecas de tipos

As palavras-chave MIDL incluem, importam e importlib permitem que você reutilize o código fazendo referência a arquivos ODL (cabeçalho, IDL e linguagem de definição de objeto) existentes e bibliotecas de tipos compilados.

A diretiva de inclusão ACF permite especificar em um arquivo ACF um ou mais arquivos de cabeçalho da linguagem C a serem incluídos no código stub gerado por MIDL. O arquivo gerado terá uma linha com uma diretiva #include pré-processador C com o arquivo de cabeçalho indicado. Use essa diretiva include para trazer arquivos de cabeçalho específicos para um ambiente operacional específico e que não contêm informações necessárias para a interface entre o cliente e o servidor. Não use include para arquivos de cabeçalho que contêm tipos de dados que você deseja disponibilizar para o arquivo IDL; Em vez disso, use a diretiva de importação .

Exemplo 1

[
  auto_handle
] 
interface X86PC
{ 
  include "gendefs.h", "protos.h", "myfile.h"; 
  //interface typdefs and function declarations here
}

A diretiva de importação de IDL é o método padrão para trazer definições de tipo e interface de outros arquivos IDL (ou ODL) e arquivos de cabeçalho para o arquivo IDL. Todas as instruções IDL no arquivo importado, como typedefs, declarações const e definições de interface, ficam disponíveis para o arquivo IDL de importação.

Assim como a diretiva de pré-processador da linguagem C #include, a diretiva de importação informa ao compilador para incluir tipos de dados que foram definidos nos arquivos IDL importados. Ao contrário da diretiva #include , a diretiva de importação ignora protótipos de procedimento, pois nenhum stub é gerado para nada no arquivo importado. Como o pré-processador é invocado separadamente para o arquivo importado, as diretivas de pré-processador (como **) não são transferidas para o arquivo IDL de importação.

Para obter informações adicionais sobre como usar a importação para incluir arquivos de cabeçalho do sistema em um arquivo IDL, consulte Importando arquivos de cabeçalho do sistema.

Exemplo 2

[
  uuid(. . .), object
] 
interface IKnown : IUnknown
{
  import "base.idl", "unknwn.idl", "helper.idl";
  //remainder of interface definition
}

A diretiva importlib do ODL permite referenciar uma biblioteca de tipos compilada em seu arquivo IDL ou ODL. A diretiva importlib deve estar dentro de uma instrução de biblioteca e deve preceder outras descrições de tipo na biblioteca. A biblioteca importada, bem como a biblioteca gerada, deve estar disponível para o aplicativo em runtime.

Exemplo 3

library NewBrowser
{
  importlib("stdole32.tlb");
  importlib("legacy.tlb");
  //remainder of library definition
};

Você também pode usar a diretiva #include do pré-processador C para incluir cabeçalhos e outros arquivos em seu arquivo IDL ou ODL. No entanto, lembre-se de que essa diretiva incluirá literalmente todo o conteúdo do arquivo especificado. Se um arquivo de cabeçalho contiver protótipos que você não precisa ou deseja nos arquivos stub gerados por MIDL ou se ele contiver definições de tipo não reremotáveis, você deverá usar a diretiva de importação MIDL em vez da diretiva #include .

Importação

importlib

Incluem

Importar arquivos de cabeçalho do sistema