Share via


複合檔

OLE 複合檔可讓使用者在單一應用程式中工作,以各種格式撰寫及衍生自多個來源的數據。 例如,使用者可能會插入文字處理檔中第二個應用程式中建立的圖形,以及在第三個應用程式中建立的聲音物件。 啟用圖形會導致第二個應用程式載入其使用者介面,或至少包含編輯物件所需工具的元件。 啟動音效物件會導致第三個應用程式播放它。 在這兩種情況下,使用者都可以從單一檔的內容中操作來自外部來源的數據。

OLE 複合文件技術的基礎是由 COM、結構化記憶體和統一數據傳輸所組成。 如下所述,這些核心技術在 OLE 復合檔中扮演重要角色:

Com

複合檔物件基本上是可以內嵌或連結至現有檔的 COM 物件。 作為 COM 物件,複合文件物件會公開 IUnknown 介面,用戶端可以透過此介面取得其其他介面的指標,包括數個介面,例如 IOleObjectIOleLinkIViewObject2,以提供複合文件物件特有的特殊功能。

結構化 儲存體

複合文件對象必須實作 IPersist 儲存體 或選擇性地實作 IPersistStream 介面來管理自己的記憶體。 用來建立複合檔的容器必須提供 I 儲存體 介面,透過該介面來儲存和擷取數據。 容器幾乎一律會提供從 OLE 的複合檔案實作取得的 I 儲存體 實例。 容器也必須使用物件的 IPersist 儲存體 和/或 IPersistStream 介面。

統一數據傳輸

支援複合檔案的應用程式必須實 作 IDataObject ,因為內嵌物件和鏈接物件會以已使用特殊 OLE 剪貼簿格式傳輸的數據開始,而不是標準 Microsoft Windows 剪貼簿格式。 換句話說,將數據格式化為內嵌或鏈接物件只是 OLE 統一數據傳輸模型提供的一個選項。

OLE 的複合文件技術同時有利於軟體開發人員和使用者。 軟體開發人員現在不覺得有義務將每個可想像的功能塞入單一應用程式,而是可以自由開發更小型、更專注的應用程式,而依賴其他應用程式來提供其他功能。 如果軟體開發人員決定為應用程式提供其核心功能以外的功能,開發人員可以將這些額外的服務實作為個別 DLL,這些 DLL 只有在需要服務時才會載入記憶體中。 使用者受益於更小、更快速、更有能力的軟體,這些軟體可以視需要混合和比對,從單一主控檔中操作所有必要的元件。

如需詳細資訊,請參閱下列主題:

資料傳輸

結構化 儲存體