This can be done for classes derived from CObject through a functionality provided by the MFC as a macro named RUNTIME_CLASS.
1. Make a class derived from CObject and create its object somewhere:
MyClass MyClassObj = new MyClass;
2. Code at some other place where the object is visible.
CRuntimeClass* p = RUNTIME_MACRO(MyClass);
3. The pointer p contains a structure representing details of the class
CMyClass and can be used to determine whether an object is of the type CMyClass:
CObject* pMyNewObject = new CMyClass;
It may also perform some processing, such as:
if(pMyNewObject->IsKindOf( RUNTIME_CLASS( CMyClass ) ) )
//if IsKindOf is true, then do something