void CConnections::Serialize( CArchive& archive ) { int iCount=0; POSITION pos; CString sKey; CConnection* pConnection; WORD wType; int i=0; // call base class function first // base class is CObject in this case CObject::Serialize( archive ); // now do the stuff for our specific class if( archive.IsStoring() ){ iCount=GetCount(); archive <<iCount; pos = GetStartPosition(); while (NULL!=pos) { GetNextAssoc(pos,sKey,pConnection); //Serialize each connection archive <<sKey<< pConnection->Type(); pConnection->Serialize(archive); } } else { archive >>iCount; for (i=0;i<iCount;i++){ archive >>sKey>>wType; pConnection= Add(sKey,wType); pConnection->Serialize(archive); if (CConnection::AUTO==pConnection->Type()) { if (!pConnection->AutoPtr()->m_pIModbusSrv) { Remove(sKey); } } } } }