Share via


COleDocument-klasse

De basisklasse voor OLE-documenten die visuele bewerkingen ondersteunen.

Syntaxis

class COleDocument : public CDocument

Leden

Openbare constructors

Naam Beschrijving
COleDocument::COleDocument Maakt een COleDocument-object.

Openbare methoden

Naam Beschrijving
COleDocument::AddItem- Voegt een item toe aan de lijst met items die door het document worden onderhouden.
COleDocument::ApplyPrintDevice- Hiermee stelt u het afdrukdoelapparaat in voor alle clientitems in het document.
COleDocument::EnableCompoundFile Zorgt ervoor dat documenten worden opgeslagen met de OLE Structured Storage-bestandsindeling.
COleDocument::GetInPlaceActiveItem Retourneert het OLE-item dat momenteel actief is.
COleDocument::GetNextClientItem Hiermee haalt u het volgende clientitem op voor het herhalen.
COleDocument::GetNextItem- Hiermee haalt u het volgende documentitem op voor het herhalen.
COleDocument::GetNextServerItem Hiermee haalt u het volgende serveritem op voor het herhalen.
COleDocument::GetPrimarySelectedItem Retourneert het primaire geselecteerde OLE-item in het document.
COleDocument::GetStartPosition Hiermee haalt u de eerste positie op om te beginnen met iteratie.
COleDocument::HasBlankItems Controleert op lege items in het document.
COleDocument::OnShowViews Aangeroepen wanneer het document zichtbaar of onzichtbaar wordt.
COleDocument::RemoveItem Hiermee verwijdert u een item uit de lijst met items die door het document worden onderhouden.
COleDocument::UpdateModifiedFlag Hiermee wordt het document gemarkeerd als gewijzigd als een van de ingesloten OLE-items is gewijzigd.

Beveiligde methoden

Naam Beschrijving
COleDocument::OnEditChangeIcon Verwerkt gebeurtenissen in de menuopdracht Pictogram wijzigen.
COleDocument::OnEditConvert Verwerkt de conversie van een ingesloten of gekoppeld object van het ene type naar het andere.
COleDocument::OnEditLinks Verwerkt gebeurtenissen in de opdracht Koppelingen in het menu Bewerken.
COleDocument::OnFileSendMail Hiermee wordt een e-mailbericht verzonden waaraan het document is gekoppeld.
COleDocument::OnUpdateEditChangeIcon Aangeroepen door het framework om de opdrachtgebruikersinterface bij te werken voor de menuoptie Pictogram bewerken/wijzigen.
COleDocument::OnUpdateEditLinksMenu Wordt aangeroepen door het framework om de opdrachtgebruikersinterface voor de menuoptie Bewerken/Koppelingen bij te werken.
COleDocument::OnUpdateObjectVerbMenu Aangeroepen door het framework om de opdrachtgebruikersinterface bij te werken voor de menuoptie Edit/ObjectName en het submenu Verb dat wordt geopend vanuit Edit/ObjectName.
COleDocument::OnUpdatePasteLinkMenu Aangeroepen door het framework om de opdrachtgebruikersinterface voor de menuoptie Plakken speciaal bij te werken.
COleDocument::OnUpdatePasteMenu Aangeroepen door het framework om de opdrachtgebruikersinterface voor de menuoptie Plakken bij te werken.

Opmerkingen

COleDocument is afgeleid van CDocument, waarmee uw OLE-toepassingen de document-/weergavearchitectuur van de Microsoft Foundation Class Library kunnen gebruiken.

COleDocument behandelt een document als een verzameling van CDocItem objecten voor het verwerken van OLE-items. Voor zowel container- als servertoepassingen is een dergelijke architectuur vereist, omdat hun documenten OLE-items moeten kunnen bevatten. De COleServerItem en COleClientItem klassen, beide afgeleid van CDocItem, beheren de interacties tussen toepassingen en OLE-items.

Als u een eenvoudige containertoepassing schrijft, moet u uw documentklasse afleiden uit COleDocument. Als u een containertoepassing schrijft die ondersteuning biedt voor het koppelen aan de ingesloten items die zijn opgenomen in de documenten, moet u uw documentklasse afleiden uit COleLinkingDoc-. Als u een servertoepassing of combinatiecontainer/server schrijft, moet u uw documentklasse afleiden uit COleServerDoc. COleLinkingDoc en COleServerDoc worden afgeleid van COleDocument, zodat deze klassen alle services overnemen die beschikbaar zijn in COleDocument en CDocument.

