COleServerDoc-klasse
De basisklasse voor OLE-serverdocumenten.
Syntaxis
class AFX_NOVTABLE COleServerDoc : public COleLinkingDoc
Leden
Openbare constructors
Naam | Beschrijving |
---|---|
COleServerDoc::COleServerDoc | Maakt een COleServerDoc -object. |
Openbare methoden
Naam | Beschrijving |
---|---|
COleServerDoc::ActivateDocObject | Hiermee activeert u het bijbehorende DocObject-document. |
COleServerDoc::ActivateInPlace | Hiermee wordt het document geactiveerd voor in-place bewerking. |
COleServerDoc::D eactivateAndUndo- | Hiermee wordt de gebruikersinterface van de server gedeactiveerd. |
COleServerDoc::D iscardUndoState | Gegevens over ongedaan maken. |
COleServerDoc::GetClientSite | Hiermee wordt een aanwijzer opgehaald naar de onderliggende IOleClientSite -interface. |
COleServerDoc::GetEmbeddedItem | Retourneert een aanwijzer naar een item dat het hele document vertegenwoordigt. |
COleServerDoc::GetItemClipRect | Retourneert de huidige rechthoek voor knippen voor in-place bewerking. |
COleServerDoc::GetItemPosition | Retourneert de huidige positierechthoek, ten opzichte van het clientgebied van de containertoepassing, voor in-place bewerking. |
COleServerDoc::GetZoomFactor | Retourneert de zoomfactor in pixels. |
COleServerDoc::IsDocObject | Bepaalt of het document een DocObject is. |
COleServerDoc::IsEmbedded | Geeft aan of het document is ingesloten in een containerdocument of zelfstandig wordt uitgevoerd. |
COleServerDoc::IsInPlaceActive | Retourneert TRUE als het item momenteel is geactiveerd. |
COleServerDoc::NotifyChanged | Hiermee wordt aan containers aangegeven dat de gebruiker het document heeft gewijzigd. |
COleServerDoc::NotifyClosed- | Hiermee wordt aan containers aangegeven dat de gebruiker het document heeft gesloten. |
COleServerDoc::NotifyRename | Hiermee wordt een bericht weergegeven over containers waarvoor de gebruiker de naam van het document heeft gewijzigd. |
COleServerDoc::NotifySaved | Hiermee wordt een bericht weergegeven over containers die de gebruiker het document heeft opgeslagen. |
COleServerDoc::OnDeactivate | Aangeroepen door het framework wanneer de gebruiker een item deactiveert dat is geactiveerd. |
COleServerDoc::OnDeactivateUI | Aangeroepen door het framework om besturingselementen en andere elementen van de gebruikersinterface te vernietigen die zijn gemaakt voor in-place activering. |
COleServerDoc::OnDocWindowActivate | Aangeroepen door het framework wanneer het venster documentframe van de container wordt geactiveerd of gedeactiveerd. |
COleServerDoc::OnResizeBorder | Aangeroepen door het framework wanneer het venster frame of het documentvenster van de containertoepassing wordt gewijzigd. |
COleServerDoc::OnShowControlBars | Aangeroepen door het framework om besturingsbalken weer te geven of te verbergen voor in-place bewerking. |
COleServerDoc::OnUpdateDocument | Aangeroepen door het framework wanneer een serverdocument dat een ingesloten item is opgeslagen, het bijwerken van de kopie van het item van de container. |
COleServerDoc::RequestPositionChange- | Hiermee wijzigt u de positie van het in-place bewerkingskader. |
COleServerDoc::SaveEmbedding | Geeft aan dat de containertoepassing het document moet opslaan. |
COleServerDoc::ScrollContainerBy | Schuift door het containerdocument. |
COleServerDoc::UpdateAllItems | Hiermee wordt aan containers aangegeven dat de gebruiker het document heeft gewijzigd. |
Beveiligde methoden
Naam | Beschrijving |
---|---|
COleServerDoc::CreateInPlaceFrame | Aangeroepen door het framework om een framevenster te maken voor in-place bewerking. |
COleServerDoc::D estroyInPlaceFrame | Aangeroepen door het framework om een framevenster te vernietigen voor in-place bewerking. |
COleServerDoc::GetDocObjectServer | Overschrijf deze functie om een nieuw CDocObjectServer -object te maken en geef aan dat dit document een DocObject-container is. |
COleServerDoc::OnClose | Aangeroepen door het framework wanneer een container aanvraagt om het document te sluiten. |
COleServerDoc::OnExecOleCmd | Voert een opgegeven opdracht uit of geeft help weer voor de opdracht. |
COleServerDoc::OnFrameWindowActivate | Aangeroepen door het framework wanneer het framevenster van de container wordt geactiveerd of gedeactiveerd. |
COleServerDoc::OnGetEmbeddedItem | Aangeroepen om een COleServerItem te krijgen die het hele document vertegenwoordigt; wordt gebruikt om een ingesloten item op te halen. Implementatie vereist. |
COleServerDoc::OnReactivateAndUndo | Aangeroepen door het framework om wijzigingen ongedaan te maken die zijn aangebracht tijdens het in-place bewerken. |
COleServerDoc::OnSetHostNames | Aangeroepen door het framework wanneer een container de venstertitel voor een ingesloten object instelt. |
COleServerDoc::OnSetItemRects | Wordt aangeroepen door het framework om het venster frame voor in-place bewerking in het venster van de containertoepassing te plaatsen. |
COleServerDoc::OnShowDocument | Aangeroepen door het framework om het document weer te geven of te verbergen. |
Opmerkingen
Een serverdocument kan COleServerItem objecten bevatten, die de serverinterface vertegenwoordigen voor ingesloten of gekoppelde items. Wanneer een servertoepassing wordt gestart door een container om een ingesloten item te bewerken, wordt het item geladen als een eigen serverdocument; het COleServerDoc
object bevat slechts één COleServerItem
object dat bestaat uit het hele document. Wanneer een servertoepassing wordt gestart door een container om een gekoppeld item te bewerken, wordt een bestaand document vanaf schijf geladen; een gedeelte van de inhoud van het document is gemarkeerd om het gekoppelde item aan te geven.
COleServerDoc
objecten kunnen ook items van de COleClientItem klasse bevatten. Hiermee kunt u containerservertoepassingen maken. Het framework biedt functies om de COleClientItem
items correct op te slaan tijdens het onderhouden van de COleServerItem
objecten.
Als uw servertoepassing geen koppelingen ondersteunt, bevat een serverdocument altijd slechts één serveritem, dat het hele ingesloten object als document vertegenwoordigt. Als uw servertoepassing koppelingen ondersteunt, moet deze telkens wanneer een selectie naar het Klembord wordt gekopieerd een serveritem maken.
Als u COleServerDoc
wilt gebruiken, moet u een klasse afleiden en de functie OnGetEmbeddedItem lid implementeren, zodat uw server ingesloten items kan ondersteunen. Een klasse afleiden uit COleServerItem
om de items in uw documenten te implementeren en objecten van die klasse te retourneren uit OnGetEmbeddedItem
.
Voor de ondersteuning van gekoppelde items biedt COleServerDoc
de functie OnGetLinkedItem lid. U kunt de standaard implementatie gebruiken of overschrijven als u uw eigen manier hebt om documentitems te beheren.
U hebt één COleServerDoc
-afgeleide klasse nodig voor elk type serverdocument dat door uw toepassing wordt ondersteund. Als uw servertoepassing bijvoorbeeld werkbladen en grafieken ondersteunt, hebt u twee COleServerDoc
afgeleide klassen nodig.
Zie het artikel Servers: Een server implementerenvoor meer informatie over servers.
Overnamehiërarchie
COleServerDoc
Eisen
koptekst: afxole.h
COleServerDoc::ActivateDocObject
Hiermee activeert u het bijbehorende DocObject-document.
void ActivateDocObject();
Opmerkingen
Standaard biedt COleServerDoc
geen ondersteuning voor actieve documenten (ook wel DocObjects genoemd). Zie GetDocObjectServer en klasse CDocObjectServerom deze ondersteuning in te schakelen.
COleServerDoc::ActivateInPlace
Hiermee wordt het item geactiveerd voor in-place bewerking.
BOOL ActivateInPlace();
Retourwaarde
Niet-nul indien geslaagd; anders 0, wat aangeeft dat het item volledig open is.
Opmerkingen
Met deze functie worden alle bewerkingen uitgevoerd die nodig zijn voor in-place activering. Er wordt een in-place framevenster gemaakt, geactiveerd en aangepast aan het item, gedeelde menu's en andere besturingselementen ingesteld, het item in beeld geschoven en de focus ingesteld op het in-place framevenster.
Deze functie wordt aangeroepen door de standaardimplementatie van COleServerItem::OnShow. Roep deze functie aan als uw toepassing een ander werkwoord ondersteunt voor in-place activering (zoals Play).
COleServerDoc::COleServerDoc
Hiermee wordt een COleServerDoc
-object gemaakt zonder verbinding te maken met de OLE-systeem-DLL's.
COleServerDoc();
Opmerkingen
U moet COleLinkingDoc:: registreren om communicatie met OLE te openen. Als u COleTemplateServer in uw toepassing gebruikt, wordt COleLinkingDoc::Register
u aangeroepen door COleLinkingDoc
implementatie van OnNewDocument
, OnOpenDocument
en OnSaveDocument
.
COleServerDoc::CreateInPlaceFrame
In het framework wordt deze functie aangeroepen om een framevenster te maken voor in-place bewerking.
virtual COleIPFrameWnd* CreateInPlaceFrame(CWnd* pParentWnd);
Parameters
pParentWnd
Aanwijzer naar het bovenliggende venster van de containertoepassing.
Retourwaarde
Een aanwijzer naar het in-place framevenster of NULL als dit niet lukt.
Opmerkingen
De standaard implementatie maakt gebruik van informatie die is opgegeven in de documentsjabloon om het frame te maken. De gebruikte weergave is de eerste weergave die voor het document is gemaakt. Deze weergave is tijdelijk losgekoppeld van het oorspronkelijke frame en gekoppeld aan het zojuist gemaakte frame.
Dit is een geavanceerd overschrijfbaar.
COleServerDoc::D eactivateAndUndo
Roep deze functie aan als uw toepassing ondersteuning biedt voor Ongedaan maken en de gebruiker kiest Ongedaan maken na het activeren van een item, maar voordat deze wordt bewerkt.
BOOL DeactivateAndUndo();
Retourwaarde
Nonzero op succes; anders 0.
Opmerkingen
Als de containertoepassing is geschreven met behulp van de Microsoft Foundation Class Library, zorgt het aanroepen van deze functie ervoor dat COleClientItem::OnDeactivateAndUndo worden aangeroepen, waardoor de gebruikersinterface van de server wordt gedeactiveerd.
COleServerDoc::D estroyInPlaceFrame
Dit framework roept deze functie aan om een in-place framevenster te vernietigen en het documentvenster van de servertoepassing terug te keren naar de status vóór in-place activering.
virtual void DestroyInPlaceFrame(COleIPFrameWnd* pFrameWnd);
Parameters
pFrameWnd
Wijs het in-place framevenster aan dat moet worden vernietigd.
Opmerkingen
Dit is een geavanceerd overschrijfbaar.
COleServerDoc::D iscardUndoState
Als de gebruiker een bewerking uitvoert die niet ongedaan kan worden gemaakt, roept u deze functie aan om af te dwingen dat de containertoepassing de statusgegevens ongedaan maakt.
BOOL DiscardUndoState();
Retourwaarde
Nonzero op succes; anders 0.
Opmerkingen
Deze functie wordt geleverd zodat servers die ondersteuning bieden voor Ongedaan maken, gratis resources kunnen gebruiken die anders zouden worden gebruikt door gegevens over de status ongedaan maken die niet kunnen worden gebruikt.
COleServerDoc::GetClientSite
Hiermee wordt een aanwijzer opgehaald naar de onderliggende IOleClientSite
-interface.
LPOLECLIENTSITE GetClientSite() const;
Retourwaarde
Hiermee wordt een aanwijzer opgehaald naar de onderliggende IOleClientSite interface.
COleServerDoc::GetDocObjectServer
Overschrijf deze functie om een nieuw CDocObjectServer
item te maken en er een aanwijzer naar te retourneren.
virtual CDocObjectServer* GetDocObjectServer(LPOLEDOCUMENTSITE pDocSite);
Parameters
pDocSite-
Wijs de IOleDocumentSite
-interface aan waarmee dit document wordt verbonden met de server.
Retourwaarde
Een aanwijzer naar een CDocObjectServer
; NULL als de bewerking is mislukt.
Opmerkingen
Wanneer een DocObject-server is geactiveerd, geeft de return van een niet-NULL-aanwijzer aan dat de client DocObjects kan ondersteunen. De standaard implementatie retourneert NULL.
Een typische implementatie voor een document dat DocObjects ondersteunt, wijst gewoon een nieuw CDocObjectServer
-object toe en keert het terug naar de aanroeper. Bijvoorbeeld:
CDocObjectServer* CMFCOleServerDoc::GetDocObjectServer(LPOLEDOCUMENTSITE pSite)
{
return new CDocObjectServer(this, pSite);
}
COleServerDoc::GetEmbeddedItem
Roep deze functie aan om een aanwijzer te krijgen naar een item dat het hele document vertegenwoordigt.
COleServerItem* GetEmbeddedItem();
Retourwaarde
Een aanwijzer naar een item dat het hele document vertegenwoordigt; NULL als de bewerking is mislukt.
Opmerkingen
Er wordt COleServerDoc::OnGetEmbeddedItemaangeroepen, een virtuele functie zonder standaardimplementatie.
COleServerDoc::GetItemClipRect
Roep de functie GetItemClipRect
lid aan om de coördinaten van de rechthoek voor knipsels op te halen van het item dat ter plaatse wordt bewerkt.
void GetItemClipRect(LPRECT lpClipRect) const;
Parameters
lpClipRect-
Wijs een RECT
structuur of een CRect
-object aan om de coördinaten van de rechthoek voor knippen van het item te ontvangen.
Opmerkingen
Coördinaten bevinden zich in pixels ten opzichte van het clientgebied van het containertoepassingsvenster.
Tekening mag niet buiten de rechthoek voor knippen voorkomen. Normaal gesproken wordt tekenen automatisch beperkt. Gebruik deze functie om te bepalen of de gebruiker buiten het zichtbare gedeelte van het document heeft gescrold; als dat het nodig is, schuift u het containerdocument indien nodig door middel van een aanroep naar ScrollContainerBy.
COleServerDoc::GetItemPosition
Roep de functie GetItemPosition
lid aan om de coördinaten op te halen van het item dat wordt bewerkt.
void GetItemPosition(LPRECT lpPosRect) const;
Parameters
lpPosRect-
Wijs een RECT
structuur of een CRect
-object aan om de coördinaten van het item te ontvangen.
Opmerkingen
Coördinaten bevinden zich in pixels ten opzichte van het clientgebied van het containertoepassingsvenster.
De positie van het item kan worden vergeleken met de huidige rechthoek voor knippen om te bepalen in hoeverre het item zichtbaar is (of niet zichtbaar) op het scherm.
COleServerDoc::GetZoomFactor
De GetZoomFactor
lidfunctie bepaalt de 'zoomfactor' van een item dat is geactiveerd voor in-place bewerking.
BOOL GetZoomFactor(
LPSIZE lpSizeNum = NULL,
LPSIZE lpSizeDenom = NULL,
LPCRECT lpPosRect = NULL) const;
Parameters
lpSizeNum
Aanwijzer naar een object van klasse CSize
dat de teller van de zoomfactor vasthoudt. Kan NULL zijn.
lpSizeDenom-
Aanwijzer naar een object van klasse CSize
dat de noemer van de zoomfactor vasthoudt. Kan NULL zijn.
lpPosRect-
Wijs een object aan van klasse CRect
waarin de nieuwe positie van het item wordt beschreven. Als dit argument NULL is, gebruikt de functie de huidige positie van het item.
Retourwaarde
Niet-nul als het item is geactiveerd voor in-place bewerking en de zoomfactor anders is dan 100% (1:1); anders 0.
Opmerkingen
De zoomfactor, in pixels, is het aandeel van de grootte van het item in de huidige mate. Als de containertoepassing de omvang van het item niet heeft ingesteld, wordt de bijbehorende natuurlijke omvang (zoals bepaald door COleServerItem::OnGetExtent) gebruikt.
De functie stelt de eerste twee argumenten in op de teller en noemer van de 'zoomfactor' van het item. Als het item niet wordt bewerkt, worden deze argumenten door de functie ingesteld op een standaardwaarde van 100% (of 1:1) en wordt nul geretourneerd. Zie Technische opmerking 40, MFC/OLE-In-Place formaat wijzigen en in- en uitzoomenvoor meer informatie.
COleServerDoc::IsDocObject
Bepaalt of het document een DocObject is.
BOOL IsDocObject() const;
Retourwaarde
WAAR als het document een DocObject is; anders ONWAAR.
COleServerDoc::IsEmbedded
Roep de IsEmbedded
lidfunctie aan om te bepalen of het document een object vertegenwoordigt dat is ingesloten in een container.
BOOL IsEmbedded() const;
Retourwaarde
Niet-nul als het COleServerDoc
object een document is dat een object vertegenwoordigt dat is ingesloten in een container; anders 0.
Opmerkingen
Een document dat vanuit een bestand is geladen, wordt niet ingesloten, hoewel het kan worden bewerkt door een containertoepassing als een koppeling. Een document dat is ingesloten in een containerdocument wordt beschouwd als ingesloten.
COleServerDoc::IsInPlaceActive
Roep de functie IsInPlaceActive
lid aan om te bepalen of het item zich momenteel in de in-place actieve status bevindt.
BOOL IsInPlaceActive() const;
Retourwaarde
Niet-nul als het COleServerDoc
object actief is; anders 0.
COleServerDoc::NotifyChanged
Roep deze functie aan om alle gekoppelde items te melden die zijn verbonden met het document dat het document is gewijzigd.
void NotifyChanged();
Opmerkingen
Normaal gesproken roept u deze functie aan nadat de gebruiker een globaal kenmerk heeft gewijzigd, zoals de dimensies van het serverdocument. Als een OLE-item is gekoppeld aan het document met een automatische koppeling, wordt het item bijgewerkt met de wijzigingen. In containertoepassingen die zijn geschreven met de Microsoft Foundation Class Library, wordt de functie OnChange lid van COleClientItem
aangeroepen.
Notitie
Deze functie is opgenomen voor compatibiliteit met OLE 1. Nieuwe toepassingen moeten UpdateAllItems-gebruiken.
COleServerDoc::NotifyClosed
Roep deze functie aan om de container(s) op de hoogte te stellen dat het document is gesloten.
void NotifyClosed();
Opmerkingen
Wanneer de gebruiker de opdracht Sluiten kiest in het menu Bestand, wordt NotifyClosed
aangeroepen door de implementatie van de OnCloseDocument lidfunctie van COleServerDoc
. In containertoepassingen die zijn geschreven met de Microsoft Foundation Class Library, wordt de functie OnChange lid van COleClientItem
aangeroepen.
COleServerDoc::NotifyRename
Roep deze functie aan nadat de gebruiker de naam van het serverdocument heeft gewijzigd.
void NotifyRename(LPCTSTR lpszNewName);
Parameters
lpszNewName
Wijs een tekenreeks aan die de nieuwe naam van het serverdocument aangeeft; dit is doorgaans een volledig gekwalificeerd pad.
Opmerkingen
Wanneer de gebruiker de opdracht Opslaan als kiest in het menu Bestand, wordt NotifyRename
aangeroepen door COleServerDoc
implementatie van de OnSaveDocument lidfunctie. Met deze functie worden de OLE-systeem-DLL's gewaarschuwd, die de containers op hun beurt op de hoogte stellen. In containertoepassingen die zijn geschreven met de Microsoft Foundation Class Library, wordt de functie OnChange lid van COleClientItem
aangeroepen.
COleServerDoc::NotifySaved
Roep deze functie aan nadat de gebruiker het serverdocument heeft opgeslagen.
void NotifySaved();
Opmerkingen
Wanneer de gebruiker de opdracht Opslaan kiest in het menu Bestand, wordt NotifySaved
voor u aangeroepen door COleServerDoc
implementatie van OnSaveDocument. Met deze functie worden de OLE-systeem-DLL's gewaarschuwd, die de containers op hun beurt op de hoogte stellen. In containertoepassingen die zijn geschreven met de Microsoft Foundation Class Library, wordt de functie OnChange lid van COleClientItem
aangeroepen.
COleServerDoc::OnClose
Aangeroepen door het framework wanneer een container aanvraagt dat het serverdocument wordt gesloten.
virtual void OnClose(OLECLOSE dwCloseOption);
Parameters
dwCloseOption-
Een waarde uit de opsomming OLECLOSE. Deze parameter kan een van de volgende waarden hebben:
OLECLOSE_SAVEIFDIRTY Het bestand wordt opgeslagen als het is gewijzigd.
OLECLOSE_NOSAVE Het bestand wordt gesloten zonder op te slaan.
OLECLOSE_PROMPTSAVE Als het bestand is gewijzigd, wordt de gebruiker gevraagd het bestand op te slaan.
Opmerkingen
De standaard-implementatie roept CDocument::OnCloseDocument
aan.
Zie OLECLOSE- in de Windows SDK voor meer informatie en aanvullende waarden.
COleServerDoc::OnDeactivate
Aangeroepen door het framework wanneer de gebruiker een ingesloten of gekoppeld item deactiveert dat momenteel in-place actief is.
virtual void OnDeactivate();
Opmerkingen
Met deze functie herstelt u de gebruikersinterface van de containertoepassing naar de oorspronkelijke staat en verwijdert u menu's en andere besturingselementen die zijn gemaakt voor in-place activering.
De statusinformatie ongedaan maken moet op dit moment voorwaardelijke vrijgegeven worden.
Zie het artikel Activeringvoor meer informatie.
COleServerDoc::OnDeactivateUI
Aangeroepen wanneer de gebruiker een item deactiveert dat is geactiveerd.
virtual void OnDeactivateUI(BOOL bUndoable);
Parameters
bUndoable
Hiermee geeft u op of de bewerkingswijzigingen ongedaan kunnen worden gemaakt.
Opmerkingen
Met deze functie herstelt u de gebruikersinterface van de containertoepassing naar de oorspronkelijke staat, waarbij menu's en andere besturingselementen worden verborgen die zijn gemaakt voor in-place activering.
Het framework stelt altijd bUndoable in op FALSE. Als de server ongedaan maken ondersteunt en er een bewerking is die ongedaan kan worden gemaakt, roept u de implementatie van de basisklasse aan met bUndoable ingesteld op TRUE.
COleServerDoc::OnDocWindowActivate
In het framework wordt deze functie aangeroepen om een documentvenster te activeren of deactiveren voor in-place bewerking.
virtual void OnDocWindowActivate(BOOL bActivate);
Parameters
Hiermee geeft u op of het documentvenster moet worden geactiveerd of gedeactiveerd.
Opmerkingen
Met de standaard implementatie worden de elementen van de gebruikersinterface op frameniveau verwijderd of toegevoegd, indien van toepassing. Overschrijf deze functie als u extra acties wilt uitvoeren wanneer het document met uw item wordt geactiveerd of gedeactiveerd.
Zie het artikel Activeringvoor meer informatie.
COleServerDoc::OnExecOleCmd
In het framework wordt deze functie aangeroepen om een opgegeven opdracht uit te voeren of help voor de opdracht weer te geven.
virtual HRESULT OnExecOleCmd(
const GUID* pguidCmdGroup,
DWORD nCmdID,
DWORD nCmdExecOpt,
VARIANTARG* pvarargIn,
VARIANTARG* pvarargOut);
Parameters
pguidCmdGroup-
Een aanwijzer naar een GUID die een set opdrachten identificeert. Kan NULL zijn om de standaardopdrachtgroep aan te geven.
nCmdID-
De opdracht die moet worden uitgevoerd. Moet zich in de groep bevinden die is geïdentificeerd door pguidCmdGroup.
nCmdExecOut-
De manier waarop het object de opdracht moet uitvoeren, een of meer van de volgende waarden uit de opsomming OLECMDEXECOPT:
OLECMDEXECOPT_DODEFAULT
OLECMDEXECOPT_PROMPTUSER
OLECMDEXECOPT_DONTPROMPTUSER
OLECMDEXECOPT_SHOWHELP
pvarargIn-
Aanwijzer naar een VARIANTARG met invoerargumenten voor de opdracht. Kan NULL zijn.
pvarargOut-
Wijs een VARIANTARG aan om de uitvoerwaarden van de opdracht te ontvangen. Kan NULL zijn.
Retourwaarde
Retourneert S_OK indien geslaagd; anders voert u een van de volgende foutcodes uit:
Waarde | Beschrijving |
---|---|
E_UNEXPECTED | Er is een onverwachte fout opgetreden |
E_FAIL | Er is een fout opgetreden |
E_NOTIMPL | Geeft aan dat MFC zelf de opdracht moet vertalen en verzenden |
OLECMDERR_E_UNKNOWNGROUP | pguidCmdGroup- is niet NULL, maar geeft geen herkende opdrachtgroep op |
OLECMDERR_E_NOTSUPPORTED | nCmdID- wordt niet herkend als een geldige opdracht in de groep pguidCmdGroup- |
OLECMDERR_DISABLED | De opdracht geïdentificeerd door nCmdID is uitgeschakeld en kan niet worden uitgevoerd |
OLECMDERR_NOHELP | Beller heeft om hulp gevraagd bij de opdracht die is geïdentificeerd door nCmdID, maar er is geen hulp beschikbaar |
OLECMDERR_CANCELED | Gebruiker heeft de uitvoering geannuleerd |
Opmerkingen
COleCmdUI
kan worden gebruikt om opdrachten voor de gebruikersinterface van DocObject in te schakelen, bij te werken en in te stellen. Nadat de opdrachten zijn geïnitialiseerd, kunt u ze uitvoeren met OnExecOleCmd
.
Het framework roept de functie aan voordat een OLE-documentopdracht wordt vertaald en verzonden. U hoeft deze functie niet te overschrijven om standaard OLE-documentopdrachten af te handelen, maar u moet een onderdrukking opgeven voor deze functie als u uw eigen aangepaste opdrachten wilt afhandelen of opdrachten wilt verwerken die parameters accepteren of resultaten retourneren.
De meeste opdrachten hebben geen argumenten of retourwaarden. Voor een meerderheid van opdrachten kan de aanroeper NULL's doorgeven voor pvarargIn en pvarargOut. Voor opdrachten die invoerwaarden verwachten, kan de aanroeper een VARIANTARG-variabele declareren en initialiseren en een aanwijzer doorgeven aan de variabele in pvarargIn-. Voor opdrachten waarvoor één waarde is vereist, kan het argument rechtstreeks in de VARIANTARG worden opgeslagen en aan de functie worden doorgegeven. Er moeten meerdere argumenten in de VARIANTARG worden verpakt met behulp van een van de ondersteunde typen (zoals IDispatch
en SAFEARRAY).
Als een opdracht argumenten retourneert, wordt verwacht dat de aanroeper een VARIANTARG declareert, deze initialiseert naar VT_EMPTY en het adres doorgeeft in pvarargOut-. Als een opdracht één waarde retourneert, kan het object die waarde rechtstreeks opslaan in pvarargOut-. Meerdere uitvoerwaarden moeten op een of andere manier worden verpakt die geschikt zijn voor de VARIANTARG.
De basisklasse-implementatie van deze functie leidt de OLE_COMMAND_MAP structuren die zijn gekoppeld aan het opdrachtdoel en proberen de opdracht naar een geschikte handler te verzenden. De basisklasse-implementatie werkt alleen met opdrachten die geen argumenten accepteren of waarden retourneren. Als u opdrachten moet afhandelen die argumenten accepteren of waarden retourneren, moet u deze functie overschrijven en zelf werken met de parameters pvarargIn en pvarargOut parameters.
COleServerDoc::OnFrameWindowActivate
Dit framework roept deze functie aan wanneer het framevenster van de containertoepassing wordt geactiveerd of gedeactiveerd.
virtual void OnFrameWindowActivate(BOOL bActivate);
Parameters
Hiermee geeft u op of het framevenster moet worden geactiveerd of gedeactiveerd.
Opmerkingen
De standaard implementatie annuleert alle Help-modi waarin het framevenster zich mogelijk bevindt. Overschrijf deze functie als u speciale verwerking wilt uitvoeren wanneer het framevenster wordt geactiveerd of gedeactiveerd.
Zie het artikel Activeringvoor meer informatie.
COleServerDoc::OnGetEmbeddedItem
Aangeroepen door het framework wanneer een containertoepassing de servertoepassing aanroept om een ingesloten item te maken of te bewerken.
virtual COleServerItem* OnGetEmbeddedItem() = 0;
Retourwaarde
Een aanwijzer naar een item dat het hele document vertegenwoordigt; NULL als de bewerking is mislukt.
Opmerkingen
Er is geen standaard implementatie. U moet deze functie overschrijven om een item te retourneren dat het hele document vertegenwoordigt. Deze retourwaarde moet een object van een COleServerItem
-afgeleide klasse zijn.
COleServerDoc::OnReactivateAndUndo
Dit framework roept deze functie aan wanneer de gebruiker ervoor kiest om wijzigingen ongedaan te maken die zijn aangebracht in een item dat is geactiveerd, gewijzigd en vervolgens gedeactiveerd.
virtual BOOL OnReactivateAndUndo();
Retourwaarde
Niet-nul indien geslaagd; anders 0.
Opmerkingen
De standaard implementatie retourneert niets behalve FALSE om aan te geven dat de fout is mislukt.
Overschrijf deze functie als uw toepassing ondersteuning biedt voor ongedaan maken. Meestal voert u de bewerking ongedaan maken uit en activeert u het item door ActivateInPlace
aan te roepen. Als de containertoepassing is geschreven met de Microsoft Foundation Class Library, wordt deze functie aangeroepen COleClientItem::ReactivateAndUndo
wordt aangeroepen.
COleServerDoc::OnResizeBorder
Het framework roept deze functie aan wanneer de framevensters van de containertoepassing de grootte wijzigen.
virtual void OnResizeBorder(
LPCRECT lpRectBorder,
LPOLEINPLACEUIWINDOW lpUIWindow,
BOOL bFrame);
Parameters
lpRectBorder-
Wijs een RECT
structuur of een CRect
-object aan waarmee de coördinaten van de rand worden opgegeven.
lpUIWindow-
Aanwijzer naar een object van klasse IOleInPlaceUIWindow
dat eigenaar is van de huidige in-place bewerkingssessie.
bFrame-
WAAR als lpUIWindow verwijst naar het framevenster op het hoogste niveau van de containertoepassing, of FALSE als lpUIWindow verwijst naar het framevenster op documentniveau van de containertoepassing.
Opmerkingen
Met deze functie wordt de grootte van werkbalken en andere elementen van de gebruikersinterface aangepast in overeenstemming met de nieuwe venstergrootte.
Zie IOleInPlaceUIWindow- in de Windows SDK voor meer informatie.
Dit is een geavanceerd overschrijfbaar.
COleServerDoc::OnSetHostNames
Aangeroepen door het framework wanneer de container de hostnamen voor dit document instelt of wijzigt.
virtual void OnSetHostNames(
LPCTSTR lpszHost,
LPCTSTR lpszHostObj);
Parameters
lpszHost-
Wijs een tekenreeks aan waarmee de naam van de containertoepassing wordt opgegeven.
lpszHostObj-
Wijs een tekenreeks aan waarmee de naam van de container voor het document wordt opgegeven.
Opmerkingen
De standaard implementatie wijzigt de documenttitel voor alle weergaven die naar dit document verwijzen.
Overschrijf deze functie als uw toepassing de titels instelt via een ander mechanisme.
COleServerDoc::OnSetItemRects
In het framework wordt deze functie aangeroepen om het venster frame voor in-place bewerking binnen het framevenster van de containertoepassing te plaatsen.
virtual void OnSetItemRects(
LPCRECT lpPosRect,
LPCRECT lpClipRect);
Parameters
lpPosRect-
Wijs een RECT
structuur of een CRect
-object aan waarmee de positie van het in-place framevenster ten opzichte van het clientgebied van de containertoepassing wordt opgegeven.
lpClipRect-
Wijs een RECT
structuur of een CRect
-object aan waarmee de rechthoek voor in-place framevensters ten opzichte van het clientgebied van de containertoepassing wordt opgegeven.
Opmerkingen
Overschrijf deze functie om de zoomfactor van de weergave bij te werken, indien nodig.
Deze functie wordt meestal aangeroepen als reactie op een RequestPositionChange
aanroep, hoewel deze op elk gewenst moment door de container kan worden aangeroepen om een positiewijziging voor het in-place item aan te vragen.
COleServerDoc::OnShowControlBars
In het framework wordt deze functie aangeroepen om de besturingsbalken van de servertoepassing weer te geven of te verbergen die zijn gekoppeld aan het framevenster dat is geïdentificeerd door pFrameWnd.
virtual void OnShowControlBars(
CFrameWnd* pFrameWnd,
BOOL bShow);
Parameters
pFrameWnd
Aanwijzer naar het framevenster waarvan de besturingsbalken moeten worden verborgen of weergegeven.
bShow
Bepaalt of besturingsbalken worden weergegeven of verborgen.
Opmerkingen
De standaard implementatie bevat alle besturingsbalken die eigendom zijn van dat framevenster en verbergt of toont deze.
COleServerDoc::OnShowDocument
Het framework roept de OnShowDocument
-functie aan wanneer het serverdocument moet worden verborgen of weergegeven.
virtual void OnShowDocument(BOOL bShow);
Parameters
bShow
Hiermee geeft u op of de gebruikersinterface voor het document moet worden weergegeven of verborgen.
Opmerkingen
Als bShow TRUE is, activeert de standaard implementatie de servertoepassing, indien nodig, en zorgt ervoor dat de containertoepassing door het venster schuift, zodat het item zichtbaar is. Als bShow ONWAAR is, wordt het item standaard gedeactiveerd door middel van een aanroep naar OnDeactivate
en worden alle framevensters vernietigd of verborgen die voor het document zijn gemaakt, behalve de eerste. Als er geen zichtbare documenten blijven, verbergt de standaard implementatie de servertoepassing.
COleServerDoc::OnUpdateDocument
Aangeroepen door het framework bij het opslaan van een document dat een ingesloten item is in een samengesteld document.
virtual BOOL OnUpdateDocument();
Retourwaarde
Niet-nul als het document is bijgewerkt; anders 0.
Opmerkingen
De standaardimplementatie roept de COleServerDoc::NotifySaved en COleServerDoc::SaveEmbedding lidfuncties aan en markeert het document als schoon. Overschrijf deze functie als u speciale verwerking wilt uitvoeren bij het bijwerken van een ingesloten item.
COleServerDoc::RequestPositionChange
Roep deze lidfunctie aan om de containertoepassing de positie van het item te laten wijzigen.
void RequestPositionChange(LPCRECT lpPosRect);
Parameters
lpPosRect-
Aanwijzer naar een RECT
structuur of een CRect
-object met de nieuwe positie van het item.
Opmerkingen
Deze functie wordt meestal aangeroepen (in combinatie met UpdateAllItems
) wanneer de gegevens in een in-place actief item zijn gewijzigd. Na deze aanroep kan de container de wijziging al dan niet uitvoeren door OnSetItemRects
aan te roepen. De resulterende positie kan afwijken van de positie die is aangevraagd.
COleServerDoc::SaveEmbedding
Roep deze functie aan om de containertoepassing te laten weten dat het ingesloten object moet worden opgeslagen.
void SaveEmbedding();
Opmerkingen
Deze functie wordt automatisch aangeroepen vanuit OnUpdateDocument
. Houd er rekening mee dat deze functie ervoor zorgt dat het item op schijf wordt bijgewerkt, dus het wordt meestal alleen aangeroepen als gevolg van een specifieke gebruikersactie.
COleServerDoc::ScrollContainerBy
Roep de functie ScrollContainerBy
lid aan om het containerdocument te schuiven op basis van de hoeveelheid, in pixels, aangegeven door sizeScroll
.
BOOL ScrollContainerBy(CSize sizeScroll);
Parameters
sizeScroll-
Geeft aan hoe ver het containerdocument moet schuiven.
Retourwaarde
Niet-nul indien geslaagd; anders 0.
Opmerkingen
Positieve waarden geven aan dat omlaag en naar rechts schuiven; negatieve waarden geven aan dat omhoog en naar links schuiven.
COleServerDoc::UpdateAllItems
Roep deze functie aan om alle gekoppelde items te melden die zijn verbonden met het document dat het document is gewijzigd.
void UpdateAllItems(
COleServerItem* pSender,
LPARAM lHint = 0L,
CObject* pHint = NULL,
DVASPECT nDrawAspect = DVASPECT_CONTENT);
Parameters
pSender-
Wijs het item aan dat het document heeft gewijzigd of NULL als alle items moeten worden bijgewerkt.
lHint-
Bevat informatie over de wijziging.
pHint-
Wijs een object aan dat informatie over de wijziging opslaat.
nDrawAspect-
Bepaalt hoe het item moet worden getekend. Dit is een waarde uit de opsomming DVASPECT. Deze parameter kan een van de volgende waarden hebben:
DVASPECT_CONTENT item wordt weergegeven op een zodanige manier dat het kan worden weergegeven als een ingesloten object in de container.
DVASPECT_THUMBNAIL Item wordt weergegeven in een miniatuurweergave, zodat het kan worden weergegeven in een browserprogramma.
DVASPECT_ICON item wordt vertegenwoordigd door een pictogram.
DVASPECT_DOCPRINT item wordt weergegeven alsof het is afgedrukt met behulp van de opdracht Afdrukken in het menu Bestand.
Opmerkingen
U roept deze functie doorgaans aan nadat de gebruiker het serverdocument heeft gewijzigd. Als een OLE-item is gekoppeld aan het document met een automatische koppeling, wordt het item bijgewerkt met de wijzigingen. In containertoepassingen die zijn geschreven met de Microsoft Foundation Class Library, wordt de functie OnChange lid van COleClientItem
aangeroepen.
Met deze functie wordt de functie OnUpdate
lid aangeroepen voor elk van de items van het document, met uitzondering van het verzendende item, het doorgeven van pHint, lHinten nDrawAspect. Gebruik deze parameters om informatie door te geven aan de items over de wijzigingen die in het document zijn aangebracht. U kunt gegevens coderen met behulp van lHint of u kunt een CObject
-afgeleide klasse definiëren om informatie over de wijzigingen op te slaan en een object van die klasse door te geven met behulp van pHint-. Overschrijf de functie OnUpdate
lid in uw COleServerItem
-afgeleide klasse om het bijwerken van elk item te optimaliseren, afhankelijk van of de presentatie is gewijzigd.
Zie ook
MFC-voorbeeld HIERSVR-
COleLinkingDoc-klasse
Hiërarchiegrafiek
COleDocument Class
COleLinkingDoc-klasse
COleTemplateServer Class