VC结构提序列化有关问题

VC结构提序列化问题
//记录内存中的图片数据
struct ImgRecord
{
CDBImgX dbCurImg; //导入图片对象(备份,未修改的原图片)
CDBImgX dbLoadImg;//修改后用于显示的图片对象!
CDBImgX dbBackImg;//背景图片对象
CDBImgX dbForeImg;//前景图片对象
CString pCurImg;//导入图片
CString pBackImg;//背景图片
CString pForeImg;//前景图片
CString pPostImg;//当前贴花图片
CPostManage PostMg ;//贴花管理链表
CPicGroupManage XmlMg;//记录XML信息
int MaxCount; //记录贴花图片最大数
int DateCount;//记录有几张日历
int PenCount;//画笔数
// int Angle;//记录旋转角度
// int iMirror;//记录镜面旋转次数,为奇数时需要旋转
bool bCurVail; //当前图片有效
bool bBackVail;//背景图片有效
bool bForeVail;//前景图片有效
bool bPostVail;//贴花图片有效

ImgRecord()
{
pCurImg="";
pBackImg="";
pForeImg="";
pPostImg="";
MaxCount=0;
DateCount=0;
PenCount=0;
// Angle=0;
// iMirror=0;
bCurVail=false;
bBackVail=false;
bForeVail=false;
bPostVail=false;

void Serialize(CArchive &ar)//增加序列化函数  
{  
if(ar.IsStoring())  
{  
char ch;//由于bool类型不支持序列化,所以用char型进行转换  
// ar<<dbCurImg;  
// ar<<dbLoadImg;
// ar<<dbBackImg;
// ar<<dbForeImg;
ar<<pCurImg;
ar<<pBackImg;
ar<<pForeImg;
ar<<pPostImg;
// ar<<PostMg;
// ar<<XmlMg;
ar<<MaxCount;
ar<<DateCount;
ar<<PenCount;
ch = bCurVail;  
ar<<ch;  
ch = bBackVail;  
ar<<ch; 
ch=bForeVail;
ar<<ch;
ch = bPostVail;
ar<<ch;

}  
else  
{  
char ch;  
// ar>>dbCurImg;  
// ar>>dbLoadImg;
// ar>>dbBackImg;
// ar>>dbForeImg;
ar>>pCurImg;
ar>>pBackImg;
ar>>pForeImg;
ar>>pPostImg;
// ar>>PostMg;
// ar>>XmlMg;
ar>>MaxCount;
ar>>DateCount;
ar>>PenCount;
ch = bCurVail;  
ar>>ch;  
ch = bBackVail;  
ar>>ch; 
ch=bForeVail;
ar>>ch;
ch = bPostVail;
ar>>ch; 
}  
}  

};

在结构体里面实现Serialize()函数没问题!,问题是有些读乡类型Serialize函数是不支持的,例如CDBImgX dbCurImg,请问怎么样让他支持储存。最好给出代码,谢谢!

------解决方案--------------------
自己写行不行

C/C++ code
inline CArchive& AFXAPI operator <<(CArchive& arch, CDBImgX dbCurImg)
    { arch.Write(...); return arch; }
inline CArchive& AFXAPI operator >>(CArchive& arch, CDBImgX& dbCurImg)
    { arch.Read(...); return arch; }

------解决方案--------------------
最简单的办法:
void CDBImgX::Serialize( CArchive& ar )
{
....
}
dbCurImg.Serialize( ar );