Этот макрос позволяет определитиь принадлежность объекта классу.
ASSERT_KINDOF( classname, pobject ) // Classname Имя класса. // Pobject Указатель на объект класса.
Данный макрос упрощает использование функции IsKindOf, вот смотрите, что написано в исходном коде:
#define ASSERT_KINDOF(class_name, object) \ ASSERT((object)->IsKindOf(RUNTIME_CLASS(class_name)))
Соответственно к использованию данного макроса требования такие же, как и к IsKindOf это только в отладочной версии. Обязательное объвление в классе DECLARE_DYNAMIC или DECLARE_SERIAL.
Вот смотрите ниже две строки кода совершенно однозначны:
ASSERT_KINDOF(CMyDocument, pDocument) ASSERT(pDocument->IsKindOf(RUNTIME_CLASS(CMyDocument)));