CDocObjectServer – třída
Implementuje další rozhraní OLE potřebná k vytvoření normálního COleDocument
serveru na úplný server DocObject: IOleDocument
, IOleDocumentView
, IOleCommandTarget
a IPrint
.
Syntaxe
class CDocObjectServer : public CCmdTarget
Členové
Veřejné konstruktory
Název | Popis |
---|---|
CDocObjectServer::CDocObjectServer | CDocObjectServer Vytvoří objekt. |
Veřejné metody
Název | Popis |
---|---|
CDocObjectServer::ActivateDocObject | Aktivuje server objektů dokumentu, ale nezobrazuje ho. |
Chráněné metody
Název | Popis |
---|---|
CDocObjectServer::OnActivateView | Zobrazí zobrazení DocObject. |
CDocObjectServer::OnApplyViewState | Obnoví stav zobrazení DocObject. |
CDocObjectServer::OnSaveViewState | Uloží stav zobrazení DocObject. |
Poznámky
CDocObjectServer
je odvozen z CCmdTarget
rozhraní a úzce spolupracuje s COleServerDoc
jejich zveřejněním.
Dokument serveru DocObject může obsahovat objekty CDocObjectServerItem , které představují rozhraní serveru pro položky DocObject.
Chcete-li přizpůsobit server DocObject, odvodit vlastní třídu z CDocObjectServer
a přepsat jeho instalační funkce zobrazení, OnActivateView, OnApplyViewState a OnSaveViewState. V reakci na volání architektury budete muset poskytnout novou instanci vaší třídy.
Další informace o DocObjects naleznete v tématu CDocObjectServerItem a COleCmdUI v referenční dokumentaci MFC.
Hierarchie dědičnosti
CDocObjectServer
Požadavky
Hlavička: afxdocob.h
CDocObjectServer::ActivateDocObject
Voláním této funkce aktivujete (ale nezobrazí) server objektů dokumentu.
void ActivateDocObject();
Poznámky
ActivateDocObject
volá IOleDocumentSite
metodu ActivateMe
, ale nezobrazuje zobrazení, protože čeká na konkrétní pokyny k nastavení a zobrazení zobrazení, které je uvedeno ve volání CDocObjectServer::OnActivateView.
ActivateDocObject
Společně a OnActivateView
aktivujte a zobrazte zobrazení DocObject. Aktivace Objektu DocObject se liší od jiných druhů místní aktivace OLE. Aktivace Objektu DocObject obchází zobrazení místních ohraničení šrafování a doplňků objektů (například úchytů pro změnu velikosti), ignoruje funkce rozsahu objektů a nakreslí posuvníky v obdélníku zobrazení, na rozdíl od jejich vykreslení mimo tento obdélník (jako v normální místní aktivaci).
CDocObjectServer::CDocObjectServer
Vytvoří a inicializuje CDocObjectServer
objekt.
explicit CDocObjectServer(
COleServerDoc* pOwner,
LPOLEDOCUMENTSITE pDocSite = NULL);
Parametry
Vlastník pOwner
Ukazatel na dokument klientské lokality, který je klientem pro server DocObject.
pDocSite
Ukazatel na IOleDocumentSite
rozhraní implementované kontejnerem.
Poznámky
Když je objekt DocObject aktivní, rozhraní OLE klientské lokality ( IOleDocumentSite
) umožňuje serveru DocObject komunikovat s jeho klientem (kontejnerem). Při aktivaci serveru DocObject nejprve zkontroluje, že kontejner implementuje IOleDocumentSite
rozhraní. Pokud ano, COleServerDoc::GetDocObjectServer je volána, aby se zjistilo, jestli kontejner podporuje DocObjects. Ve výchozím nastavení GetDocObjectServer
vrátí hodnotu NULL. Chcete-li vytvořit nový CDocObjectServer
objekt nebo odvozený objekt vlastní, je nutné přepsat COleServerDoc::GetDocObjectServer
ukazatele na COleServerDoc
kontejner a jeho IOleDocumentSite
rozhraní jako argumenty konstruktoru.
CDocObjectServer::OnActivateView
Voláním této funkce zobrazíte zobrazení DocObject.
virtual HRESULT OnActivateView();
Návratová hodnota
Vrátí chybu nebo hodnotu upozornění. Ve výchozím nastavení vrátí funkce NOERROR, pokud je úspěšná; jinak E_FAIL.
Poznámky
Tato funkce vytvoří místní rámeček okno, nakreslí posuvníky v zobrazení, nastaví nabídky, které server sdílí se svým kontejnerem, přidá ovládací prvky rámečku, nastaví aktivní objekt a nakonec zobrazí místní okno rámečku a nastaví fokus.
CDocObjectServer::OnApplyViewState
Přepište tuto funkci, aby se obnovil stav zobrazení DocObject.
virtual void OnApplyViewState(CArchive& ar);
Parametry
ar
Objekt CArchive
, ze kterého chcete serializovat stav zobrazení.
Poznámky
Tato funkce se volá při prvním zobrazení zobrazení po vytvoření instance. OnApplyViewState
dává pokyn zobrazení k opětovné inicializaci sebe podle dat v objektu CArchive
dříve uloženém pomocí OnSaveViewState. Zobrazení musí ověřit data v objektu CArchive
, protože se kontejner nepokoušá interpretovat data o stavu zobrazení žádným způsobem.
Můžete použít OnSaveViewState
k ukládání trvalých informací specifických pro stav zobrazení. Pokud přepíšete OnSaveViewState
ukládání informací, budete chtít tyto informace přepsat OnApplyViewState
, abyste tyto informace přečetli a použili ho v zobrazení, když je nově aktivovaný.
CDocObjectServer::OnSaveViewState
Přepište tuto funkci, aby se uložily další informace o stavu zobrazení DocObject.
virtual void OnSaveViewState(CArchive& ar);
Parametry
ar
CArchive
Objekt, do kterého je stav zobrazení serializován.
Poznámky
Váš stav může obsahovat vlastnosti, jako je typ zobrazení, faktor přiblížení, kurzor a bod výběru atd. Kontejner obvykle volá tuto funkci před deaktivací zobrazení. Uložený stav lze později obnovit prostřednictvím OnApplyViewState.
Můžete použít OnSaveViewState
k ukládání trvalých informací specifických pro stav zobrazení. Pokud přepíšete OnSaveViewState
ukládání informací, budete chtít tyto informace přepsat OnApplyViewState
, abyste tyto informace přečetli a použili ho v zobrazení, když je nově aktivovaný.
Viz také
CCmdTarget – třída
Graf hierarchie
CDocObjectServerItem – třída