Delen via


Interface Marshaling (gegevensuitwisseling tussen interfaces)

Tenzij u zeker weet dat uw interface nooit zal worden gebruikt binnen appartements-, thread- of procesgrenzen, moet u beslissen hoe u marshaling-ondersteuning voor uw interfaces kunt bieden. Er zijn drie manieren om marshaling-ondersteuning te bieden:

  • Schrijf uw eigen proxy-/stubcode die het COM-kanaal aanroept, die op zijn beurt de RPC-runtimebibliotheken aanroept. Theoretisch is het mogelijk om dit te doen, maar in de praktijk is het bijna onmogelijk om te doen zonder een aanzienlijke hoeveelheid inspanning.
  • Beschrijf uw interfaces in een IDL-bestand (Interface Definition Language) en gebruik de MIDL-compiler om een proxy-/stub-DLL te genereren. Deze methode biedt de beste prestaties en de meeste flexibiliteit in termen van acceptabele gegevenstypen. Met behulp van door MIDL gegenereerde proxy-stubs kunt u niet alleen het geheugenbeheer beheren, maar zelfs het marshalen en demarshalen van complexe gegevenstypen op verschillende platforms.
  • Gebruik MIDL om een typebibliotheek te genereren die door het systeem wordt gebruikt om marshaling-ondersteuning te bieden tijdens runtime. Dit is de eenvoudigste manier om marshaling-ondersteuning te implementeren. U hoeft alleen maar een typebibliotheek te genereren en te registreren. Uw interfaces moeten compatibel zijn met Automation (oleautomation of dubbele), waardoor bepaalde beperkingen gelden voor de soorten gegevenstypen die u kunt gebruiken als methodeparameters. In de meeste gevallen is het voordeel echter dat uw interfaces toegankelijk zijn voor programma's die zijn geschreven in andere talen, zoals Microsoft Visual Basic en Java, opwegen tegen de beperkingen van gegevenstypen.

Inter-Object Communicatie