自訂標準包裝函式
更新:2007 年 11 月
這個主題描述用來自訂標準執行階段可呼叫包裝函式和 COM 可呼叫包裝函式的程序。
執行階段可呼叫包裝函式
當 .NET 用戶端啟動 COM 物件時,執行階段會產生執行階段可呼叫包裝函式 (RCW) 的執行個體來包裝 COM 型別。如下圖所示,執行階段使用了從匯入 COM 型別程式庫取得的中繼資料來產生 RCW。這個包裝函式則是依據 Interop 封送處理服務建立的規則來封送處理資料。
RCW 產生和方法呼叫
有兩種方式可以自訂 RCW。如果您可以修改介面定義語言 (IDL) 原始程式碼,您可以套用型別程式庫檔案 (TLB) 屬性,並且匯入型別程式庫。要不然,您可以將 Interop 專屬屬性套用至匯入型別,並且產生新的組件。對自訂標準 RCW 的支援會受這些屬性的限制。如需相關說明,請參閱 HOW TO:自訂執行階段可呼叫包裝函式。
COM 可呼叫包裝函式
COM 可呼叫包裝函式 (CCW) 會將 .NET Framework 物件公開給 COM。藉由將 Managed 專案編譯成為組件 DLL,您可以自動地建立描述組件中每種型別所需的中繼資料。每當 COM 用戶端啟動 Managed 物件時,執行階段便會使用中繼資料來產生 CCW。
若要自訂 CCW,請將 Interop 專屬屬性套用至 Managed 原始程式碼,並將原始程式碼編譯成為組件,如下圖中所示。在這個範例中,Tlbexp.exe 會將 Managed 型別轉換為 COM。
CCW 產生和方法呼叫
藉由將屬性套用至程式碼,您可以改變 Interop 封送處理服務範圍內的介面和資料封送處理行為。例如,您可以控制做為引數傳遞給方法之資料的格式。您也可以控制組件中的哪些型別要公開給 COM。