CArchive::MapObject

void MapObject (const CObject * pOb );

Parámetros

pOb

Un constante puntero al objeto que se almacena.

Observaciones

Esta fu&nción miembro para colocar los objetos en el mapa que no son realmente serializa en el archivo, pero que están disponibles para subobjetos para hacer referencia a la palabra. Por ejemplo, no puede serializar un documento, pero sería serializar los elementos que forman parte de la document.nbsp; Llamando al MapObject, permite que dichos objetos o subobjetos, que hacen referencia al documento. También, los subelementos serializados pueden serializar su puntero posterior m_pDocument.

Puede llamar a MapObject al almacenar y cargar desde el objeto CArchive . MapObject agrega el objeto especificado para las estructuras de datos internas mantenidas por el objeto CArchive durante la serialización y deserialización, pero a diferencia de ReadObject y WriteObject, no llame a serializar el objeto.

Ejemplo

/ / MyDoc.h
/ / Documento debe tener DECLARE_SERIAL y IMPLEMENT_SERIAL

clase CMyDocument: CDocument pública
{
   CObList m_listOfSubItems;
 nbsp;  ...
   DECLARE_SERIAL(CMyDocument)
};

/ / MyDoc.cpp
...
IMPLEMENT_SERIAL (CMyDocument, CObject, 1)
...
void CMyDocument::Serialize (CArchive & ar)
{
   Si (ar.IsStoring())
   {
      / / TODO: agregar código de almacenamiento
   }
   otra cosa
   {
      / / TODO: agregar aquí el código de carga
   }

ar.MapObject(this);  
   //Serialize los subelementos en el documento;
   //They será capaz de serializar su m_pDoc
   puntero //back
   m_listOfSubItems.Serialize(ar);

}

//SubItem.h
clase CSubItem: CObject pública
{
público:
   CSubItem(CMyDocument * pDoc)
      {m_pDoc = pDoc;}

/ / puntero de vuelta a poseer el documento
   CMyDocument * m_pDoc; 
   WORD m_i; / otros datos el tema

virtual void Serialize (CArchive & ar);
};

//SubItem.cpp
void CSubItem::Serialize (CArchive & ar)
{
   Si (ar.IsStoring())
   {
      / / serializará un //con de referencia el puntero de documento "asignado"
      ar << m_pDoc;  
      ar << m_i;
   }
   otra cosa
   {
      / / cargará una referencia al puntero de documento "asignado" //the
      ar >> m_pDoc;
      ar >> m_i;
   }
}

Visió&n General de CArchive |nbsp; Miembros de clase | Diagrama de jerarquía

Vea tambié&nnbsp;CArchive::ReadObject, CArchive::WriteObject

Index