I have a problem here. In my main application header file I have these definitions:
#define SOUNDROTA_VERSION_171801 171801 // 17.1.8 Beta 1
#define SOUNDROTA_VERSION_CURRENT 171801 // 17.1.8 Beta 1
In my application I have a CObject
derived class which has this at the top:
IMPLEMENT_SERIAL(CChristianLifeMinistryEntry, CObject, VERSIONABLE_SCHEMA | SOUNDROTA_VERSION_CURRENT)
Things have always worked fine when using the schema value up until now. I admit that previously the values I was using were smaller, like 1707
for 17.0.7 but I was trying to factor in for beta versions too and thus larger numbers.
void CChristianLifeMinistryEntry::Serialize(CArchive& ar)
{
CObject::Serialize(ar);
if (ar.IsStoring())
{ // saving code
else
{ // loading code
UINT uSchema = ar.GetObjectSchema();
if (uSchema >= SOUNDROTA_VERSION_171801)
{
AfxMessageBox(_T("Booh"));
}
else
{
}
}
}
My problem is, when I save a data file and then re-open it, the uSchema
has a value of 40729.
Why? GetObjectSchema
returns a UNIT
so why am I not getting the schema I specified?
Update
If I use a value of 1718
then it returns that value.