Если объект может быть преобразован в последовательную форму (сохранен на диск), тогда значение отличное от нуля, иначе ноль.
BOOL IsSerializable( ) const;
Для того, чтобы класс мог быть преобразован в последовательную форму в объявлении класса должно быть объявлено DECLARE_SERIAL, а в реализации IMPLEMENT_SERIAL смотрим пример:
#include "stdafx.h" #include "afxwin.h" #include "iostream.h" class CMyObject : public CObject { protected: DECLARE_DYNCREATE(CMyObject) }; IMPLEMENT_DYNCREATE(CMyObject,CObject); class CAlternativeObject : public CObject { protected: DECLARE_SERIAL(CAlternativeObject); }; IMPLEMENT_SERIAL(CAlternativeObject,CObject,1); void CreateAllObject(CRuntimeClass* pClass); void main() { CMyObject cm; CAlternativeObject ca; if (cm.IsSerializable()) cout << "CMyObject serialize" << endl; if (ca.IsSerializable()) cout << "CAlternativeObject serialize" << endl; }
В классе CAlternativeObject объявлен механизм сохранения и восстановления объекта с помощью макросов, поэтому IsSerializable и даем возможность нам вывести надпись.