CArchive::MapObject

void MapObject (const CObject * pOb );

Parameter

pOb

Ein konstanter Zeiger auf das Objekt gespeichert werden.

Bemerkungen

Rufe&n Sie diese Memberfunktion um Gegenstände in die Karte, die nicht wirklich auf die Datei serialisiert werden, jedoch sind verfügbar für Unterobjekte zu verweisen. Beispielsweise Sie können ein Dokument nicht serialisieren, aber Sie würde Serialisieren der Elemente, die Teil der document.nbsp sind; Durch MapObjectaufrufen, können Sie die Elemente oder Teilobjekte, um das Dokument verweisen. Auch können serialisierten Unterelemente ihre M_pDocument Rückwärtszeiger serialisieren.

MapObject können Sie aufrufen, wenn Sie zum Speichern und von das CArchive -Objekt laden. MapObject fügt das angegebene Objekt auf die internen Datenstrukturen verwaltet das CArchive -Objekt während der Serialisierung und Deserialisierung, aber im Gegensatz zu ReadObject und WriteObject, es nicht aufgerufen Serialisieren des Objekts.

Beispiel

/ / MyDoc.h
/ / Dokument müssen DECLARE_SERIAL und IMPLEMENT_SERIAL

Klasse CMyDocument: öffentliche CDocument
{
   CObList M_listOfSubItems;
 Nbsp;  ...
   DECLARE_SERIAL(CMyDocument)
};

/ / MyDoc.cpp
...
IMPLEMENT_SERIAL (CMyDocument, CObject, 1)
...
privatevoid CMyDocument::Serialize (CArchive & Ar)
{
   Wenn (Ar.IsStoring())
   {
      / / TODO: Fügen Sie speichern Code hier
   }
   anderes
   {
      / / TODO: Fügen Sie hier Code laden
   }

AR.MapObject(this);  
   //Serialize die Unterelemente im Dokument;
   //They werden in der Lage, ihre M_pDoc zu serialisieren
   //Back Zeiger
   m_listOfSubItems.Serialize(AR);

}

//SubItem.h
CSubItem-Klasse: public CObject
{
Öffentliche:
   CSubItem(CMyDocument * pDoc)
      {M_pDoc = pDoc;}

/ / Zeiger auf Besitz Dokument zurück
   CMyDocument * M_pDoc; 
   WORD M_i; / / andere Positionsdaten

virtuelle Deserialize (CArchive & Ar);
};

//SubItem.cpp
privatevoid CSubItem::Serialize (CArchive & Ar)
{
   Wenn (Ar.IsStoring())
   {
      / / wird ein Verweis //to Zeigers "zugeordnete" Dokument serialisieren
      AR << M_pDoc;  
      AR << M_i;
   }
   anderes
   {
      / / lädt einen Verweis auf //die "zugeordnete" Dokument Zeiger
      AR >> M_pDoc;
      AR >> M_i;
   }
}

Übersicht über die CArchiveMember der Klasse | Hierarchiediagramm

Siehe auch&Nbsp;CArchive::ReadObject, CArchive::WriteObject

Index