Als u COleDocumentwilt gebruiken, moet u er een klasse van afleiden en functionaliteit toevoegen om de niet-OLE-gegevens van de toepassing en ingesloten of gekoppelde items te beheren. Als u CDocItem-afgeleide klassen definieert om de systeemeigen gegevens van de toepassing op te slaan, kunt u de standaard implementatie gebruiken die is gedefinieerd door COleDocument om zowel uw OLE- als niet-OLE-gegevens op te slaan. U kunt ook uw eigen gegevensstructuren ontwerpen om uw niet-OLE-gegevens afzonderlijk van de OLE-items op te slaan. Zie het artikel Containers: Compound Filesvoor meer informatie.

CDocument ondersteunt het verzenden van uw document via e-mail als er e-mailondersteuning (MAPI) aanwezig is. COleDocument heeft OnFileSendMail- bijgewerkt om samengestelde documenten correct te verwerken. Zie de artikelen MAPI- en MAPI-ondersteuning in MFCvoor meer informatie.

Overnamehiërarchie

CObject-

CCmdTarget-

CDocument-

COleDocument

Eisen

koptekst: afxole.h

COleDocument::AddItem

Roep deze functie aan om een item aan het document toe te voegen.

virtual void AddItem(CDocItem* pItem);

Parameters

pItem-
Aanwijzer naar het documentitem dat wordt toegevoegd.

Opmerkingen

U hoeft deze functie niet expliciet aan te roepen wanneer deze wordt aangeroepen door de COleClientItem of COleServerItem constructor die een aanwijzer naar een document accepteert.

COleDocument::ApplyPrintDevice

Roep deze functie aan om het afdrukdoelapparaat te wijzigen voor alle ingesloten COleClientItem items in het containerdocument van uw toepassing.

BOOL ApplyPrintDevice(const DVTARGETDEVICE* ptd);
BOOL ApplyPrintDevice(const PRINTDLG* ppd);

Parameters

ptd-
Wijs een DVTARGETDEVICE gegevensstructuur aan, die informatie bevat over het nieuwe afdrukdoelapparaat. Kan NULL zijn.


Wijs een PRINTDLG gegevensstructuur aan, die informatie bevat over het nieuwe afdrukdoelapparaat. Kan NULL zijn.

Retourwaarde

Niet-nul als de functie is geslaagd; anders 0.

Opmerkingen

Met deze functie wordt het afdrukdoelapparaat bijgewerkt voor alle items, maar wordt de presentatiecache voor deze items niet vernieuwd. Als u de presentatiecache voor een item wilt bijwerken, roept u COleClientItem::UpdateLinkaan.

De argumenten voor deze functie bevatten informatie die OLE gebruikt om het doelapparaat te identificeren. De PRINTDLG- structuur bevat informatie die windows gebruikt om het algemene dialoogvenster Afdrukken te initialiseren. Nadat de gebruiker het dialoogvenster heeft gesloten, retourneert Windows informatie over de selecties van de gebruiker in deze structuur. Het m_pd lid van een CPrintDialog-object is een PRINTDLG structuur.

Zie de PRINTDLG structuur in de Windows SDK voor meer informatie.

Zie de DVTARGETDEVICE structuur in de Windows SDK voor meer informatie.

COleDocument::COleDocument

Maakt een COleDocument-object.

COleDocument();

COleDocument::EnableCompoundFile

Roep deze functie aan als u het document wilt opslaan met behulp van de samengestelde bestandsindeling.

void EnableCompoundFile(BOOL bEnable = TRUE);

Parameters

bEnable-
Hiermee geeft u op of samengestelde bestandsondersteuning is ingeschakeld of uitgeschakeld.

Opmerkingen

Dit wordt ook wel gestructureerde opslag genoemd. Doorgaans roept u deze functie aan vanuit de constructor van uw COleDocument-afgeleide klasse. Zie het artikel Containers: Samengestelde bestandenvoor meer informatie over samengestelde documenten.

Als u deze lidfunctie niet aanroept, worden documenten opgeslagen in een niet-gestructureerde (platte) bestandsindeling.

Nadat ondersteuning voor samengestelde bestanden is ingeschakeld of uitgeschakeld voor een document, mag de instelling niet worden gewijzigd tijdens de levensduur van het document.

COleDocument::GetInPlaceActiveItem

Roep deze functie aan om het OLE-item op te halen dat momenteel is geactiveerd in het framevenster met de weergave die is geïdentificeerd door pWnd.

virtual COleClientItem* GetInPlaceActiveItem(CWnd* pWnd);

Parameters


Wijs het venster aan waarin het containerdocument wordt weergegeven.

Retourwaarde

Een aanwijzer naar het actieve OLE-item met één locatie; NULL als er momenteel geen OLE-item in de status 'in-place actief' is.

COleDocument::GetNextClientItem

Roep deze functie herhaaldelijk aan om toegang te krijgen tot elk van de clientitems in uw document.

COleClientItem* GetNextClientItem(POSITION& pos) const;

Parameters

pos
Een verwijzing naar een POSITION-waarde die is ingesteld door een vorige aanroep naar GetNextClientItem; de initiële waarde wordt geretourneerd door de functie GetStartPosition lid.

Retourwaarde

Een aanwijzer naar het volgende clientitem in het document of NULL als er geen clientitems meer zijn.

Opmerkingen

Na elke aanroep is de waarde van pos ingesteld voor het volgende item in het document, dat al dan niet een clientitem is.

Voorbeeld

// pDoc points to a COleDocument object
POSITION pos = pDoc->GetStartPosition();
COleClientItem* pItem;
CString strType;
while ((pItem = pDoc->GetNextClientItem(pos)) != NULL)
{
   // Use pItem
   pItem->GetUserType(USERCLASSTYPE_FULL, strType);
   TRACE(strType);
}

COleDocument::GetNextItem

Roep deze functie herhaaldelijk aan om toegang te krijgen tot alle items in uw document.

virtual CDocItem* GetNextItem(POSITION& pos) const;

Parameters

pos
Een verwijzing naar een POSITION-waarde die is ingesteld door een vorige aanroep naar GetNextItem; de initiële waarde wordt geretourneerd door de functie GetStartPosition lid.

Retourwaarde

Een aanwijzer naar het documentitem op de opgegeven positie.

Opmerkingen

Na elke aanroep wordt de waarde van pos ingesteld op de POSITIE-waarde van het volgende item in het document. Als het opgehaalde element het laatste element in het document is, is de nieuwe waarde van pos NULL.

Voorbeeld

// pDoc points to a COleDocument object
POSITION pos = pDoc->GetStartPosition();
CDocItem* pItem;
CString strType;
while (pos != NULL)
{
   pItem = pDoc->GetNextItem(pos);
   // Use pItem
   if (pItem->IsKindOf(RUNTIME_CLASS(COleClientItem)))
   {
      ((COleClientItem*)pItem)->GetUserType(USERCLASSTYPE_FULL, strType);
      TRACE(strType);
   }
}

COleDocument::GetNextServerItem

Roep deze functie herhaaldelijk aan om toegang te krijgen tot elk van de serveritems in uw document.

COleServerItem* GetNextServerItem(POSITION& pos) const;

Parameters

pos
Een verwijzing naar een POSITION-waarde die is ingesteld door een vorige aanroep naar GetNextServerItem; de initiële waarde wordt geretourneerd door de functie GetStartPosition lid.

Retourwaarde

Een aanwijzer naar het volgende serveritem in het document of NULL als er geen serveritems meer zijn.

Opmerkingen

Na elke aanroep is de waarde van pos ingesteld voor het volgende item in het document, dat al dan niet een serveritem is.

Voorbeeld

// pDoc points to a COleDocument object
POSITION pos = pDoc->GetStartPosition();
COleServerItem* pItem;
while ((pItem = pDoc->GetNextServerItem(pos)) != NULL)
{
   // Use pItem
}

COleDocument::GetPrimarySelectedItem

Aangeroepen door het framework om het geselecteerde OLE-item op te halen in de opgegeven weergave.

virtual COleClientItem* GetPrimarySelectedItem(CView* pView);

Parameters

pView-
Wijs het actieve weergaveobject aan dat het document weergeeft.

Retourwaarde

Een aanwijzer naar het enkele, geselecteerde OLE-item; NULL als er geen OLE-items zijn geselecteerd of als er meer dan één is geselecteerd.

Opmerkingen

De standaard implementatie doorzoekt de lijst met ingesloten OLE-items voor één geselecteerd item en retourneert een aanwijzer naar het item. Als er geen item is geselecteerd of als er meer dan één item is geselecteerd, retourneert de functie NULL. U moet de functie CView::IsSelected lid in uw weergaveklasse overschrijven om deze functie te laten werken. Overschrijf deze functie als u uw eigen methode hebt voor het opslaan van ingesloten OLE-items.

