Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer


Call this member function to read a reference to a class previously stored with WriteClass.

CRuntimeClass* ReadClass(
   const CRuntimeClass* pClassRefRequested = NULL,
   UINT* pSchema = NULL,
   DWORD* pObTag = NULL 


A pointer to the CRuntimeClass structure that corresponds to the class reference requested. Can be NULL.
A pointer to a schema of the run-time class previously stored.
A number that refers to an object's unique tag. Used internally by the implementation of ReadObject. Exposed for advanced programming only; pObTag normally should be NULL.

Return Value

A pointer to the CRuntimeClass structure.


If pClassRefRequested is not NULL, ReadClass verifies that the archived class information is compatible with your runtime class. If it is not compatible, ReadClass will throw a CArchiveException.

Your runtime class must use DECLARE_SERIAL and IMPLEMENT_SERIAL; otherwise, ReadClass will throw a CNotSupportedException.

If pSchema is NULL, the schema of the stored class can be retrieved by calling CArchive::GetObjectSchema; otherwise, *pSchema will contain the schema of the run-time class that was previously stored.

You can use SerializeClass instead of ReadClass, which handles both reading and writing of the class reference.


See the example for CArchive::WriteClass.

See Also

CArchive Overview | Class Members | Hierarchy Chart | CArchive::WriteClass | CArchive::GetObjectSchema | CArchive::SetObjectSchema | CArchiveException | CNotSupportedException | CArchive::SerializeClass

© 2015 Microsoft