Usando MIDL

Todas as interfaces para programas que usam RPC devem ser definidas na MIDL (Linguagem de Definição de Interface da Microsoft) e compiladas com o compilador MIDL. Os tópicos a seguir apresentam uma breve visão geral da criação e compilação de uma interface MIDL:

Para obter uma discussão detalhada sobre esses tópicos, consulte Os Arquivos IDL e ACF.

Definindo uma interface com MIDL

Arquivos MIDL são arquivos de texto que você pode criar e editar com um editor de texto. Se você gerar uma UUID para sua interface, normalmente armazenará a saída em um arquivo MIDL de modelo. Para obter mais informações sobre UUIDs, consulte Gerando UUIDs de interface.

Todas as interfaces em MIDL seguem o mesmo formato. Eles começam com um cabeçalho que contém uma lista de atributos de interface e o nome da interface. Os atributos são colocados entre colchetes. O cabeçalho da interface é seguido por seu corpo, que é colocado entre colchetes. Uma interface simples é mostrada no exemplo a seguir:

[
  uuid(ba209999-0c6c-11d2-97cf-00c04f8eea45),
  version(1.0)
]
interface MyInterface
{
  const unsigned short INT_ARRAY_LEN = 100;

  void MyRemoteProc( 
      [in] int param1,
      [out] int outArray[INT_ARRAY_LEN]
  );
}

Alguns dos atributos que normalmente aparecem em uma definição de interface MIDL são a UUID e o número de versão da interface. O corpo da definição da interface deve conter as declarações de procedimento de todos os procedimentos remotos na interface. Ele também pode conter as declarações de tipos de dados e constantes exigidas pela interface.

Todos os parâmetros nas declarações de procedimento remoto devem ser declarados como [in], [out], ou [in, out]. Essas declarações especificam que o programa cliente passa dados para um procedimento remoto, obtém dados de um procedimento remoto ou ambos. Para obter informações mais detalhadas sobre declarações de parâmetro de interface, consulte O corpo da interface IDL.

Compilando um arquivo MIDL

O compilador MIDL é uma ferramenta de linha de comando que é instalada automaticamente com o SDK (Platform Software Development Kit). Invoque-o em uma janela de comando digitando o comando midl, seguido pelo nome de um arquivo MIDL, na linha de comando. Verifique se o diretório que contém o compilador MIDL está no caminho. O exemplo a seguir ilustra seu uso:

midl MyApp.idl

Observe que você não precisará incluir a extensão se o nome do arquivo tiver a extensão .idl. Você também pode usar as opções de linha de comando do compilador MIDL inserindo-as entre o comando midl e o nome do arquivo. Isso é demonstrado no exemplo a seguir:

midl /acf MyApp.acf MyApp.idl

Neste exemplo, o compilador MIDL é executado usando o arquivo MyApp.idl como o arquivo de entrada. A opção de linha de comando /acf instrui o compilador a usar um ACF (arquivo de configuração de aplicativo) para entrada também. Os arquivos de configuração do aplicativo são discutidos mais detalhadamente nos Arquivos IDL e ACF.

Para obter informações mais detalhadas sobre como usar o compilador MIDL, consulte a MIDL (Linguagem de Definição de Interface da Microsoft) que contém informações sobre os seguintes tópicos: