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 COleDocument
wilt 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
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
, GetNextClientItem
of 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.
COleDocument::OnEditLinks
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