COleServerDoc osztály
Az OLE-kiszolgáló dokumentumainak alaposztálya.
Szintaxis
class AFX_NOVTABLE COleServerDoc : public COleLinkingDoc
Tagok
Nyilvános konstruktorok
Név | Leírás |
---|---|
COleServerDoc::COleServerDoc | Egy COleServerDoc objektumot hoz létre. |
Nyilvános metódusok
Név | Leírás |
---|---|
COleServerDoc::ActivateDocObject | Aktiválja a társított DocObject-dokumentumot. |
COleServerDoc::ActivateInPlace | Aktiválja a dokumentumot a helyben történő szerkesztéshez. |
COleServerDoc::D eactivateAndUndo | Inaktiválja a kiszolgáló felhasználói felületét. |
COleServerDoc::D iscardUndoState | Elveti a visszavonási állapot adatait. |
COleServerDoc::GetClientSite | A mögöttes IOleClientSite felületre mutató mutatót kér le. |
COleServerDoc::GetEmbeddedItem | A teljes dokumentumot képviselő elemhez mutató mutatót ad vissza. |
COleServerDoc::GetItemClipRect | Az aktuális kivágási téglalapot adja vissza a helyi szerkesztéshez. |
COleServerDoc::GetItemPosition | A tárolóalkalmazás ügyfélterületéhez viszonyított aktuális pozíció téglalapját adja vissza a helyszíni szerkesztéshez. |
COleServerDoc::GetZoomFactor | A képpontokban lévő nagyítási tényezőt adja vissza. |
COleServerDoc::IsDocObject | Meghatározza, hogy a dokumentum DocObject-e. |
COleServerDoc::IsEmbedded | Azt jelzi, hogy a dokumentum tárolódokumentumba van-e beágyazva, vagy önállóan fut-e. |
COleServerDoc::IsInPlaceActive | Igaz értéket ad vissza, ha az elem jelenleg aktiválva van. |
COleServerDoc::NotifyChanged | Értesíti a tárolókat, hogy a felhasználó módosította a dokumentumot. |
COleServerDoc::NotifyClosed | Értesíti a tárolókat, hogy a felhasználó bezárta a dokumentumot. |
COleServerDoc::NotifyRename | Értesíti a tárolókat, hogy a felhasználó átnevezte a dokumentumot. |
COleServerDoc::NotifySaved | Értesíti a tárolókat, hogy a felhasználó mentette a dokumentumot. |
COleServerDoc::OnDeactivate | A keretrendszer meghívja, amikor a felhasználó inaktivál egy aktivált elemet. |
COleServerDoc::OnDeactivateUI | A keretrendszer meghívta, hogy megsemmisítse a vezérlőket és a helyszíni aktiváláshoz létrehozott egyéb felhasználói felületi elemeket. |
COleServerDoc::OnDocWindowActivate | A keretrendszer meghívja a tároló dokumentumkeretének aktiválása vagy inaktiválása esetén. |
COleServerDoc::OnResizeBorder | A keretrendszer meghívja a tárolóalkalmazás keretablakának vagy dokumentumablakának átméretezésekor. |
COleServerDoc::OnShowControlBars | A keretrendszer meghívta, hogy megjelenítse vagy elrejtse a vezérlősávokat a helyszíni szerkesztéshez. |
COleServerDoc::OnUpdateDocument | A keretrendszer meghívja egy beágyazott elemet tartalmazó kiszolgálói dokumentum mentésekor, és frissíti az elem tárolópéldányát. |
COleServerDoc::RequestPositionChange | A helyszíni szerkesztési keret pozíciójának módosítása. |
COleServerDoc::SaveEmbedding | Tájékoztatja a tárolóalkalmazást, hogy mentse a dokumentumot. |
COleServerDoc::ScrollContainerBy | Görgeti a tárolódokumentumot. |
COleServerDoc::UpdateAllItems | Értesíti a tárolókat, hogy a felhasználó módosította a dokumentumot. |
Védett metódusok
Név | Leírás |
---|---|
COleServerDoc::CreateInPlaceFrame | A keretrendszer meghívta, hogy hozzon létre egy keretablakot a helyszíni szerkesztéshez. |
COleServerDoc::D estroyInPlaceFrame | A keretrendszer meghívta, hogy elpusztítson egy keretablakot a helyszíni szerkesztéshez. |
COleServerDoc::GetDocObjectServer | Felülbírálja ezt a függvényt egy új CDocObjectServer objektum létrehozásához, és azt jelzi, hogy ez a dokumentum egy DocObject-tároló. |
COleServerDoc::OnClose | A keretrendszer meghívja, amikor egy tároló a dokumentum bezárását kéri. |
COleServerDoc::OnExecOleCmd | Végrehajt egy megadott parancsot, vagy megjeleníti a parancs súgóját. |
COleServerDoc::OnFrameWindowActivate | A keretrendszer meghívja a tároló keretablakának aktiválása vagy inaktiválása esetén. |
COleServerDoc::OnGetEmbeddedItem | A teljes dokumentumot képviselő COleServerItem lekérésére van meghívva; beágyazott elem lekérésére szolgál. Implementálásra van szükség. |
COleServerDoc::OnReactivateAndUndo | A keretrendszer meghívta, hogy visszavonja a helyszíni szerkesztés során végrehajtott módosításokat. |
COleServerDoc::OnSetHostNames | A keretrendszer meghívja, amikor egy tároló beállítja egy beágyazott objektum ablakcímét. |
COleServerDoc::OnSetItemRects | A keretrendszer meghívta, hogy helyezze a helyszíni szerkesztési keretablakot a tárolóalkalmazás ablakában. |
COleServerDoc::OnShowDocument | A keretrendszer meghívta a dokumentum megjelenítésére vagy elrejtésére. |
Megjegyzések
A kiszolgálódokumentum tartalmazhat COleServerItem objektumokat, amelyek a beágyazott vagy csatolt elemek kiszolgálói felületét jelölik. Amikor egy tároló elindít egy kiszolgálóalkalmazást egy beágyazott elem szerkesztéséhez, a rendszer saját kiszolgálódokumentumként tölti be az elemet; a COleServerDoc
objektum csak egy COleServerItem
objektumot tartalmaz, amely a teljes dokumentumból áll. Amikor egy tároló elindít egy kiszolgálóalkalmazást egy csatolt elem szerkesztéséhez, a rendszer betölt egy meglévő dokumentumot a lemezről; a dokumentum tartalmának egy része ki van emelve, hogy jelezze a csatolt elemet.
COleServerDoc
objektumok a COleClientItem osztály elemeit is tartalmazhatják. Ez lehetővé teszi tárolókiszolgáló-alkalmazások létrehozását. A keretrendszer függvényeket biztosít a COleClientItem
elemek megfelelő tárolásához a COleServerItem
objektumok karbantartása során.
Ha a kiszolgálóalkalmazás nem támogatja a hivatkozásokat, a kiszolgálódokumentumok mindig csak egy kiszolgálóelemet tartalmaznak, amely a teljes beágyazott objektumot dokumentumként jelöli. Ha a kiszolgálóalkalmazás támogatja a hivatkozásokat, minden alkalommal létre kell hoznia egy kiszolgálóelemet, amikor egy kijelölést átmásol a vágólapra.
A COleServerDoc
használatához származtasson belőle egy osztályt, és implementálja a OnGetEmbeddedItem tagfüggvényt, amely lehetővé teszi, hogy a kiszolgáló támogassa a beágyazott elemeket. Osztályt származtathat a COleServerItem
a dokumentumok elemeinek implementálásához, és visszaadhatja az osztály objektumait OnGetEmbeddedItem
.
A csatolt elemek támogatásához COleServerDoc
biztosítja a OnGetLinkedItem tagfüggvényt. Használhatja az alapértelmezett implementációt, vagy felülbírálhatja azt, ha saját módjával kezeli a dokumentumelemeket.
Minden olyan kiszolgálói dokumentumtípushoz, amelyet az alkalmazás támogat, egy COleServerDoc
-származtatott osztályra van szüksége. Ha például a kiszolgálóalkalmazás támogatja a munkalapokat és a diagramokat, két COleServerDoc
származtatott osztályra van szüksége.
A kiszolgálókról további információt a Kiszolgálók : Kiszolgálóiimplementálása című cikkben talál.
Öröklési hierarchia
COleServerDoc
Követelmények
fejléc: afxole.h
COleServerDoc::ActivateDocObject
Aktiválja a társított DocObject-dokumentumot.
void ActivateDocObject();
Megjegyzések
Alapértelmezés szerint a COleServerDoc
nem támogatja az aktív dokumentumokat (más néven DocObjects). A támogatás engedélyezéséhez lásd: GetDocObjectServer és osztály CDocObjectServer.
COleServerDoc::ActivateInPlace
A helyszíni szerkesztéshez aktiválja az elemet.
BOOL ActivateInPlace();
Visszaadott érték
Nonzero, ha sikeres; ellenkező esetben 0, ami azt jelzi, hogy az elem teljesen nyitva van.
Megjegyzések
Ez a függvény minden olyan műveletet végrehajt, amely a helyszíni aktiváláshoz szükséges. Létrehoz egy helyi keretablakot, aktiválja és méretezi az elemhez, beállítja a megosztott menüket és egyéb vezérlőket, nézetben görgeti az elemet, és a fókuszt a helyi keretablakra állítja.
Ezt a függvényt a COleServerItem::OnShowalapértelmezett implementációja hívja meg. Hívja meg ezt a függvényt, ha az alkalmazás egy másik parancsot támogat a helyszíni aktiváláshoz (például Play).
COleServerDoc::COleServerDoc
COleServerDoc
objektumot hoz létre az OLE rendszer DLL-jeihez való csatlakozás nélkül.
COleServerDoc();
Megjegyzések
A COleLinkingDoc::Register hívásával nyithatja meg a kommunikációt az OLE-vel. Ha COleTemplateServer használ az alkalmazásban, COleLinkingDoc::Register
COleLinkingDoc
OnNewDocument
, OnOpenDocument
és OnSaveDocument
implementációja hívja meg.
COleServerDoc::CreateInPlaceFrame
A keretrendszer meghívja ezt a függvényt, hogy hozzon létre egy keretablakot a helyszíni szerkesztéshez.
virtual COleIPFrameWnd* CreateInPlaceFrame(CWnd* pParentWnd);
Paraméterek
pParentWnd
Mutasson a tárolóalkalmazás szülőablakára.
Visszaadott érték
Mutató a helyszíni keretablakra, vagy null értékű, ha nem sikerül.
Megjegyzések
Az alapértelmezett implementáció a dokumentumsablonban megadott információkat használja a keret létrehozásához. A használt nézet a dokumentumhoz elsőként létrehozott nézet. Ez a nézet ideiglenesen le van választva az eredeti keretről, és az újonnan létrehozott kerethez van csatolva.
Ez egy speciális felülírható.
COleServerDoc::D eactivateAndUndo
Hívja meg ezt a függvényt, ha az alkalmazás támogatja a Visszavonás funkciót, és a felhasználó az elem aktiválása után, de szerkesztés előtt a Visszavonás lehetőséget választja.
BOOL DeactivateAndUndo();
Visszaadott érték
Nonzero a siker; egyéb esetben 0.
Megjegyzések
Ha a tárolóalkalmazás a Microsoft Foundation osztálykönyvtárával van megírva, a függvény meghívása COleClientItem::OnDeactivateAndUndo meghívását okozza, amely inaktiválja a kiszolgáló felhasználói felületét.
COleServerDoc::D estroyInPlaceFrame
A keretrendszer meghívja ezt a függvényt, hogy megsemmisítsen egy helyszíni keretablakot, és a kiszolgálóalkalmazás dokumentumablakát adja vissza az állapotához a helyszíni aktiválás előtt.
virtual void DestroyInPlaceFrame(COleIPFrameWnd* pFrameWnd);
Paraméterek
pFrameWnd
Mutasson a megsemmisítendő helyszíni keretablakra.
Megjegyzések
Ez egy speciális felülírható.
COleServerDoc::D iscardUndoState
Ha a felhasználó olyan szerkesztési műveletet hajt végre, amely nem vonható vissza, hívja meg ezt a függvényt, hogy kényszerítse a tárolóalkalmazást a visszavonási állapot adatainak elvetésére.
BOOL DiscardUndoState();
Visszaadott érték
Nonzero a siker; egyéb esetben 0.
Megjegyzések
Ez a függvény úgy van megadva, hogy a Visszavonást támogató kiszolgálók felszabadíthassák azokat az erőforrásokat, amelyeket egyébként nem használható visszavonási állapotinformációk használnának fel.
COleServerDoc::GetClientSite
A mögöttes IOleClientSite
felületre mutató mutatót kér le.
LPOLECLIENTSITE GetClientSite() const;
Visszaadott érték
Lekéri a mögöttes IOleClientSite felületére mutató mutatót.
COleServerDoc::GetDocObjectServer
Felülbírálja ezt a függvényt egy új CDocObjectServer
elem létrehozásához, és adjon vissza egy mutatót.
virtual CDocObjectServer* GetDocObjectServer(LPOLEDOCUMENTSITE pDocSite);
Paraméterek
pDocSite
Mutasson arra a IOleDocumentSite
felületre, amely csatlakoztatja a dokumentumot a kiszolgálóhoz.
Visszaadott érték
Mutató egy CDocObjectServer
; NULL érték, ha a művelet nem sikerült.
Megjegyzések
A DocObject-kiszolgáló aktiválásakor a nem NULL értékű mutató visszatérése azt mutatja, hogy az ügyfél támogatja a DocObjectset. Az alapértelmezett implementáció null értéket ad vissza.
A DocObjectset támogató dokumentumok tipikus implementációja egyszerűen lefoglal egy új CDocObjectServer
objektumot, és visszaadja azt a hívónak. Például:
CDocObjectServer* CMFCOleServerDoc::GetDocObjectServer(LPOLEDOCUMENTSITE pSite)
{
return new CDocObjectServer(this, pSite);
}
COleServerDoc::GetEmbeddedItem
Hívja meg ezt a függvényt, hogy egy mutatót kapjon a teljes dokumentumot képviselő elemhez.
COleServerItem* GetEmbeddedItem();
Visszaadott érték
A teljes dokumentumot jelképező elemre mutató mutató; NULL érték, ha a művelet nem sikerült.
Megjegyzések
Meghívja COleServerDoc::OnGetEmbeddedItem, egy alapértelmezett implementáció nélküli virtuális függvényt.
COleServerDoc::GetItemClipRect
Hívja meg a GetItemClipRect
tagfüggvényt a helyben szerkesztett elem kivágási téglalap koordinátáinak lekéréséhez.
void GetItemClipRect(LPRECT lpClipRect) const;
Paraméterek
lpClipRect
Mutasson egy RECT
szerkezetre vagy egy CRect
objektumra az elem kivágási téglalap koordinátáinak fogadásához.
Megjegyzések
A koordináták képpontban vannak a tárolóalkalmazás ablakának ügyfélterületéhez képest.
A rajz nem történhet a vágó téglalapon kívül. A rajz általában automatikusan korlátozott. Ezzel a függvénnyel megállapíthatja, hogy a felhasználó görgetett-e a dokumentum látható részén kívül; ha igen, görgessen le a tárolódokumentumot szükség szerint a ScrollContainerBy hívásával.
COleServerDoc::GetItemPosition
Hívja meg a GetItemPosition
tagfüggvényt a szerkesztett elem koordinátáinak lekéréséhez.
void GetItemPosition(LPRECT lpPosRect) const;
Paraméterek
lpPosRect
Mutasson egy RECT
szerkezetre vagy egy CRect
objektumra az elem koordinátáinak fogadásához.
Megjegyzések
A koordináták képpontban vannak a tárolóalkalmazás ablakának ügyfélterületéhez képest.
Az elem pozíciója összehasonlítható az aktuális kivágási téglalapdal annak meghatározásához, hogy az elem milyen mértékben látható (vagy nem látható) a képernyőn.
COleServerDoc::GetZoomFactor
A GetZoomFactor
tagfüggvény határozza meg a helyszíni szerkesztéshez aktivált elem "nagyítási tényezője" értékét.
BOOL GetZoomFactor(
LPSIZE lpSizeNum = NULL,
LPSIZE lpSizeDenom = NULL,
LPCRECT lpPosRect = NULL) const;
Paraméterek
lpSizeNum
Mutasson egy olyan osztályobjektumra CSize
, amely a nagyítási tényező számlálóját fogja tárolni. Null érték is lehet.
lpSizeDenom
Mutasson egy olyan CSize
osztályobjektumra, amely a nagyítási tényező nevezőjét fogja tárolni. Null érték is lehet.
lpPosRect
Mutasson az elem új pozícióját leíró CRect
osztályobjektumra. Ha ez az argumentum NULL, a függvény az elem aktuális pozícióját használja.
Visszaadott érték
Nonzero, ha az elem helyszíni szerkesztésre van aktiválva, és nagyítási tényezője nem 100% (1:1); egyéb esetben 0.
Megjegyzések
A nagyítási tényező képpontban az elem méretének és jelenlegi méretének aránya. Ha a tárolóalkalmazás nem állította be az elem mértékét, annak természetes kiterjedése (COleServerItem::OnGetExtent) lesz használva.
A függvény az első két argumentumát az elem "nagyítási tényezőjének" számlálójára és nevezőjének állítja be. Ha az elemet nem szerkessze helyben, a függvény ezeket az argumentumokat alapértelmezett értékre állítja 100% (vagy 1:1) értékre, és nullát ad vissza. További információ: Technical Note 40, MFC/OLE In-Place Átméretezés és nagyítás.
COleServerDoc::IsDocObject
Meghatározza, hogy a dokumentum DocObject-e.
BOOL IsDocObject() const;
Visszaadott érték
IGAZ, ha a dokumentum DocObject; egyéb esetben HAMIS.
COleServerDoc::IsEmbedded
Hívja meg a IsEmbedded
tagfüggvényt annak megállapításához, hogy a dokumentum egy tárolóba beágyazott objektumot jelöl-e.
BOOL IsEmbedded() const;
Visszaadott érték
Nonzero, ha a COleServerDoc
objektum egy tárolóba ágyazott objektumot jelképező dokumentum; egyéb esetben 0.
Megjegyzések
A fájlból betöltött dokumentum nincs beágyazva, bár egy tárolóalkalmazás hivatkozásként módosíthatja. A tárolódokumentumba beágyazott dokumentum beágyazottnak minősül.
COleServerDoc::IsInPlaceActive
Hívja meg a IsInPlaceActive
tagfüggvényt annak megállapításához, hogy az elem jelenleg helyben aktív állapotban van-e.
BOOL IsInPlaceActive() const;
Visszaadott érték
Nonzero, ha a COleServerDoc
objektum aktív a helyén; egyéb esetben 0.
COleServerDoc::NotifyChanged
Hívja meg ezt a függvényt, hogy értesítse a dokumentumhoz csatlakoztatott összes csatolt elemet arról, hogy a dokumentum megváltozott.
void NotifyChanged();
Megjegyzések
Ezt a függvényt általában akkor hívja meg, ha a felhasználó módosít néhány globális attribútumot, például a kiszolgálódokumentum dimenzióit. Ha egy OLE-elem automatikus hivatkozással van csatolva a dokumentumhoz, az elem a változásoknak megfelelően frissül. A Microsoft Foundation osztálykönyvtárával írt tárolóalkalmazásokban a COleClientItem
OnChange tagfüggvényét hívják meg.
Jegyzet
Ez a függvény az OLE 1-zel való kompatibilitás érdekében jelenik meg. Az új alkalmazásoknak UpdateAllItemskell használniuk.
COleServerDoc::NotifyClosed
Hívja meg ezt a függvényt, hogy értesítse a tároló(ka)t a dokumentum bezárásáról.
void NotifyClosed();
Megjegyzések
Amikor a felhasználó a Fájl menüBen a Bezárás parancsot választja, NotifyClosed
a COleServerDoc
a OnCloseDocument tagfüggvényének implementációja hívja meg. A Microsoft Foundation osztálykönyvtárával írt tárolóalkalmazásokban a COleClientItem
OnChange tagfüggvényét hívják meg.
COleServerDoc::NotifyRename
Hívja meg ezt a függvényt, miután a felhasználó átnevezte a kiszolgálódokumentumot.
void NotifyRename(LPCTSTR lpszNewName);
Paraméterek
lpszNewName
Mutasson egy sztringre, amely megadja a kiszolgálódokumentum új nevét; ez általában egy teljesen minősített elérési út.
Megjegyzések
Amikor a felhasználó a Fájl menü Mentés másként parancsát választja, NotifyRename
COleServerDoc
a OnSaveDocument tagfüggvényének implementációja hívja meg. Ez a függvény értesíti az OLE rendszer DLL-jeit, amelyek viszont értesítik a tárolókat. A Microsoft Foundation osztálykönyvtárával írt tárolóalkalmazásokban a COleClientItem
OnChange tagfüggvényét hívják meg.
COleServerDoc::NotifySaved
Hívja meg ezt a függvényt, miután a felhasználó mentette a kiszolgálódokumentumot.
void NotifySaved();
Megjegyzések
Amikor a felhasználó a Fájl menü Mentés parancsát választja, NotifySaved
COleServerDoc
OnSaveDocumentimplementációja hívja meg. Ez a függvény értesíti az OLE rendszer DLL-jeit, amelyek viszont értesítik a tárolókat. A Microsoft Foundation osztálykönyvtárával írt tárolóalkalmazásokban a COleClientItem
OnChange tagfüggvényét hívják meg.
COleServerDoc::OnClose
A keretrendszer meghívja, amikor egy tároló a kiszolgálódokumentum bezárását kéri.
virtual void OnClose(OLECLOSE dwCloseOption);
Paraméterek
dwCloseOption
Az OLECLOSE enumerálási értéke. Ez a paraméter a következő értékek egyikével rendelkezhet:
OLECLOSE_SAVEIFDIRTY A rendszer menti a fájlt, ha módosították.
OLECLOSE_NOSAVE A fájl mentés nélkül bezárul.
OLECLOSE_PROMPTSAVE Ha a fájlt módosították, a rendszer kérni fogja a felhasználót a fájl mentéséről.
Megjegyzések
Az alapértelmezett megvalósítási hívások CDocument::OnCloseDocument
.
További információ és további értékek: OLECLOSE a Windows SDK-ban.
COleServerDoc::OnDeactivate
A keretrendszer meghívja, amikor a felhasználó inaktivál egy olyan beágyazott vagy csatolt elemet, amely jelenleg aktív a helyén.
virtual void OnDeactivate();
Megjegyzések
Ez a függvény visszaállítja a tárolóalkalmazás felhasználói felületét az eredeti állapotára, és megsemmisíti a helyi aktiváláshoz létrehozott menüket és egyéb vezérlőket.
A visszavonási állapot adatait ezen a ponton feltétel nélkül közzé kell tenni.
További információt az aktiválási című cikkben talál.
COleServerDoc::OnDeactivateUI
Akkor hívható meg, amikor a felhasználó inaktivál egy aktivált elemet.
virtual void OnDeactivateUI(BOOL bUndoable);
Paraméterek
bUndoable
Megadja, hogy a szerkesztési módosítások visszavonhatók-e.
Megjegyzések
Ez a függvény visszaállítja a tárolóalkalmazás felhasználói felületét az eredeti állapotára, elrejtve a helyi aktiváláshoz létrehozott menüket és egyéb vezérlőket.
A keretrendszer mindig HAMIS értékre állítja bUndoable. Ha a kiszolgáló támogatja a visszavonást, és van egy visszavonható művelet, hívja meg az alaposztály implementációt, bUndoable értéke IGAZ.
COleServerDoc::OnDocWindowActivate
A keretrendszer meghívja ezt a függvényt, hogy aktiváljon vagy inaktiváljon egy dokumentumablakot a helyszíni szerkesztéshez.
virtual void OnDocWindowActivate(BOOL bActivate);
Paraméterek
bActivate
Megadja, hogy a dokumentumablakot aktiválni vagy inaktiválni kell-e.
Megjegyzések
Az alapértelmezett implementáció szükség szerint eltávolítja vagy hozzáadja a keretszintű felhasználói felület elemeit. Bírálja felül ezt a függvényt, ha további műveleteket szeretne végrehajtani az elemet tartalmazó dokumentum aktiválása vagy inaktiválása esetén.
További információt az aktiválási című cikkben talál.
COleServerDoc::OnExecOleCmd
A keretrendszer meghívja ezt a függvényt, hogy végrehajtson egy megadott parancsot, vagy megjelenítse a parancs súgóját.
virtual HRESULT OnExecOleCmd(
const GUID* pguidCmdGroup,
DWORD nCmdID,
DWORD nCmdExecOpt,
VARIANTARG* pvarargIn,
VARIANTARG* pvarargOut);
Paraméterek
pguidCmdGroup
Egy GUID-ra mutató mutató, amely a parancsok egy készletét azonosítja. Null érték is lehet az alapértelmezett parancscsoport jelzéséhez.
nCmdID
A végrehajtandó parancs. A pguidCmdGroupáltal azonosított csoportban kell lennie.
nCmdExecOut
Az objektum végrehajtásának módja az OLECMDEXECOPT enumerálásból származó alábbi értékek közül egy vagy több:
OLECMDEXECOPT_DODEFAULT
OLECMDEXECOPT_PROMPTUSER
OLECMDEXECOPT_DONTPROMPTUSER
OLECMDEXECOPT_SHOWHELP
pvarargIn
Mutasson egy VARIANTARG értékre, amely a parancs bemeneti argumentumait tartalmazza. Null érték is lehet.
pvarargOut
A parancs kimeneti visszatérési értékeinek fogadásához mutasson egy VARIANTARG-ra. Null érték is lehet.
Visszaadott érték
Sikeres S_OK ad vissza; ellenkező esetben az alábbi hibakódok egyikét:
Érték | Leírás |
---|---|
E_UNEXPECTED | Váratlan hiba történt |
E_FAIL | Hiba történt |
E_NOTIMPL | Azt jelzi, hogy az MFC-nek meg kell kísérelnie lefordítani és elküldeni a parancsot |
OLECMDERR_E_UNKNOWNGROUP | pguidCmdGroup nem NULL értékű, de nem ad meg felismert parancscsoportot |
OLECMDERR_E_NOTSUPPORTED | nCmdID nem ismeri fel érvényes parancsként a csoport pguidCmdGroup |
OLECMDERR_DISABLED | A nCmdID által azonosított parancs le van tiltva, és nem hajtható végre |
OLECMDERR_NOHELP | A hívó segítséget kért a nCmdID által azonosított parancshoz, de nem áll rendelkezésre súgó |
OLECMDERR_CANCELED | A felhasználó megszakította a végrehajtást |
Megjegyzések
COleCmdUI
a DocObject felhasználói felület parancsainak engedélyezésére, frissítésére és egyéb tulajdonságainak beállítására használható. A parancsok inicializálása után végrehajthatja őket OnExecOleCmd
.
A keretrendszer meghívja a függvényt, mielőtt megpróbálna lefordítani és elküldeni egy OLE-dokumentumparancsot. Nem kell felülbírálnia ezt a függvényt a szabványos OLE-dokumentumparancsok kezeléséhez, de felülbírálást kell megadnia ehhez a függvényhez, ha saját egyéni parancsait szeretné kezelni, vagy olyan parancsokat szeretne kezelni, amelyek paramétereket fogadnak el, vagy eredményeket adnak vissza.
A parancsok többsége nem fogad el argumentumokat, és nem ad vissza értékeket. A parancsok többségénél a hívó át tudja adni az NUL-okat pvarargIn és pvarargOut. Bemeneti értékeket váró parancsok esetén a hívó deklarálhat és inicializálhat egy VARIANTARG változót, és mutatót adhat át a változónak pvarargIn. Egyetlen értéket igénylő parancsok esetén az argumentum közvetlenül a VARIANTARG-ben tárolható, és átadható a függvénynek. A VARIANTARG-ben több argumentumot is be kell csomagolni a támogatott típusok egyikével (például IDispatch
és SAFEARRAY).
Hasonlóképpen, ha egy parancs argumentumokat ad vissza, a hívó várhatóan egy VARIANTARG-t deklarál, inicializálja azt VT_EMPTY, és adja meg a címét pvarargOut. Ha egy parancs egyetlen értéket ad vissza, az objektum ezt az értéket közvetlenül pvarargOuttárolja. Több kimeneti értéket kell a VARIANTARG-nek megfelelő módon csomagolni.
A függvény alaposztály-implementációja végigvezeti a parancscélhoz társított OLE_COMMAND_MAP struktúrákat, és megpróbálja elküldeni a parancsot egy megfelelő kezelőnek. Az alaposztály implementációja csak olyan parancsokkal működik, amelyek nem fogadnak el argumentumokat vagy nem ad vissza értékeket. Ha olyan parancsokat kell kezelnie, amelyek argumentumokat fogadnak el, vagy értékeket ad vissza, felül kell bírálnia ezt a függvényt, és a pvarargIn és pvarargOut paraméterekkel kell dolgoznia.
COleServerDoc::OnFrameWindowActivate
A keretrendszer meghívja ezt a függvényt a tárolóalkalmazás keretablakának aktiválása vagy inaktiválása esetén.
virtual void OnFrameWindowActivate(BOOL bActivate);
Paraméterek
bActivate
Megadja, hogy a keretablakot aktiválni vagy inaktiválni kell-e.
Megjegyzések
Az alapértelmezett implementáció megszakítja a keretablak esetleges súgómódjait. Bírálja felül ezt a függvényt, ha speciális feldolgozást szeretne végezni a keretablak aktiválása vagy inaktiválása esetén.
További információt az aktiválási című cikkben talál.
COleServerDoc::OnGetEmbeddedItem
A keretrendszer meghívja, amikor egy tárolóalkalmazás meghívja a kiszolgálóalkalmazást beágyazott elem létrehozására vagy szerkesztésére.
virtual COleServerItem* OnGetEmbeddedItem() = 0;
Visszaadott érték
A teljes dokumentumot jelképező elemre mutató mutató; NULL érték, ha a művelet nem sikerült.
Megjegyzések
Nincs alapértelmezett implementáció. Felül kell bírálnia ezt a függvényt, hogy a teljes dokumentumot képviselő elemet adja vissza. Ennek a visszatérési értéknek egy COleServerItem
-származtatott osztály objektumának kell lennie.
COleServerDoc::OnReactivateAndUndo
A keretrendszer meghívja ezt a függvényt, amikor a felhasználó úgy dönt, hogy visszavonja a helyben aktivált, módosított és később inaktivált elem módosításait.
virtual BOOL OnReactivateAndUndo();
Visszaadott érték
Nonzero, ha sikeres; egyéb esetben 0.
Megjegyzések
Az alapértelmezett implementáció nem tesz mást, mint hamis értéket ad vissza a hiba jelzéséhez.
Bírálja felül ezt a függvényt, ha az alkalmazás támogatja a visszavonást. Általában a visszavonási műveletet hajtja végre, majd aktiválja az elemet ActivateInPlace
meghívásával. Ha a tárolóalkalmazás a Microsoft Foundation osztálykönyvtárával van megírva, a COleClientItem::ReactivateAndUndo
hívása a függvény meghívását eredményezi.
COleServerDoc::OnResizeBorder
A keretrendszer meghívja ezt a függvényt, amikor a tárolóalkalmazás keretablakai mérete megváltozik.
virtual void OnResizeBorder(
LPCRECT lpRectBorder,
LPOLEINPLACEUIWINDOW lpUIWindow,
BOOL bFrame);
Paraméterek
lpRectBorder
Mutasson egy RECT
szerkezetre vagy egy CRect
objektumra, amely megadja a szegély koordinátáit.
lpUIWindow
Mutasson az aktuális helyszíni szerkesztési munkamenetet birtokba IOleInPlaceUIWindow
osztályobjektumra.
bFrame
IGAZ, ha lpUIWindow a tárolóalkalmazás legfelső szintű keretablakára mutat, vagy HAMIS, ha lpUIWindow a tárolóalkalmazás dokumentumszintű keretablakára mutat.
Megjegyzések
Ez a függvény átméretezi és módosítja az eszköztárakat és más felhasználói felületi elemeket az új ablakméretnek megfelelően.
További információ: IOleInPlaceUIWindow a Windows SDK-ban.
Ez egy speciális felülírható.
COleServerDoc::OnSetHostNames
A keretrendszer meghívja, amikor a tároló beállítja vagy módosítja a dokumentum gazdagépnevét.
virtual void OnSetHostNames(
LPCTSTR lpszHost,
LPCTSTR lpszHostObj);
Paraméterek
lpszHost
Mutasson egy sztringre, amely megadja a tárolóalkalmazás nevét.
lpszHostObj
Mutasson egy sztringre, amely megadja a dokumentum tárolójának nevét.
Megjegyzések
Az alapértelmezett implementáció módosítja a dokumentum címét a dokumentumra hivatkozó összes nézethez.
Bírálja felül ezt a függvényt, ha az alkalmazás egy másik mechanizmuson keresztül állítja be a címeket.
COleServerDoc::OnSetItemRects
A keretrendszer meghívja ezt a függvényt, hogy helyezze a helyszíni szerkesztési keretablakot a tárolóalkalmazás keretablakában.
virtual void OnSetItemRects(
LPCRECT lpPosRect,
LPCRECT lpClipRect);
Paraméterek
lpPosRect
Mutasson egy RECT
struktúrára vagy egy CRect
objektumra, amely a tárolóalkalmazás ügyfélterületéhez képest megadja a helyszíni keretablak pozícióját.
lpClipRect
Mutasson egy RECT
szerkezetre vagy egy CRect
objektumra, amely a tárolóalkalmazás ügyfélterületéhez viszonyítva megadja a helyszíni keretablak kivágási téglalapját.
Megjegyzések
Szükség esetén felülbírálja ezt a függvényt a nézet nagyítási tényezőjének frissítéséhez.
Ezt a függvényt általában egy RequestPositionChange
hívásra hívjuk meg, bár a tároló bármikor meghívhatja a helyhez tartozó elem helyzetének módosítására.
COleServerDoc::OnShowControlBars
A keretrendszer meghívja ezt a függvényt, hogy megjelenítse vagy elrejtse a kiszolgálóalkalmazás pFrameWndáltal azonosított keretablakhoz társított vezérlősávokat.
virtual void OnShowControlBars(
CFrameWnd* pFrameWnd,
BOOL bShow);
Paraméterek
pFrameWnd
Mutasson arra a keretablakra, amelynek vezérlősávjainak rejtettnek vagy láthatónak kell lenniük.
bShow
Meghatározza, hogy a vezérlősávok megjelennek-e vagy rejtettek-e.
Megjegyzések
Az alapértelmezett implementáció felsorolja a keretablakhoz tartozó összes vezérlősávot, és elrejti vagy megjeleníti őket.
COleServerDoc::OnShowDocument
A keretrendszer meghívja a OnShowDocument
függvényt, ha a kiszolgálódokumentumnak rejtettnek vagy megjelenítendőnek kell lennie.
virtual void OnShowDocument(BOOL bShow);
Paraméterek
bShow
Megadja, hogy a dokumentum felhasználói felülete megjelenjen vagy rejtve legyen.
Megjegyzések
Ha bShow IGAZ, az alapértelmezett implementáció szükség esetén aktiválja a kiszolgálóalkalmazást, és a tárolóalkalmazás görgeti az ablakát, hogy az elem látható legyen. Ha bShow HAMIS, az alapértelmezett implementáció inaktiválja az elemet a OnDeactivate
hívásával, majd megsemmisíti vagy elrejti a dokumentumhoz létrehozott összes keretablakot, kivéve az elsőt. Ha nem maradnak látható dokumentumok, az alapértelmezett implementáció elrejti a kiszolgálóalkalmazást.
COleServerDoc::OnUpdateDocument
A keretrendszer meghívja egy összetett dokumentumba beágyazott dokumentum mentésekor.
virtual BOOL OnUpdateDocument();
Visszaadott érték
Nem érvényes, ha a dokumentumot sikeresen frissítették; egyéb esetben 0.
Megjegyzések
Az alapértelmezett implementáció meghívja a COleServerDoc::NotifySaved és COleServerDoc::SaveEmbedding tagfüggvényeket, majd tisztaként jelöli meg a dokumentumot. Felülbírálja ezt a függvényt, ha speciális feldolgozást szeretne végezni egy beágyazott elem frissítésekor.
COleServerDoc::RequestPositionChange
Hívja meg ezt a tagfüggvényt, hogy a tárolóalkalmazás módosítsa az elem pozícióját.
void RequestPositionChange(LPCRECT lpPosRect);
Paraméterek
lpPosRect
Mutasson egy RECT
szerkezetre vagy egy CRect
objektumra, amely az elem új pozícióját tartalmazza.
Megjegyzések
Ezt a függvényt általában akkor hívjuk meg (UpdateAllItems
együtt), ha egy helyi aktív elem adatai megváltoztak. A hívást követően előfordulhat, hogy a tároló a OnSetItemRects
meghívásával végrehajtja a módosítást. Az eredményként kapott pozíció eltérhet a kérttől.
COleServerDoc::SaveEmbedding
Hívja meg ezt a függvényt, és kérje meg a tárolóalkalmazást, hogy mentse a beágyazott objektumot.
void SaveEmbedding();
Megjegyzések
Ezt a függvényt a rendszer automatikusan meghívja OnUpdateDocument
. Vegye figyelembe, hogy ez a függvény az elemet lemezen frissíti, ezért általában csak egy adott felhasználói művelet eredményeként hívják meg.
COleServerDoc::ScrollContainerBy
Hívja meg a ScrollContainerBy
tagfüggvényt, hogy görgesse a tárolódokumentumot a sizeScroll
által megadott képpontban megadott összeggel.
BOOL ScrollContainerBy(CSize sizeScroll);
Paraméterek
sizeScroll
A tárolódokumentum görgetési távolságát jelzi.
Visszaadott érték
Nonzero, ha sikeres; egyéb esetben 0.
Megjegyzések
A pozitív értékek lefelé és jobbra görgetést jeleznek; a negatív értékek felfelé és balra görgetést jeleznek.
COleServerDoc::UpdateAllItems
Hívja meg ezt a függvényt, hogy értesítse a dokumentumhoz csatlakoztatott összes csatolt elemet arról, hogy a dokumentum megváltozott.
void UpdateAllItems(
COleServerItem* pSender,
LPARAM lHint = 0L,
CObject* pHint = NULL,
DVASPECT nDrawAspect = DVASPECT_CONTENT);
Paraméterek
pSender
Mutasson a dokumentumot módosító elemre, vagy null értékűre, ha az összes elemet frissíteni szeretné.
lHint
A módosítással kapcsolatos információkat tartalmaz.
pHint
Mutasson egy objektumra, amely a módosítással kapcsolatos információkat tárolja.
nDrawAspect
Meghatározza az elem rajzolásának módját. Ez a DVASPECT enumerálásából származó érték. Ez a paraméter a következő értékek egyikével rendelkezhet:
DVASPECT_CONTENT Elem úgy van ábrázolva, hogy beágyazott objektumként jelenjen meg a tárolóban.
DVASPECT_THUMBNAIL Elem "miniatűr" ábrázolásban jelenik meg, hogy megjeleníthető legyen egy böngészési eszközben.
DVASPECT_ICON elemet egy ikon jelöli.
DVASPECT_DOCPRINT Elem úgy jelenik meg, mintha a Fájl menü Nyomtatás parancsával lett volna kinyomtatva.
Megjegyzések
Ezt a függvényt általában akkor hívja meg, ha a felhasználó módosítja a kiszolgálódokumentumot. Ha egy OLE-elem automatikus hivatkozással van csatolva a dokumentumhoz, az elem a változásoknak megfelelően frissül. A Microsoft Foundation osztálykönyvtárával írt tárolóalkalmazásokban a COleClientItem
OnChange tagfüggvényét hívják meg.
Ez a függvény meghívja a OnUpdate
tagfüggvényt a dokumentum minden eleméhez, kivéve a küldő elemet, átadva pHint, lHintés nDrawAspect. Ezekkel a paraméterekkel adatokat adhat át az elemeknek a dokumentum módosításairól. Az lHint használatával kódolhatja az adatokat, vagy definiálhat egy CObject
-származtatott osztályt a módosítások adatainak tárolásához, valamint az osztály objektumának átadásához pHinthasználatával. A COleServerItem
-származtatott osztály OnUpdate
tagfüggvényének felülbírálása az egyes elemek frissítésének optimalizálásához attól függően, hogy a bemutatója módosult-e.
Lásd még:
MFC-minta HIERSVR
COleLinkingDoc osztály
hierarchiadiagram
COleDocument osztály
COleLinkingDoc osztály
COleTemplateServer osztály