共用方式為


CDocObjectServer 類別

實作可讓一般 COleDocument 伺服器融入完整 DocObject 伺服器所需的其他 OLE 介面: IOleDocumentIOleDocumentViewIOleCommandTargetIPrint

語法

class CDocObjectServer : public CCmdTarget

成員

公用建構函式

名稱 描述
CDocObjectServer::CDocObjectServer 建構 CDocObjectServer 物件。

公用方法

名稱 描述
CDocObjectServer::ActivateDocObject 開機檔案物件服務器,但不會顯示它。

受保護的方法

名稱 描述
CDocObjectServer::OnActivateView 顯示 DocObject 檢視。
CDocObjectServer::OnApplyViewState 還原 DocObject 檢視的狀態。
CDocObjectServer::OnSaveViewState 儲存 DocObject 檢視的狀態。

備註

CDocObjectServer 衍生自 CCmdTarget ,並與 密切合作 COleServerDoc 以公開介面。

DocObject 伺服器檔可以包含 CDocObjectServerItem 物件,此物件代表 DocObject 專案的伺服器介面。

若要自訂 DocObject 伺服器,請從 CDocObjectServer 衍生您自己的類別,並覆寫其檢視設定函 式 OnActivateView OnApplyViewState OnSaveViewState 。 您必須提供 類別的新實例,以回應架構呼叫。

如需 DocObjects 的詳細資訊,請參閱 MFC 參考 中的 CDocObjectServerItem COleCmdUI

繼承階層架構

CObject

CCmdTarget

CDocObjectServer

需求

標頭: afxdocob.h

CDocObjectServer::ActivateDocObject

呼叫此函式以開機檔案物件服務器(但未顯示)。

void ActivateDocObject();

備註

ActivateDocObject會呼叫 IOleDocumentSiteActivateMe 方法,但不會顯示檢視,因為它會等候有關如何設定和顯示檢視的特定指示,如 CDocObjectServer::OnActivateView 呼叫 中所指定。

OnActivateView 起啟動 ActivateDocObject 並顯示 DocObject 檢視。 DocObject 啟用與其他類型的 OLE 就地啟用不同。 DocObject 啟用會略過顯示就地影線框線和物件裝飾(例如調整大小控點)、忽略物件範圍函式,並在檢視矩形內繪製捲軸,而不是在矩形外繪製捲軸(如同正常就地啟用)。

CDocObjectServer::CDocObjectServer

建構並初始化 CDocObjectServer 物件。

explicit CDocObjectServer(
    COleServerDoc* pOwner,
    LPOLEDOCUMENTSITE pDocSite = NULL);

參數

pOwner
用戶端月臺檔的指標,這是 DocObject 伺服器的用戶端。

pDocSite
容器所實作之介面的 IOleDocumentSite 指標。

備註

當 DocObject 作用中時,用戶端網站 OLE 介面 ( IOleDocumentSite ) 是允許 DocObject 伺服器與其用戶端通訊的功能(容器)。 啟動 DocObject 伺服器時,它會先檢查容器是否實作 IOleDocumentSite 介面。 如果是, 則會呼叫 COleServerDoc::GetDocObjectServer ,以查看容器是否支援 DocObjects。 根據預設, GetDocObjectServer 會傳回 Null。 您必須覆寫 COleServerDoc::GetDocObjectServer 以建構新 CDocObjectServer 物件或您自己的衍生物件,並將容器及其 IOleDocumentSite 介面的指標 COleServerDoc 當做建構函式的引數。

CDocObjectServer::OnActivateView

呼叫此函式以顯示 DocObject 檢視。

virtual HRESULT OnActivateView();

傳回值

傳回錯誤或警告值。 如果成功,預設會傳回 NOERROR;否則,E_FAIL。

備註

此函式會建立就地框架視窗、在檢視內繪製捲軸、設定伺服器與其容器共用的功能表、新增框架控制項、設定使用中物件,最後顯示就地框架視窗並設定焦點。

CDocObjectServer::OnApplyViewState

覆寫此函式以還原 DocObject 檢視的狀態。

virtual void OnApplyViewState(CArchive& ar);

參數

Ar
CArchive 從中序列化檢視狀態的物件。

備註

當檢視在具現化後第一次顯示時,就會呼叫此函式。 OnApplyViewState會指示檢視根據先前以 OnSaveViewState 儲存之 CArchive 物件中的資料重新初始化本身。 檢視必須驗證 物件中的資料 CArchive ,因為容器不會以任何方式嘗試解譯檢視狀態資料。

您可以使用 OnSaveViewState 來儲存檢視狀態特有的持續性資訊。 如果您覆寫 OnSaveViewState 以儲存資訊,您會想要覆寫 OnApplyViewState 以讀取該資訊,並在新啟動時將其套用至檢視。

CDocObjectServer::OnSaveViewState

覆寫此函式,以儲存 DocObject 檢視的額外狀態資訊。

virtual void OnSaveViewState(CArchive& ar);

參數

Ar
串列 CArchive 化檢視狀態的物件。

備註

您的狀態可能包含檢視類型、縮放因數、插入和選取點等屬性。 容器通常會在停用檢視之前呼叫此函式。 儲存的狀態稍後可透過 OnApplyViewState 還原。

您可以使用 OnSaveViewState 來儲存檢視狀態特有的持續性資訊。 如果您覆寫 OnSaveViewState 以儲存資訊,您會想要覆寫 OnApplyViewState 以讀取該資訊,並在新啟動時將其套用至檢視。

另請參閱

CCmdTarget 類別
階層架構圖表
CDocObjectServerItem 類別