Compartilhar via


Interface Marshaling

A menos que você saiba, sem sombra de dúvidas, que sua interface nunca será usada através dos limites de apartamento, thread ou processo, você precisa decidir como fornecer suporte de empacotamento para suas interfaces. Há três maneiras de fornecer suporte de marshaling:

  • 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. Esse método fornece o melhor desempenho e a maior flexibilidade em termos de tipos de dados aceitáveis. Usando stubs de proxy gerados por MIDL, você pode controlar não apenas o gerenciamento de memória, mas até mesmo o empacotamento e o desempacotamento de tipos de dados complexos em diferentes plataformas.
  • Use MIDL para gerar uma biblioteca de tipos que o sistema usa para fornecer suporte a empacotamento em tempo de 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 nos tipos de dados.

Comunicação entre Objetos