From: Herby on
Can someone please help on this - im seriously baffled!

When the MFC framework attempts to de-serialise the first class( its
already de-serialised some CString and primitive types) it enters the
following MFC method:

CRuntimeClass* PASCAL CRuntimeClass::FromName(LPCSTR lpszClassName)
CRuntimeClass* pClass=NULL;


// search app specific classes
AFX_MODULE_STATE* pModuleState = AfxGetModuleState();
for (pClass = pModuleState->m_classList; pClass != NULL;
pClass = pClass->m_pNextClass)
if (lstrcmpA(lpszClassName, pClass->m_lpszClassName) == 0)
return pClass;

For whatever reason? the pModuleState->m_classList is empty !!!!

How does this get populated?
Why would this be empty?

From: Herby on
Guys, or anyone who has been following this - I think i may have solved
A typical method of my COM class looks like this:

LONG COMCalculator::OpenOleFile(LPCTSTR strOleFilePath)

bool result = mCalc.OpenOleFile(strOleFilePath);
if( result == true )
return S_OK;
return S_FALSE;

When i comment out AFX_MANAGE_STATE(AfxGetStaticModuleState())
It worked. I understand this is useful when your component is a DLL
and has resources.
As mine does not i do not need to call it.

Pages: 1
Prev: Drawing on DC
Next: VC6 project fails in VS2006