共用方式為


自動化

自動化(前稱為 OLE Automation)允許一個應用程式操作在另一個應用程式中實作的物件,或公開物件以便被操作。

自動化伺服器是一種應用程式(COM 伺服器類型),可透過 COM 介面向其他應用程式公開其功能,稱為自動化用戶端。 介面可讓自動化用戶端直接存取物件並使用其所提供的服務,以達成特定功能的自動化。

自動化伺服器和用戶端會使用一律衍生自 IDispatch 的 COM 介面,並取得並傳回一組稱為自動化類型的特定數據類型。 您可以將公開自動化介面的任何物件自動化,並提供可從其他應用程式存取的方法和屬性。 自動化適用於 OLE 和 COM 物件。 自動化物件可能是本機或遠端(在另一部可透過網路存取的計算機上):因此,自動化有兩種類別:

  • 自動化(本機)。

  • 遠端自動化(透過網路使用分散式 COM 或DCOM)。

當應用程式提供對其他應用程式有用的功能時,將物件暴露是有益的。 例如,ActiveX 控制件是自動化伺服器的類型;裝載 ActiveX 控制件的應用程式是該控制件的自動化用戶端。

另一個範例是,字處理器可能會將其拼字檢查功能公開給其他程式。 物件的曝光或公開使廠商能使用其他應用程式的現有功能來改善其應用程式。 如此一來,自動化會在應用程式本身層級套用一些面向對象程式設計的原則,例如可重複使用性和封裝。

更重要的是自動化提供給使用者和解決方案提供者的支援。 藉由透過通用、定義完善的介面公開應用程式功能,自動化可讓您以單一一般程式設計語言來建置完整的解決方案,例如Microsoft Visual Basic,而不是以不同的應用程式特定巨集語言來建置。

許多商業應用程式,例如Microsoft Excel 和 Microsoft Visual C++,可讓您將大部分功能自動化。 例如,在 Visual C++中,您可以撰寫 VBScript 巨集,將建置、程式代碼編輯或偵錯工作的各個層面自動化。

在自動化中傳遞參數

建立自動化方法的一個困難在於提供統一的「安全」機制,以在自動化伺服器與客戶端之間傳遞數據。 自動化會使用 VARIANT 類型來傳遞數據。 VARIANT 類型是標記聯集。 它有一個用於存儲值的資料成員(這是一個匿名C++聯合體)以及一個指出儲存在聯合體中資訊類型的資料成員。 VARIANT 類型支援一些標準數據類型:2 和 4 位元組整數、4 位元組和 8 位元組浮點數、字串和布林值。 此外,它也支援 HRESULT (OLE 錯誤碼)、CURRENCY(固定點數值類型),以及 DATE (絕對日期和時間) 類型,以及和 IUnknown 介面的IDispatch指標。

VARIANT 類型會封裝在 COleVariant 類別中。 支援的 CURRENCYDATE 類別會封裝在 COleCurrencyCOleDateTime 類別中。

自動化範例

  • AUTOCLIK 使用此範例來學習自動化技術和作為學習遠端自動化的基礎。

  • ACDUAL 將雙重介面新增至自動化伺服器應用程式。

  • CALCDRIV 驅動 MFCCALC 的自動化用戶端應用程式。

  • INPROC 示範自動化伺服器應用程式 In-Process。

  • IPDRIVE 自動化用戶端應用程式驅動 INPROC。

  • MFCCALC 示範自動化客戶端應用程式。

您想要深入了解什麼

您要做什麼

另請參閱

MFC COM