Each class derived from CObject is associated with a CRuntimeClass structure that you can use to obtain information about an object or its base class at run time.
CRuntimeClass is a structure and therefore does not have a base class.
The ability to determine the class of an object at run time is useful when extra type checking of function arguments is needed, or when you must write special-purpose code based on the class of an object. Run-time class information is not supported directly by the C++ language.
CRuntimeClass provides information on the related C++ object, such as a pointer to the CRuntimeClass of the base class and the ASCII class name of the related class. This structure also implements various functions that can be used to dynamically create objects, specifying the type of object by using a familiar name, and determining if the related class is derived from a specific class.
For more information on using CRuntimeClass, see the article Accessing Run-Time Class Information.