COleDocument::GetStartPosition

Roep deze functie aan om de positie van het eerste item in het document op te halen.

virtual POSITION GetStartPosition() const;

Retourwaarde

Een POSITION-waarde die kan worden gebruikt om te beginnen met het doorlopen van de items van het document; NULL als het document geen items bevat.

Opmerkingen

Geef de geretourneerde waarde door aan GetNextItem, GetNextClientItemof GetNextServerItem.

COleDocument::HasBlankItems

Roep deze functie aan om te bepalen of het document lege items bevat.

BOOL HasBlankItems() const;

Retourwaarde

Niet-nul als het document lege items bevat; anders 0.

Opmerkingen

Een leeg item is een item waarvan de rechthoek leeg is.

COleDocument::OnEditChangeIcon

Hiermee wordt het dialoogvenster OLE-wijzigingspictogram weergegeven en wordt het pictogram voor het geselecteerde OLE-item gewijzigd in het pictogram dat de gebruiker selecteert in het dialoogvenster.

afx_msg void OnEditChangeIcon();

Opmerkingen

OnEditChangeIcon maakt en start een dialoogvenster COleChangeIconDialog Pictogram wijzigen.

COleDocument::OnEditConvert

Hiermee wordt het dialoogvenster OLE-conversie weergegeven en wordt het geselecteerde OLE-item geconverteerd of geactiveerd op basis van gebruikersselecties in het dialoogvenster.

afx_msg void OnEditConvert();

Opmerkingen

OnEditConvert een dialoogvenster COleConvertDialog Converteren maakt en start.

Een voorbeeld van conversie is het converteren van een Microsoft Word-document naar een WordPad-document.

Hiermee wordt het dialoogvenster OLE-bewerking/koppelingen weergegeven.

afx_msg void OnEditLinks();

Opmerkingen

OnEditLinks maakt en start een dialoogvenster COleLinksDialog Koppelingen waarmee de gebruiker de gekoppelde objecten kan wijzigen.

COleDocument::OnFileSendMail

Hiermee wordt een bericht verzonden via de lokale e-mailhost (indien aanwezig) met het document als bijlage.

afx_msg void OnFileSendMail();

Opmerkingen

OnFileSendMail roept OnSaveDocument aan om naamloze en gewijzigde documenten te serialiseren (opslaan) naar een tijdelijk bestand, dat vervolgens via elektronische e-mail wordt verzonden. Als het document niet is gewijzigd, is er geen tijdelijk bestand nodig; het origineel wordt verzonden. OnFileSendMail laadt MAPI32.DLL als deze nog niet is geladen.

In tegenstelling tot de implementatie van OnFileSendMail voor CDocument, verwerkt deze functie samengestelde bestanden correct.

Zie de MAPI Topics en MAPI Support in MFC artikelen voor meer informatie.

COleDocument::OnShowViews

In het framework wordt deze functie aangeroepen nadat de zichtbaarheidsstatus van het document is gewijzigd.

virtual void OnShowViews(BOOL bVisible);

Parameters

bVisible-
Geeft aan of het document zichtbaar of onzichtbaar is geworden.

Opmerkingen

De standaardversie van deze functie doet niets. Overschrijven als uw toepassing speciale bewerkingen moet uitvoeren wanneer de zichtbaarheid van het document verandert.

COleDocument::OnUpdateEditChangeIcon

Aangeroepen door het framework om de opdracht Pictogram wijzigen bij te werken in het menu Bewerken.

afx_msg void OnUpdateEditChangeIcon(CCmdUI* pCmdUI);

Parameters

pCmdUI-
Een aanwijzer naar een CCmdUI structuur die het menu vertegenwoordigt dat de opdracht Bijwerken heeft gegenereerd. De updatehandler roept de Enable lidfunctie van de CCmdUI-structuur aan via pCmdUI- om de gebruikersinterface bij te werken.

Opmerkingen

OnUpdateEditChangeIcon werkt de gebruikersinterface van de opdracht bij, afhankelijk van of er al dan niet een geldig pictogram in het document bestaat. Overschrijf deze functie om het gedrag te wijzigen.

COleDocument::OnUpdateEditLinksMenu

Aangeroepen door het framework om de opdracht Koppelingen in het menu Bewerken bij te werken.

