模組 2. 在Windows-Based程式中使用 COM

本系列課程模組 1示範如何建立視窗並回應視窗訊息,例如WM_PAINTWM_CLOSE。 模組 2 介紹元件物件模型 (COM) 。

COM 是建立可重複使用軟體元件的規格。 您在新式Windows型程式中將使用的許多功能都依賴 COM,例如:

  • 圖形 (Direct2D)
  • 文字 (DirectWrite)
  • Windows殼層
  • 功能區控制項
  • UI 動畫

(這份清單中的某些技術使用 COM 子集,因此不是「純」COM.)

COM 有難以學習的信譽。 而且,撰寫支援 COM 的新軟體模組可能很棘手。 但是,如果您的程式完全是 COM 的 取用者 ,您可能會發現 COM 比您預期更容易瞭解。

此課程模組示範如何在程式中呼叫以 COM 為基礎的 API。 它也描述 COM 設計背後的一些原因。 如果您瞭解 COM 的設計方式為何,您可以更有效率地進行程式設計。 課程模組的第二個部分描述 COM 的一些建議程式設計做法。

COM 于 1993 年引進,以支持對象連結和內嵌 (OLE) 2.0。 人們有時會認為 COM 和 OLE 是相同的事。 這可能是 COM 難以學習的另一個原因。 OLE 2.0 建置在 COM 上,但您不需要知道 OLE 才能瞭解 COM。

COM 是 二進位標準,而非語言標準:它會定義應用程式與軟體元件之間的二進位介面。 COM 是二進位標準,雖然它自然對應至特定 C++ 建構,但 COM 是語言中性的。 本課程模組將著重于 COM 的三個主要目標:

  • 將 物件的實作與其介面分開。
  • 管理物件的存留期。
  • 在執行時間探索物件的功能。

本節內容

瞭解如何在 C++ 中Windows程式