Microsoft KB Archive/138632

= BUG: Cannot Serialize Items After CRichEditDoc::Serialize =

Article ID: 138632

Article Last Modified on 6/24/2003

-

APPLIES TO


 * Microsoft Visual C++ 5.0 Enterprise Edition
 * Microsoft Visual C++ 6.0 Enterprise Edition
 * Microsoft Visual C++ 5.0 Professional Edition
 * Microsoft Visual C++ 6.0 Professional Edition
 * Microsoft Visual C++ 6.0 Standard Edition
 * Microsoft Visual C++ .NET 2002 Standard Edition

-



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.

Additional query words: kbVC400bug 4.00 4.10 4.20

Keywords: kbbug kbdocview kbcode KB138632

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.