CDocObjectServer 類別
實作可讓一般 COleDocument
伺服器融入完整 DocObject 伺服器所需的其他 OLE 介面: IOleDocument
、 IOleDocumentView
、 IOleCommandTarget
和 IPrint
。
語法
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。
繼承階層架構
CDocObjectServer
需求
標頭: afxdocob.h
CDocObjectServer::ActivateDocObject
呼叫此函式以啟動檔案物件伺服器(但未顯示)。
void ActivateDocObject();
備註
ActivateDocObject
會呼叫 IOleDocumentSite
的 ActivateMe
方法,但不會顯示檢視,因為它會等候有關如何設定和顯示檢視的特定指示,如 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
以讀取該資訊,並在新啟動時將其套用至檢視。