共用方式為


容器: 進階的功能

本文說明將選擇性的進階的功能合併到現有容器應用程式所需的步驟。 這些功能包括:

  • 容器和伺服應用程式

  • } 您要內嵌物件

建立容器/伺服應用程式

容器/伺服應用程式是做為容器和伺服應用程式。 文件視窗是一個例子。 您可以將 Windows 的 Word 文件內嵌在其他應用程式,而且您也可以在 Windows 的 Word 文件中內嵌的項目。 修改容器應用程式是容器和全伺服 (您不能建立組合容器/迷你伺服應用程式) 的程序很類似建立完整的伺服器的程序。

發行項伺服器: 實作一個伺服程式列出一些實作伺服器應用程式所需的工作。 如果您轉換到容器/伺服應用程式的一個容器應用程式,然後您需要執行一些那些相同的工作,將程式碼加入至容器。 下面列出要考量的重要事項:

  • 已經由應用程式精靈建立容器程式碼會將初始化 OLE 子系統。 您不需要變更或加入為該支援的任何項目。

  • 為文件類別的基底類別的任何地方COleDocument,變更該基底類別COleServerDoc

  • 覆寫COleClientItem::CanActivate若要避免編輯位置中的項目,而使用就地編輯伺服器本身。

    例如,MFC OLE 範例 OCLIENT 已嵌入容器/伺服應用程式所建立的項目。 開啟 OCLIENT 應用程式並就地編輯由容器/伺服應用程式所建立的項目。 在編輯您的應用程式項目,請您決定您想要嵌入 MFC OLE 範例所建立的項目 HIERSVR。 若要這樣做,您不能使用就地啟動。 您必須完全開啟 HIERSVR 啟動此項目。 因為 Mfc 程式庫不支援此 OLE 功能,覆寫COleClientItem::CanActivate可讓您以檢查是否有這種情況下,以避免可能的執行階段錯誤,在您的應用程式中。

如果您要建立新的應用程式,並要它作用為容器/伺服應用程式,請選擇在應用程式精靈] 和 [這項支援的 OLE 選項] 對話方塊中的選項就會自動建立。 如需詳細資訊,請參閱下面的文件概觀: 建立 ActiveX 控制項容器。 如需 MFC 範例的相關資訊,請參閱 MFC 範例。

請注意您不能插入 MDI 應用程式本身。 做為容器/伺服應用程式無法插入至本身,除非是 SDI 應用程式。

內嵌的物件有連結

連結,以內嵌物件的功能可讓使用者能夠建立具有容器應用程式裡內嵌物件之 OLE 連結的文件。 例如,建立包含內嵌試算表的文書處理器中的文件。 如果您的應用程式支援內嵌的物件有連結,它無法貼上 「 文書處理器中的文件中包含試算表的連結。 這項功能可讓您的應用程式使用而不需要知道其中文字處理器原本得對包含試算表中的資訊。

若要連結至您的應用程式中的內嵌物件

  1. 衍生您的文件類別,從COleLinkingDoc而不是COleDocument

  2. 建立的 OLE 類別識別碼 (CLSID) 應用程式使用 OLE 開發工具所附的類別識別碼產生器。

  3. 使用 OLE 註冊的應用程式。

  4. 建立COleTemplateServer物件,為您的應用程式類別的成員。

  5. 在您的應用程式類別InitInstance成員函式,執行下列動作:

    • 連接您COleTemplateServer物件至您的文件範本,藉由呼叫物件的ConnectTemplate成員函式。

    • 呼叫 COleTemplateServer::RegisterAll 成員函式以註冊以 OLE 系統的所有類別物件。

    • 請呼叫 COleTemplateServer::UpdateRegistry。 唯一的參數為UpdateRegistry應該是OAT_CONTAINER如果加上"/ 內嵌"的參數不啟動應用程式。 這會將應用程式註冊為可支援內嵌的物件有連結的容器。

      如果啟動應用程式時加上"/ 內嵌"的參數,它不應該顯示主視窗,類似於伺服器應用程式。

MFC OLE 範例 OCLIENT 實作這項功能。 如需如何這麼做的範例,請參閱InitInstance在 OCLIENT 的函式。此範例應用程式的 CPP 檔。

請參閱

概念

容器

伺服器