Desenvolvendo a interface

Uma interface RPC descreve as funções remotas implementadas pelo programa de servidor. A interface garante que o cliente e o servidor se comuniquem usando as mesmas regras quando o cliente invoca um procedimento remoto que o servidor oferece. Uma interface consiste em um nome de interface, alguns atributos, tipo opcional ou definições constantes e um conjunto de declarações de procedimento. Cada declaração de procedimento deve conter um nome de procedimento, um tipo de retorno e uma lista de parâmetros.

As interfaces são definidas na MIDL (Linguagem de Definição de Interface da Microsoft). Se você estiver familiarizado com C ou C++, as definições de interface MIDL parecerão bastante simples. MIDL é semelhante a C e C++ de várias maneiras.

Ao desenvolver um aplicativo RPC, um editor de texto é usado para definir a interface e armazená-la em um arquivo de texto com uma extensão .idl. Para obter mais informações, consulte Os arquivos IDL e ACF. O compilador MIDL gera um arquivo de cabeçalho que seu programa inclui nos arquivos de origem do cliente e do servidor. O compilador MIDL também gera dois arquivos de origem C. Você compila e vincula um destes ao programa cliente e o outro ao programa de servidor. Esses dois arquivos de origem C são os stubs do cliente e do servidor. Para obter uma visão geral dos stubs do cliente e do servidor, consulte Como funciona o RPC. Para obter uma visão geral sobre o compilador MIDL, consulte Compilando um arquivo MIDL.

Por padrão, o stub do cliente e do servidor tem o mesmo nome, o que pode causar problemas se o cliente for vinculado ao stub do servidor ou vice-versa. O uso da opção MIDL /prefix impede que esse erro comum ocorra.

A ilustração a seguir mostra o processo de criação de uma interface.

a criação de stubs de cliente e servidor com a opção /prefix impede problemas acidentais de compilação

É possível que você também precise especificar um ACF (arquivo de configuração de aplicativo) para entrada no compilador MIDL também. Para obter mais informações sobre arquivos de configuração de aplicativos, consulte Arquivos IDL e ACF.

Além do compilador MIDL, normalmente você precisará usar o utilitário Uuidgen para gerar um UUID (Identificador Exclusivo Universal, intercambiável com o termo GUID). Esta seção apresenta informações sobre essas duas ferramentas, divididas nos seguintes tópicos: