Share via


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 COleServerDocwilt 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 COleServerDocafgeleide klassen nodig.

Zie het artikel Servers: Een server implementerenvoor meer informatie over servers.

Overnamehiërarchie

CObject-

CCmdTarget-

CDocument-

COleDocument-

COleLinkingDoc-

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 COleLinkingDocimplementatie van OnNewDocument, OnOpenDocumenten 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 COleServerDocimplementatie 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 COleServerDocimplementatie 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::OnCloseDocumentaan.

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 ActivateInPlaceaan 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 OnDeactivateen 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 OnSetItemRectsaan 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