Partilhar via


Interface Marshaling

A menos que saiba, além de qualquer incerteza, que a sua interface nunca será utilizada entre fronteiras de apartamentos, threads ou processos, é necessário decidir como fornecer suporte de organização para as suas interfaces. "Há três maneiras de fornecer suporte ao marshaling (transferência de dados):"

  • Escreva seu próprio código proxy/stub que chama o canal COM, que por sua vez chama as bibliotecas de tempo de execução RPC. Teoricamente, é possível fazer isso, mas na prática é quase impossível fazer sem uma quantidade significativa de esforço.
  • Descreva suas interfaces em um arquivo IDL (linguagem de definição de interface) e use o compilador MIDL para gerar uma DLL proxy/stub. Este método proporciona o melhor desempenho e a maior flexibilidade em termos de tipos de dados aceitáveis. Usando stubs de proxy gerados por MIDL, pode controlar não apenas a gestão de memória, mas até mesmo a serialização e desserialização de tipos de dados complexos em diferentes plataformas.
  • Utilize o MIDL para gerar uma biblioteca de tipos que o sistema utiliza para fornecer suporte ao marshaling durante a execução. Esta é a maneira mais fácil de implementar o suporte a marshaling. Tudo o que você precisa fazer é gerar uma biblioteca de tipos e registrá-la. Suas interfaces devem ser compatíveis com automação ( oleautomation ou dual), o que coloca algumas restrições sobre os tipos de dados que você pode usar como parâmetros de método. No entanto, na maioria dos casos, a vantagem de ter suas interfaces acessíveis a programas escritos em outras linguagens, como Microsoft Visual Basic e Java, supera as limitações dos tipos de dados.

Inter-Object Comunicação