afx_msg void OnUpdateEditLinksMenu(CCmdUI* pCmdUI);

Parameters

pCmdUI-
Een aanwijzer naar een CCmdUI structuur die het menu vertegenwoordigt dat de opdracht Bijwerken heeft gegenereerd. De updatehandler roept de Enable lidfunctie van de CCmdUI-structuur aan via pCmdUI- om de gebruikersinterface bij te werken.

Opmerkingen

Vanaf het eerste OLE-item in het document, OnUpdateEditLinksMenu elk item opent, test of het item een koppeling is en, als het een koppeling is, de opdracht Koppelingen inschakelen. Overschrijf deze functie om het gedrag te wijzigen.

COleDocument::OnUpdateObjectVerbMenu

Aangeroepen door het framework om de opdracht ObjectName bij te werken in het menu Bewerken en het submenu Werkwoord dat is geopend via de opdracht ObjectName, waarbij ObjectName de naam is van het OLE-object dat is ingesloten in het document.

afx_msg void OnUpdateObjectVerbMenu(CCmdUI* pCmdUI);

Parameters

pCmdUI-
Een aanwijzer naar een CCmdUI structuur die het menu vertegenwoordigt dat de opdracht Bijwerken heeft gegenereerd. De updatehandler roept de Enable lidfunctie van de CCmdUI-structuur aan via pCmdUI- om de gebruikersinterface bij te werken.

Opmerkingen

OnUpdateObjectVerbMenu werkt de gebruikersinterface van de ObjectName opdracht bij, afhankelijk van of er al dan niet een geldig object in het document bestaat. Als er een object bestaat, is de opdracht ObjectName in het menu Bewerken ingeschakeld. Wanneer deze menuopdracht is geselecteerd, wordt het submenu Werkwoord weergegeven. Het submenu Werkwoord bevat alle werkwoordopdrachten die beschikbaar zijn voor het object, zoals Bewerken, Eigenschappen, enzovoort. Overschrijf deze functie om het gedrag te wijzigen.

COleDocument::OnUpdatePasteLinkMenu

Aangeroepen door het framework om te bepalen of een gekoppeld OLE-item kan worden geplakt vanaf het Klembord.

afx_msg void OnUpdatePasteLinkMenu(CCmdUI* pCmdUI);

Parameters

pCmdUI-
Een aanwijzer naar een CCmdUI structuur die het menu vertegenwoordigt dat de opdracht Bijwerken heeft gegenereerd. De updatehandler roept de Enable lidfunctie van de CCmdUI-structuur aan via pCmdUI- om de gebruikersinterface bij te werken.

Opmerkingen

De opdracht Plakken speciaal is ingeschakeld of uitgeschakeld, afhankelijk van of het item al dan niet in het document kan worden geplakt.

COleDocument::OnUpdatePasteMenu

Aangeroepen door het framework om te bepalen of een ingesloten OLE-item kan worden geplakt vanaf het Klembord.

afx_msg void OnUpdatePasteMenu(CCmdUI* pCmdUI);

Parameters

pCmdUI-
Een aanwijzer naar een CCmdUI structuur die het menu vertegenwoordigt dat de opdracht Bijwerken heeft gegenereerd. De updatehandler roept de Enable lidfunctie van de CCmdUI-structuur aan via pCmdUI- om de gebruikersinterface bij te werken.

Opmerkingen

De opdracht En het menu Plakken zijn ingeschakeld of uitgeschakeld, afhankelijk van of het item al dan niet in het document kan worden geplakt.

COleDocument::RemoveItem

Roep deze functie aan om een item uit het document te verwijderen.

virtual void RemoveItem(CDocItem* pItem);

Parameters

pItem-
Wijs het documentitem aan dat moet worden verwijderd.

Opmerkingen

Normaal gesproken hoeft u deze functie niet expliciet aan te roepen; het wordt aangeroepen door de destructors voor COleClientItem en COleServerItem.

COleDocument::UpdateModifiedFlag

Roep deze functie aan om het document te markeren als gewijzigd als een van de ingesloten OLE-items is gewijzigd.

virtual void UpdateModifiedFlag();

Opmerkingen

Hierdoor kan het framework de gebruiker vragen het document op te slaan voordat het wordt gesloten, zelfs als de systeemeigen gegevens in het document niet zijn gewijzigd.

Zie ook

MFC-voorbeeldcontainer
MFC Sample MFCBIND
CDocument Class
Hiërarchiegrafiek