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.
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.
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:
- Requisitos do pré-processador C para MIDL
- Considerações do compilador C/C++
- Arquivos gerados para uma interface RPC
- Referência de linha de comando MIDL
- Referência de linguagem MIDL
- Erros e avisos do compilador MIDL