Macros de portabilidade

As ferramentas RPC obtêm independência de modelo, chamada e convenção de nomenclatura associando tipos de dados e tipos de retorno de função nos arquivos stub gerados e arquivos de cabeçalho com definições específicas para cada plataforma. Essas definições de macro garantem que todos os tipos de dados e funções que exigem a designação de __far sejam especificados quanto aos objetos.

A figura a seguir mostra as definições de macro que o compilador MIDL aplica a chamadas de função entre componentes RPC:

Diagrama mostrando as definições de macro que MIDL se aplica a chamadas de função.

As macros RPC são definidas da seguinte maneira.

Definição Descrição
__RPC_API Aplicado a chamadas feitas pelo stub para o aplicativo de usuário. Ambas as funções estão no mesmo programa executável.
__RPC_FAR Aplicado à definição de macro padrão para ponteiros. Essa definição de macro deve aparecer como parte da assinatura de todas as funções fornecidas pelo usuário.
__RPC_STUB Aplicado a chamadas feitas da biblioteca em tempo de execução para o stub. Essas chamadas podem ser consideradas privadas.
__RPC_USER Aplicado a chamadas feitas pela biblioteca em tempo de execução para o aplicativo do usuário. Eles cruzam o limite entre uma DLL e um aplicativo.
RPC_ENTRY Aplicado a chamadas feitas pelo aplicativo ou stub para a biblioteca em tempo de execução. Essa definição de macro é aplicada a todas as funções de tempo de execução RPC.

Para vincular corretamente com as bibliotecas de tempo de execução, stubs e rotinas de suporte do Microsoft RPC, algumas funções fornecidas pelo usuário também devem incluir essas macros na definição da função. Use a macro __RPC_API quando você definir as funções associadas ao gerenciamento de memória, identificadores de associação definidos pelo usuário e o atributo transmit_as e usar a macro __RPC_USER ao definir a rotina de execução de contexto associada ao identificador de contexto. Especifique as funções como:

__RPC_USER midl_user_allocate(...)

__RPC_USER midl_user_free(...)

__RPC_USER handletype_bind(...)

__RPC_USER handletype_unbind(...)

tipo __RPC_USER_to_local

tipo __RPC_USER_from_local

__RPC_USER type_to_xmit(...)

__RPC_USER tipo_from_xmit(...)

tipo __RPC_USER_free_local

__RPC_USER tipo_free_inst(...)

__RPC_USER tipo_free_xmit(...)

__RPC_USER context_rundown(...)

Observação

Todos os parâmetros de ponteiro nessas funções devem ser especificados usando a macro __RPC_FAR.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows 2000 Server [somente aplicativos da área de trabalho]
Cabeçalho
Rpc.h