分享方式:


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 衍生您自己的類別,並覆寫其檢視設定函 式 OnActivateViewOnApplyViewStateOnSaveViewState。 您必須提供 類別的新實例,以回應架構呼叫。

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

繼承階層架構

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 類別