BUG: Cannot Serialize Items After CRichEditDoc::Serialize (138632)
The information in this article applies to:
- Microsoft Visual C++, 32-bit Enterprise Edition 5.0
- Microsoft Visual C++, 32-bit Enterprise Edition 6.0
- Microsoft Visual C++, 32-bit Professional Edition 5.0
- Microsoft Visual C++, 32-bit Professional Edition 6.0
- Microsoft Visual C++, 32-bit Learning Edition 6.0
- Microsoft Visual C++ .NET (2002)
This article was previously published under Q138632 NOTE: Microsoft Visual C++ NET (2002) supported both the managed code model that is provided by the .NET Framework and the unmanaged native Windows code model. The information in this article applies to unmanaged Visual C++ code only.
SYMPTOMS
An attempt to load a CRichEditDoc causes the following message to appear:
Unexpected file format.
This happens when you attempt to serialize data to the archive after
serializing the CRichEditDoc.
CAUSE
CRichEditDoc::Serialize() relies on the rich edit control's support for
saving data. The assumption made by MFC is that the serialization of a rich
edit control will encapsulate an entire file. The serialization code for
loading from the CArchive starts from the current file position and reads
to the end of the file.
An attempt to load anything after loading the CRichEditDoc fails because
the file pointer is at the end of the file.
RESOLUTION
If you need to store additional data in the archive, serialize it before
serializing the CRichEditDoc. Ensure that the CRichEditDoc is serialized
last. For example:
void CMyRichEditDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
ar << m_str1;
}
else
{
ar >> m_str1;
}
// Calling the base class CRichEditDoc enables serialization
// of the container document's COleClientItem objects.
CRichEditDoc::Serialize(ar);
// Do not use CArchive after calling CRichEditDoc::Serialize.
}
STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.
Microsoft is researching this problem and will post more information in this article when the information becomes available.
Modification Type: | Major | Last Reviewed: | 6/24/2003 |
---|
Keywords: | kbBug kbcode kbDocView KB138632 kbAudDeveloper |
---|
|