COleDocument-Klasse
Die Basisklasse für OLE-Dokumente, die visuelle Bearbeitung unterstützen.
Syntax
class COleDocument : public CDocument
Member
Öffentliche Konstruktoren
Name | Beschreibung |
---|---|
COleDocument::COleDocument | Erstellt ein COleDocument -Objekt. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
COleDocument::AddItem | Fügt der Liste der vom Dokument verwalteten Elemente ein Element hinzu. |
COleDocument::ApplyPrintDevice | Legt das Druckzielgerät für alle Clientelemente im Dokument fest. |
COleDocument::EnableCompoundFile | Bewirkt, dass Dokumente mithilfe des OLE Structured Storage-Dateiformats gespeichert werden. |
COleDocument::GetInPlaceActiveItem | Gibt das OLE-Element zurück, das derzeit aktiv ist. |
COleDocument::GetNextClientItem | Ruft das nächste Clientelement zum Durchlaufen ab. |
COleDocument::GetNextItem | Ruft das nächste Dokumentelement zum Durchlaufen ab. |
COleDocument::GetNextServerItem | Ruft das nächste Serverelement zum Durchlaufen ab. |
COleDocument::GetPrimarySelectedItem | Gibt das primäre ausgewählte OLE-Element im Dokument zurück. |
COleDocument::GetStartPosition | Ruft die Anfangsposition ab, um die Iteration zu beginnen. |
COleDocument::HasBlankItems | Sucht nach leeren Elementen im Dokument. |
COleDocument::OnShowViews | Wird aufgerufen, wenn das Dokument sichtbar oder unsichtbar wird. |
COleDocument::RemoveItem | Entfernt ein Element aus der Liste der vom Dokument verwalteten Elemente. |
COleDocument::UpdateModifiedFlag | Kennzeichnet das Dokument als geändert, wenn eines der enthaltenen OLE-Elemente geändert wurde. |
Geschützte Methoden
Name | Beschreibung |
---|---|
COleDocument::OnEditChangeIcon | Behandelt Ereignisse im Menübefehl "Symbol ändern". |
COleDocument::OnEditConvert | Behandelt die Konvertierung eines eingebetteten oder verknüpften Objekts von einem Typ in einen anderen. |
COleDocument::OnEditLinks | Behandelt Ereignisse im Befehl "Links" im Menü "Bearbeiten". |
COleDocument::OnFileSendMail | Sendet eine E-Mail-Nachricht mit dem angefügten Dokument. |
COleDocument::OnUpdateEditChangeIcon | Wird vom Framework aufgerufen, um die Befehlsbenutzeroberfläche für die Menüoption "Symbol bearbeiten/ändern" zu aktualisieren. |
COleDocument::OnUpdateEditLinksMenu | Wird vom Framework aufgerufen, um die Befehlsbenutzeroberfläche für die Menüoption "Bearbeiten/Links" zu aktualisieren. |
COleDocument::OnUpdateObjectVerbMenu | Wird vom Framework aufgerufen, um die Befehlsbenutzeroberfläche für die Menüoption "Edit/ ObjectName " und das Untermenü "Verb" zu aktualisieren, auf das über "Edit/ ObjectName" zugegriffen wird. |
COleDocument::OnUpdatePasteLinkMenu | Vom Framework aufgerufen, um die Befehlsbenutzeroberfläche für die Menüoption "Inhalte einfügen" zu aktualisieren. |
COleDocument::OnUpdatePasteMenu | Wird vom Framework aufgerufen, um die Befehlsbenutzeroberfläche für die Menüoption "Einfügen" zu aktualisieren. |
Hinweise
COleDocument
abgeleitet von CDocument
, wodurch Ihre OLE-Anwendungen die von der Microsoft Foundation Class Library bereitgestellte Dokument-/Ansichtsarchitektur verwenden können.
COleDocument
behandelt ein Dokument als Auflistung von CDocItem-Objekten zum Behandeln von OLE-Elementen. Container- und Serveranwendungen erfordern eine solche Architektur, da ihre Dokumente OLE-Elemente enthalten müssen. Die Von beiden abgeleiteten CDocItem
Klassen COleServerItem und COleClientItem verwalten die Interaktionen zwischen Anwendungen und OLE-Elementen.
Wenn Sie eine einfache Containeranwendung schreiben, leiten Sie Ihre Dokumentklasse von COleDocument
. Wenn Sie eine Containeranwendung schreiben, die das Verknüpfen mit den eingebetteten Elementen unterstützt, die in ihren Dokumenten enthalten sind, leiten Sie Ihre Dokumentklasse von COleLinkingDoc ab. Wenn Sie eine Serveranwendung oder kombinationscontainer/server schreiben, leiten Sie Ihre Dokumentklasse von COleServerDoc ab. COleLinkingDoc
und COleServerDoc
werden von COleDocument
abgeleitet, sodass diese Klassen alle dienste erben, die in COleDocument
und CDocument
.
Um eine Klasse zu verwenden COleDocument
, leiten Sie eine Klasse daraus ab und fügen Sie Funktionen zum Verwalten der Nicht-OLE-Daten der Anwendung sowie eingebettete oder verknüpfte Elemente hinzu. Wenn Sie abgeleitete Klassen definieren CDocItem
, um die systemeigenen Daten der Anwendung zu speichern, können Sie die Standardimplementierung verwenden, die definiert wird COleDocument
, um sowohl Ihre OLE- als auch Nicht-OLE-Daten zu speichern. Sie können auch eigene Datenstrukturen entwerfen, um Ihre Nicht-OLE-Daten separat von den OLE-Elementen zu speichern. Weitere Informationen finden Sie im Artikel Container: Verbunddateien..
CDocument
unterstützt das Senden Ihres Dokuments per E-Mail, wenn der E-Mail-Support (MAPI) vorhanden ist. COleDocument
hat OnFileSendMail aktualisiert, um zusammengesetzte Dokumente korrekt zu verarbeiten. Weitere Informationen finden Sie in den Artikeln MAPI - und MAPI-Support in MFC..
Vererbungshierarchie
COleDocument
Anforderungen
Kopfzeile: afxole.h
COleDocument::AddItem
Rufen Sie diese Funktion auf, um dem Dokument ein Element hinzuzufügen.
virtual void AddItem(CDocItem* pItem);
Parameter
pItem
Zeiger auf das Dokumentelement, das hinzugefügt wird.
Hinweise
Sie müssen diese Funktion nicht explizit aufrufen, wenn sie vom Konstruktor aufgerufen wird, der COleClientItem
COleServerItem
einen Zeiger auf ein Dokument akzeptiert.
COleDocument::ApplyPrintDevice
Rufen Sie diese Funktion auf, um das Druckzielgerät für alle eingebetteten COleClientItem-Elemente im Containerdokument Ihrer Anwendung zu ändern.
BOOL ApplyPrintDevice(const DVTARGETDEVICE* ptd);
BOOL ApplyPrintDevice(const PRINTDLG* ppd);
Parameter
Ptd
Zeigen Sie auf eine DVTARGETDEVICE
Datenstruktur, die Informationen zum neuen Druckzielgerät enthält. Kann den Wert NULL haben.
ppd
Zeigen Sie auf eine PRINTDLG
Datenstruktur, die Informationen zum neuen Druckzielgerät enthält. Kann den Wert NULL haben.
Rückgabewert
Nonzero, wenn die Funktion erfolgreich war; andernfalls 0.
Hinweise
Diese Funktion aktualisiert das Druckzielgerät für alle Elemente, aktualisiert jedoch nicht den Präsentationscache für diese Elemente. Rufen Sie zum Aktualisieren des Präsentationscaches für ein Element COleClientItem::UpdateLink auf.
Die Argumente für diese Funktion enthalten Informationen, die OLE zum Identifizieren des Zielgeräts verwendet. Die PRINTDLG-Struktur enthält Informationen, die Windows zum Initialisieren des allgemeinen Dialogfelds "Drucken" verwendet. Nachdem der Benutzer das Dialogfeld geschlossen hat, gibt Windows Informationen über die Auswahl des Benutzers in dieser Struktur zurück. Das m_pd
Element eines CPrintDialog-Objekts ist eine PRINTDLG
Struktur.
Weitere Informationen finden Sie in der PRINTDLG-Struktur im Windows SDK.
Weitere Informationen finden Sie in der DVTARGETDEVICE-Struktur im Windows SDK.
COleDocument::COleDocument
Erstellt ein COleDocument
-Objekt.
COleDocument();
COleDocument::EnableCompoundFile
Rufen Sie diese Funktion auf, wenn Sie das Dokument mithilfe des Verbunddateiformats speichern möchten.
void EnableCompoundFile(BOOL bEnable = TRUE);
Parameter
bEnable
Gibt an, ob die Verbunddateiunterstützung aktiviert oder deaktiviert ist.
Hinweise
Dies wird auch als strukturierter Speicher bezeichnet. In der Regel rufen Sie diese Funktion aus dem Konstruktor Ihrer COleDocument
abgeleiteten Klasse auf. Weitere Informationen zu zusammengesetzten Dokumenten finden Sie im Artikel Container: Verbunddateien..
Wenn Sie diese Memberfunktion nicht aufrufen, werden Dokumente in einem nicht strukturierten ("flachen") Dateiformat gespeichert.
Nachdem die Unterstützung für zusammengesetzte Dateien für ein Dokument aktiviert oder deaktiviert wurde, sollte die Einstellung während der Lebensdauer des Dokuments nicht mehr geändert werden.
COleDocument::GetInPlaceActiveItem
Rufen Sie diese Funktion auf, um das OLE-Element abzurufen, das derzeit im Framefenster aktiviert ist, das die von pWnd identifizierte Ansicht enthält.
virtual COleClientItem* GetInPlaceActiveItem(CWnd* pWnd);
Parameter
pWnd
Zeigen Sie auf das Fenster, in dem das Containerdokument angezeigt wird.
Rückgabewert
Ein Zeiger auf das einzelne, direkte aktive OLE-Element; NULL, wenn sich derzeit kein OLE-Element im Status "In-place active" befindet.
COleDocument::GetNextClientItem
Rufen Sie diese Funktion wiederholt auf, um auf die einzelnen Clientelemente in Ihrem Dokument zuzugreifen.
COleClientItem* GetNextClientItem(POSITION& pos) const;
Parameter
pos
Ein Verweis auf einen POSITION-Wert, der durch einen vorherigen Aufruf GetNextClientItem
festgelegt wurde; der Anfangswert wird von der GetStartPosition
Memberfunktion zurückgegeben.
Rückgabewert
Ein Zeiger auf das nächste Clientelement im Dokument oder NULL, wenn keine Clientelemente mehr vorhanden sind.
Hinweise
Nach jedem Aufruf wird der Pos-Wert für das nächste Element im Dokument festgelegt, das möglicherweise ein Clientelement ist.
Beispiel
// 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
Rufen Sie diese Funktion wiederholt auf, um auf die einzelnen Elemente in Ihrem Dokument zuzugreifen.
virtual CDocItem* GetNextItem(POSITION& pos) const;
Parameter
pos
Ein Verweis auf einen POSITION-Wert, der durch einen vorherigen Aufruf GetNextItem
festgelegt wurde; der Anfangswert wird von der GetStartPosition
Memberfunktion zurückgegeben.
Rückgabewert
Ein Zeiger auf das Dokumentelement an der angegebenen Position.
Hinweise
Nach jedem Aufruf wird der Pos-Wert auf den POSITION-Wert des nächsten Elements im Dokument festgelegt. Wenn das abgerufene Element das letzte Element im Dokument ist, ist der neue Wert von Pos NULL.
Beispiel
// 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
Rufen Sie diese Funktion wiederholt auf, um auf die einzelnen Serverelemente in Ihrem Dokument zuzugreifen.
COleServerItem* GetNextServerItem(POSITION& pos) const;
Parameter
pos
Ein Verweis auf einen POSITION-Wert, der durch einen vorherigen Aufruf GetNextServerItem
festgelegt wurde; der Anfangswert wird von der GetStartPosition
Memberfunktion zurückgegeben.
Rückgabewert
Ein Zeiger auf das nächste Serverelement im Dokument oder NULL, wenn keine Serverelemente mehr vorhanden sind.
Hinweise
Nach jedem Aufruf wird der Pos-Wert für das nächste Element im Dokument festgelegt, das möglicherweise ein Serverelement ist.
Beispiel
// pDoc points to a COleDocument object
POSITION pos = pDoc->GetStartPosition();
COleServerItem* pItem;
while ((pItem = pDoc->GetNextServerItem(pos)) != NULL)
{
// Use pItem
}
COleDocument::GetPrimarySelectedItem
Vom Framework aufgerufen, um das aktuell ausgewählte OLE-Element in der angegebenen Ansicht abzurufen.
virtual COleClientItem* GetPrimarySelectedItem(CView* pView);
Parameter
pView
Zeigen Sie auf das aktive Ansichtsobjekt, das das Dokument anzeigt.
Rückgabewert
Ein Zeiger auf das einzelne, ausgewählte OLE-Element; NULL, wenn keine OLE-Elemente ausgewählt sind oder mehrere elemente ausgewählt sind.
Hinweise
Die Standardimplementierung durchsucht die Liste der enthaltenen OLE-Elemente für ein einzelnes ausgewähltes Element und gibt einen Zeiger darauf zurück. Wenn kein Element ausgewählt ist oder mehrere Elemente ausgewählt sind, gibt die Funktion NULL zurück. Sie müssen die CView::IsSelected
Memberfunktion in Ihrer Ansichtsklasse außer Kraft setzen, damit diese Funktion funktioniert. Überschreiben Sie diese Funktion, wenn Sie über eine eigene Methode zum Speichern von enthaltenen OLE-Elementen verfügen.
COleDocument::GetStartPosition
Rufen Sie diese Funktion auf, um die Position des ersten Elements im Dokument abzurufen.
virtual POSITION GetStartPosition() const;
Rückgabewert
Ein POSITION-Wert, der zum Durchlaufen der Elemente des Dokuments verwendet werden kann; NULL, wenn das Dokument keine Elemente enthält.
Hinweise
Übergeben Sie den wert, der an GetNextItem
, GetNextClientItem
, oder GetNextServerItem
.
COleDocument::HasBlankItems
Rufen Sie diese Funktion auf, um zu bestimmen, ob das Dokument leere Elemente enthält.
BOOL HasBlankItems() const;
Rückgabewert
Nonzero, wenn das Dokument leere Elemente enthält; andernfalls 0.
Hinweise
Ein leeres Element ist ein Element, dessen Rechteck leer ist.
COleDocument::OnEditChangeIcon
Zeigt das Dialogfeld OLE-Änderungssymbol an und ändert das Symbol, das das aktuell ausgewählte OLE-Element auf das Symbol darstellt, das der Benutzer im Dialogfeld auswählt.
afx_msg void OnEditChangeIcon();
Hinweise
OnEditChangeIcon
erstellt und startet ein COleChangeIconDialog
Dialogfeld "Symbol ändern".
COleDocument::OnEditConvert
Zeigt das Dialogfeld "OLE-Konvertierung" an und konvertiert oder aktiviert das aktuell ausgewählte OLE-Element entsprechend den Benutzerauswahlen im Dialogfeld.
afx_msg void OnEditConvert();
Hinweise
OnEditConvert
erstellt und startet ein COleConvertDialog
Dialogfeld "Konvertieren".
Ein Beispiel für die Konvertierung ist das Konvertieren eines Microsoft Word-Dokuments in ein WordPad-Dokument.
COleDocument::OnEditLinks
Zeigt das Dialogfeld OLE-Bearbeitung/Verknüpfungen an.
afx_msg void OnEditLinks();
Hinweise
OnEditLinks
erstellt und startet ein COleLinksDialog
Dialogfeld "Verknüpfungen", in dem der Benutzer die verknüpften Objekte ändern kann.
COleDocument::OnFileSendMail
Sendet eine Nachricht über den residenten E-Mail-Host (falls vorhanden) mit dem Dokument als Anlage.
afx_msg void OnFileSendMail();
Hinweise
OnFileSendMail
Aufrufe OnSaveDocument
zum Serialisieren (Speichern) unbenannter und geänderter Dokumente in eine temporäre Datei, die dann per E-Mail gesendet wird. Wenn das Dokument nicht geändert wurde, ist keine temporäre Datei erforderlich; das Original wird gesendet. OnFileSendMail
lädt MAPI32.DLL, wenn sie noch nicht geladen wurde.
Im Gegensatz zur Implementierung von OnFileSendMail
for CDocument
verarbeitet diese Funktion zusammengesetzte Dateien ordnungsgemäß.
Weitere Informationen finden Sie in den MFC-Artikeln unter MAPI Topics und MAPI Support.For more information, see the MAPI Topics and MAPI Support in MFC articles..
COleDocument::OnShowViews
Das Framework ruft diese Funktion auf, nachdem sich der Sichtbarkeitsstatus des Dokuments geändert hat.
virtual void OnShowViews(BOOL bVisible);
Parameter
bVisible
Gibt an, ob das Dokument sichtbar oder unsichtbar geworden ist.
Hinweise
Die Standardversion dieser Funktion führt nichts aus. Überschreiben Sie sie, wenn ihre Anwendung eine spezielle Verarbeitung ausführen muss, wenn sich die Sichtbarkeit des Dokuments ändert.
COleDocument::OnUpdateEditChangeIcon
Wird vom Framework aufgerufen, um den Befehl "Symbol ändern" im Menü "Bearbeiten" zu aktualisieren.
afx_msg void OnUpdateEditChangeIcon(CCmdUI* pCmdUI);
Parameter
pCmdUI
Ein Zeiger auf eine CCmdUI
Struktur, die das Menü darstellt, das den Updatebefehl generiert hat. Der Updatehandler ruft die Enable
Memberfunktion der CCmdUI
Struktur über pCmdUI auf, um die Benutzeroberfläche zu aktualisieren.
Hinweise
OnUpdateEditChangeIcon
aktualisiert die Benutzeroberfläche des Befehls, je nachdem, ob im Dokument ein gültiges Symbol vorhanden ist oder nicht. Überschreiben Sie diese Funktion, um das Verhalten zu ändern.
COleDocument::OnUpdateEditLinksMenu
Wird vom Framework aufgerufen, um den Befehl "Links" im Menü "Bearbeiten" zu aktualisieren.
afx_msg void OnUpdateEditLinksMenu(CCmdUI* pCmdUI);
Parameter
pCmdUI
Ein Zeiger auf eine CCmdUI
Struktur, die das Menü darstellt, das den Updatebefehl generiert hat. Der Updatehandler ruft die Enable
Memberfunktion der CCmdUI
Struktur über pCmdUI auf, um die Benutzeroberfläche zu aktualisieren.
Hinweise
Beginnend mit dem ersten OLE-Element im Dokument greift auf jedes Element zu, überprüft, OnUpdateEditLinksMenu
ob es sich bei dem Element um einen Link handelt, und aktiviert, wenn es sich um einen Link handelt, den Befehl "Verknüpfungen". Überschreiben Sie diese Funktion, um das Verhalten zu ändern.
COleDocument::OnUpdateObjectVerbMenu
Wird vom Framework aufgerufen, um den Befehl "ObjectName " im Menü "Bearbeiten" und das Untermenü "Verb" zu aktualisieren, auf das über den Befehl "ObjectName " zugegriffen wird, wobei ObjectName der Name des in das Dokument eingebetteten OLE-Objekts ist.
afx_msg void OnUpdateObjectVerbMenu(CCmdUI* pCmdUI);
Parameter
pCmdUI
Ein Zeiger auf eine CCmdUI
Struktur, die das Menü darstellt, das den Updatebefehl generiert hat. Der Updatehandler ruft die Enable
Memberfunktion der CCmdUI
Struktur über pCmdUI auf, um die Benutzeroberfläche zu aktualisieren.
Hinweise
OnUpdateObjectVerbMenu
aktualisiert die Benutzeroberfläche des ObjectName-Befehls , je nachdem, ob ein gültiges Objekt im Dokument vorhanden ist. Wenn ein Objekt vorhanden ist, ist der Befehl "ObjectName " im Menü "Bearbeiten" aktiviert. Wenn dieser Menübefehl ausgewählt ist, wird das Untermenü "Verb" angezeigt. Das Verb-Untermenü enthält alle Verbbefehle, die für das Objekt verfügbar sind, z. B. "Bearbeiten", "Eigenschaften" usw. Überschreiben Sie diese Funktion, um das Verhalten zu ändern.
COleDocument::OnUpdatePasteLinkMenu
Wird vom Framework aufgerufen, um zu bestimmen, ob ein verknüpftes OLE-Element aus der Zwischenablage eingefügt werden kann.
afx_msg void OnUpdatePasteLinkMenu(CCmdUI* pCmdUI);
Parameter
pCmdUI
Ein Zeiger auf eine CCmdUI
Struktur, die das Menü darstellt, das den Updatebefehl generiert hat. Der Updatehandler ruft die Enable
Memberfunktion der CCmdUI
Struktur über pCmdUI auf, um die Benutzeroberfläche zu aktualisieren.
Hinweise
Der Befehl "Inhalte einfügen" ist aktiviert oder deaktiviert, je nachdem, ob das Element in das Dokument eingefügt werden kann oder nicht.
COleDocument::OnUpdatePasteMenu
Wird vom Framework aufgerufen, um zu bestimmen, ob ein eingebettetes OLE-Element aus der Zwischenablage eingefügt werden kann.
afx_msg void OnUpdatePasteMenu(CCmdUI* pCmdUI);
Parameter
pCmdUI
Ein Zeiger auf eine CCmdUI
Struktur, die das Menü darstellt, das den Updatebefehl generiert hat. Der Updatehandler ruft die Enable
Memberfunktion der CCmdUI
Struktur über pCmdUI auf, um die Benutzeroberfläche zu aktualisieren.
Hinweise
Der Befehl und die Schaltfläche "Einfügen" sind aktiviert oder deaktiviert, je nachdem, ob das Element in das Dokument eingefügt werden kann oder nicht.
COleDocument::RemoveItem
Rufen Sie diese Funktion auf, um ein Element aus dem Dokument zu entfernen.
virtual void RemoveItem(CDocItem* pItem);
Parameter
pItem
Zeigen Sie auf das zu entfernende Dokumentelement.
Hinweise
In der Regel müssen Sie diese Funktion nicht explizit aufrufen. sie wird von den Destruktoren für COleClientItem
und COleServerItem
.
COleDocument::UpdateModifiedFlag
Rufen Sie diese Funktion auf, um das Dokument als geändert zu markieren, wenn eines der enthaltenen OLE-Elemente geändert wurde.
virtual void UpdateModifiedFlag();
Hinweise
Auf diese Weise kann das Framework den Benutzer auffordern, das Dokument vor dem Schließen zu speichern, auch wenn die systemeigenen Daten im Dokument nicht geändert wurden.
Siehe auch
MFC-BeispielCONTAINER
MFC-Beispiel MFCBIND
CDocument-Klasse
Hierarchiediagramm