Megosztás:


CDocObjectServer osztály

Implementálja a normál COleDocument kiszolgáló teljes DocObject-kiszolgálóvá alakításához szükséges további OLE-adaptereket: IOleDocument, IOleDocumentView, IOleCommandTargetés IPrint.

Szemantika

class CDocObjectServer : public CCmdTarget

Tagok

Nyilvános konstruktorok

Név Leírás
CDocObjectServer::CDocObjectServer Egy CDocObjectServer objektumot hoz létre.

Nyilvános metódusok

Név Leírás
CDocObjectServer::ActivateDocObject Aktiválja a dokumentumobjektum-kiszolgálót, de nem jeleníti meg.

Védett metódusok

Név Leírás
CDocObjectServer::OnActivateView Megjeleníti a DocObject nézetet.
CDocObjectServer::OnApplyViewState Visszaállítja a DocObject nézet állapotát.
CDocObjectServer::OnSaveViewState Menti a DocObject nézet állapotát.

Megjegyzések

CDocObjectServer CCmdTarget származik, és szorosan együttműködikCOleServerDoc, hogy elérhetővé tegye a felületeket.

A DocObject-kiszolgáló dokumentumai CDocObjectServerItem objektumokat tartalmazhatnak, amelyek a DocObject-elemek kiszolgálói felületét jelölik.

A DocObject-kiszolgáló testreszabásához saját osztályt kell létrehoznia, és felül kell bírálnia annak nézetbeállítási funkcióit CDocObjectServer , az OnActivateView, az OnApplyViewState és az OnSaveViewState parancsot. A keretrendszerhívásokra válaszul meg kell adnia az osztály új példányát.

További információ a DocObjectsről: CDocObjectServerItem és COleCmdUI az MFC-referenciaban.

Öröklési hierarchia

CObject

CCmdTarget

CDocObjectServer

Követelmények

Fejléc: afxdocob.h

CDocObjectServer::ActivateDocObject

Hívja meg ezt a függvényt a dokumentumobjektum-kiszolgáló aktiválásához (de nem jelenik meg).

void ActivateDocObject();

Megjegyzések

ActivateDocObject meghívja IOleDocumentSitea metódust ActivateMe , de nem jeleníti meg a nézetet, mert a CDocObjectServer::OnActivateView hívásában megadott, a nézet beállítására és megjelenítésére vonatkozó utasításokra vár.

Együtt, ActivateDocObject majd OnActivateView a DocObject nézet aktiválása és megjelenítése. A DocObject aktiválása különbözik a többi OLE helyszíni aktiválástól. A DocObject aktiválási előjelei a helyhez tartozó nyílásszegélyeket és objektumdéllyel (például méretezési fogópontokkal) jelenítik meg, figyelmen kívül hagyják az objektum kiterjedési függvényeit, és görgetősávokat rajzolnak a nézet téglalapján belül, nem pedig a téglalapon kívülre rajzolják őket (mint a normál helyszíni aktiválás esetén).

CDocObjectServer::CDocObjectServer

Létrehoz és inicializál egy CDocObjectServer objektumot.

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

Paraméterek

pOwner
Mutató az ügyfélwebhely dokumentumára, amely a DocObject-kiszolgáló ügyfele.

pDocSite
Mutató a IOleDocumentSite tároló által implementált felületre.

Megjegyzések

Ha egy DocObject aktív, az ügyfélwebhely OLE felülete (IOleDocumentSite) teszi lehetővé a DocObject-kiszolgáló számára, hogy kommunikáljon az ügyféllel (a tárolóval). A DocObject-kiszolgáló aktiválása után először ellenőrzi, hogy a tároló implementálja-e a IOleDocumentSite felületet. Ha igen, a COleServerDoc::GetDocObjectServer meghívásával ellenőrizheti, hogy a tároló támogatja-e a DocObjects szolgáltatást. Alapértelmezés szerint NULL GetDocObjectServer értéket ad vissza. Felül kell bírálnia COleServerDoc::GetDocObjectServer egy új CDocObjectServer objektum vagy saját származtatott objektum létrehozásához, a tárolóra COleServerDoc mutató mutatókkal és annak felületével IOleDocumentSite , mint a konstruktor argumentumai.

CDocObjectServer::OnActivateView

Hívja meg ezt a függvényt a DocObject nézet megjelenítéséhez.

virtual HRESULT OnActivateView();

Visszaadott érték

Hibaüzenetet vagy figyelmeztető értéket ad vissza. Alapértelmezés szerint a NOERROR értéket adja vissza, ha sikeres; egyéb esetben E_FAIL.

Megjegyzések

Ez a függvény létrehoz egy helyi keretablakot, görgetősávokat rajzol a nézetben, beállítja a kiszolgáló által a tárolóval megosztott menüket, keretvezérlőket ad hozzá, beállítja az aktív objektumot, majd végül megjeleníti a helyi keretablakot, és beállítja a fókuszt.

CDocObjectServer::OnApplyViewState

Felülbírálja ezt a függvényt a DocObject nézet állapotának visszaállításához.

virtual void OnApplyViewState(CArchive& ar);

Paraméterek

Ar
Egy CArchive objektum, amelyből szerializálni szeretné a nézet állapotát.

Megjegyzések

Ezt a függvényt akkor hívja meg a rendszer, ha a nézet a példányosítás után először jelenik meg. OnApplyViewStatearra utasítja a nézetet, hogy az CArchive korábban mentett objektum adatainak megfelelően újrainicializálja magát. A nézetnek ellenőriznie kell az CArchive objektum adatait, mert a tároló semmilyen módon nem próbálja értelmezni a nézetállapot adatait.

A nézet állapotára jellemző állandó információk tárolására használható OnSaveViewState . Ha felülbírálja OnSaveViewState az információk tárolását, felül kell írnia OnApplyViewState ezeket az információkat, és alkalmaznia kell azokat a nézetre, amikor az újonnan aktiválódik.

CDocObjectServer::OnSaveViewState

A függvény felülbírálása a DocObject nézet további állapotinformációinak mentéséhez.

virtual void OnSaveViewState(CArchive& ar);

Paraméterek

Ar
Egy CArchive objektum, amelyre a nézet állapota szerializálva van.

Megjegyzések

Az állapot tartalmazhat olyan tulajdonságokat, mint a nézet típusa, a nagyítási tényező, a beszúrási és a kijelölési pont stb. A tároló általában meghívja ezt a függvényt a nézet inaktiválása előtt. A mentett állapot később visszaállítható az OnApplyViewState használatával.

A nézet állapotára jellemző állandó információk tárolására használható OnSaveViewState . Ha felülbírálja OnSaveViewState az információk tárolását, felül kell írnia OnApplyViewState ezeket az információkat, és alkalmaznia kell azokat a nézetre, amikor az újonnan aktiválódik.

Lásd még

CCmdTarget osztály
hierarchiadiagram
CDocObjectServerItem osztály