CObject is the root base class for most of the Microsoft Foundation Class Library (MFC). The CObject class contains many useful features that you may want to incorporate into your own program objects, including serialization support, run-time class information, and object diagnostic output. If you derive your class from CObject, your class can exploit these CObject features.
Validate the object's internal state (see MFC ASSERT_VALID and CObject::AssertValid)
See a list of CObject Frequently Asked Questions