註冊

當使用者想要將 OLE 項目插入至應用程式時,OLE 便會顯示一份可從中選擇的物件型別。OLE 會取得這份清單,從系統登錄資料庫,其中包含所有伺服應用程式所提供的資訊。當伺服器將會自行登錄時,它會將放入系統登錄資料庫 (登錄) 的項目描述每一種它所提供的物件時,檔案副檔名,以及路徑本身,許多資訊。

架構和 OLE 系統動態連結程式庫 (DLL) 使用這個登錄來判斷在系統上使用何種 OLE 項目。OLE 系統 Dll 也使用這個登錄來決定如何啟動伺服應用程式時就會啟動連結或內嵌的物件。

本文將告訴您每個伺服器應用程式需要進行安裝時,每次執行。

如需系統登錄資料庫以及可用來更新它的.reg 檔案格式的詳細資訊,請參閱 OLE 程式設計人員參考

伺服器安裝

當您第一次安裝伺服器應用程式時,它應該會記錄所有型別所支援的 OLE 項目。您也可以讓每一次,則會當做獨立的應用程式執行更新系統登錄資料庫伺服器。這會註冊資料庫保持最新狀態,如果伺服器的可執行檔案被移動。

注意事項注意事項

應用程式精靈所自動產生的 MFC 應用程式註冊的方式在以獨立應用程式執行時。

如果您想要註冊您的應用程式在安裝期間,使用 RegEdit.exe 程式。(在 Windows 95、 Windows 98 和 Windows ME,登錄是 Windows 目錄中。在 Windows NT 和 Windows 2000 中,登錄是 Windows System32 目錄中)。如果您將您的應用程式包括安裝程式,必須執行安裝程式 」 RegEdit /S 應用程式名稱.reg"。(/S 旗標表示無訊息作業,也就是不會顯示 [報告成功完成指令] 對話方塊)。否則,指示使用者的身分執行以手動方式。

注意事項注意事項

應用程式精靈所建立的.reg 檔案不包含可執行檔的完整路徑。安裝程式必須修改此.reg 檔案以便包含可執行檔的完整路徑,或修改 PATH 環境變數來包含此安裝目錄。

登錄會將.reg 的文字檔案的內容合併到登錄資料庫。若要驗證資料庫或進行修復,請使用 「 登錄編輯器 」。謹慎地避免刪除重要的 OLE 項目。(在 Windows 95、 Windows 98 和 Windows ME 中,登錄編輯程式是 RegEdit.exe。在 Windows NT 和 Windows 2000 中,它是 RegEdit32.exe)。

伺服器初始化

當您使用應用程式精靈建立伺服器應用程式時,精靈會完成所有初始設定工作為您自動。本節說明若您以手動方式撰寫伺服器應用程式,您須執行的作業。

伺服器應用程式啟動時由容器應用程式,OLE 系統 Dll 會新增至伺服器的命令列"/ 內嵌"選項。伺服器應用程式的行為不同,取決於是否則啟動的一種容器,這樣它就會開始執行時的應有做法應用程式會先檢查是否有"/ 內嵌"或"-內嵌 」 命令列選項。如果這個參數,載入不同的一組資源,以顯示為其中一個就地啟動伺服器,或完全開啟。如需詳細資訊,請參閱功能表和資源: 伺服加入

您的伺服器應用程式也應該要呼叫其CWinApp::RunEmbedded函式,分析命令列。如果它傳回非零值,應用程式不應該顯示其視窗因為它已從容器應用程式,不是以獨立的應用程式執行。這個函式會更新伺服器的項目,在系統登錄資料庫和呼叫RegisterAll成員函式,讓您執行執行個體登錄。

當您的伺服器應用程式啟動時,您必須確定它可以執行執行個體登錄。執行個體登錄會告訴 OLE 系統 Dll 伺服器作用中且準備好可以接收來自容器的要求。它不會登錄資料庫中新增一個項目。執行伺服器的執行個體登錄藉由呼叫ConnectTemplate所定義的成員函式COleTemplateServer。這會連接CDocTemplate物件到COleTemplateServer物件。

ConnectTemplate函式接受三個參數: 伺服器的 CLSID,變數的指標, CDocTemplate物件和旗標,表示伺服器是否支援多個執行個體。迷你伺服程式必須能夠支援多個執行個體,也就是,它必須是有可能要同時執行,另一個則用於每個容器的伺服器的多個執行個體。因此,傳遞 ,則為 TRUE 啟動迷你伺服程式時,此旗標。

如果您正在撰寫迷你伺服程式,根據它永遠都由容器啟動的定義。您仍應剖析命令列來檢查有"/ 內嵌"選項。這個選項在命令列表示使用者已嘗試啟動迷你伺服程式,做為獨立的應用程式。如果發生這種情況,則登錄與系統登錄資料庫的伺服器,然後顯示訊息方塊通知使用者啟動迷你伺服程式,從一個容器應用程式。

請參閱

參考

CWinApp::RunAutomated

CWinApp::RunEmbedded

COleTemplateServer 類別

概念

MFC 中的 OLE

伺服器