Share via


介面封送處理

除非您完全知道您的介面永遠不會跨 Apartment、線程或進程界限使用,否則您必須決定如何為您的介面提供封送處理支援。 有三種方式可提供封送處理支援:

  • 撰寫您自己的 Proxy/存根程式代碼,以呼叫 COM 通道,進而呼叫 RPC 運行時間連結庫。 理論上,這樣做是可能的,但在實務上,幾乎不可能做,沒有大量的努力。
  • 在介面定義語言 (IDL) 檔案中描述您的介面,並使用 MIDL 編譯程式來產生 Proxy/存根 DLL。 這個方法提供可接受的數據類型的最佳效能和最大彈性。 使用 MIDL 產生的 Proxy 存根,您不僅可以控制記憶體管理,還可以控制跨不同平臺之複雜數據類型的封送處理和取消分送處理。
  • 使用 MIDL 來產生類型連結庫,系統用來在運行時間提供封送處理支援。 這是實作封送處理支援的最簡單方式。 您只需要產生類型連結庫並加以註冊。 您的介面必須與自動化相容(無論是 oleautomationdual),這會對您可以使用做為方法參數的數據類型類型設定一些限制。 不過,在大部分情況下,讓以其他語言撰寫的程式存取介面的優點,例如 Microsoft Visual Basic 和 Java,超過數據類型的限制。

對象間通訊