定義 COM 介面

Microsoft 會定義許多 COM 介面。 在大部分情況下,您可以重複使用這些泛型介面。 不過,有些應用程式有特定需求,因此需要或有必要定義您自己的物件介面。

所有 COM 介面都必須直接或間接衍生自 IUnknown 介面。 在該條件約束內,您的自定義介面幾乎可以支援任何方法或參數,包括異步方法。 您也可以為自定義介面產生類型庫,讓用戶端可以在運行時間存取物件方法的相關信息。 定義介面之後,請在 Microsoft 介面定義語言 (MIDL) 中加以描述,並加以編譯並註冊,您可以使用它就像任何泛型介面一樣。 使用分散式 COM 時,遠端進程和同一部電腦上的其他進程都可以使用介面方法。

最後,建置 COM 介面需要包含 C/C++ 編譯程式和Midl.exe編譯程式的開發環境。

建立 COM 介面的步驟如下:

  • 決定您想要如何為您的介面提供封送處理支援;類型連結庫驅動封送處理或 Proxy/存根 DLL。 即使跨 Apartment 界限使用進程內介面也必須封送處理。 在每一個 COM 介面中建置封送處理支援是個好主意,即使您不認為需要它也一樣。 如需詳細資訊,請參閱 介面封送處理
  • 描述介面定義 (IDL) 檔案中的介面或介面。 此外,您可以在應用程式組態檔 (ACF) 中指定介面的特定本機層面。 如果您使用類型連結庫驅動封送處理,請新增 連結庫 語句,以參考您要產生類型資訊的介面。
  • 使用 MIDL 編譯程式來產生類型連結庫檔案和標頭檔,或 C 語言 Proxy/存根檔案、介面標識符檔案、DLL 資料檔和標頭檔。 如需詳細資訊,請參閱 MIDL 編譯
  • 根據您選擇的封送處理方法,撰寫模組定義 (DEF) 檔案、編譯並連結所有 MIDL 產生的檔案到單一 Proxy DLL,並在系統登錄中註冊介面,或註冊類型連結庫。 如需詳細資訊,請參閱 載入和註冊類型庫建置和註冊 Proxy DLL

IDL 檔案的結構

COM 用戶端和伺服器

介面設計規則

元件物件模型