//在扩展数据里寻找是否包含指定的KEY
bool FindXDataKey(resbuf* rb,const CString strKey)
{
if(rb==NULL)
{
return false;
}
resbuf* rbHeader=rb;
for(;rbHeader!=NULL;rbHeader=rbHeader->rbnext)
{
if(rbHeader->restype==AcDb::kDxfRegAppName&&
strKey.CompareNoCase(rbHeader->resval.rstring)==0)
{
return true;
}
}
return false;
}
//删除扩展数据里指定的KEY包含的内容
void DeleteXData(AcDbObject* pObj,const CString strKey)
{
resbuf* rb=pObj->xData();//获取扩展属性
if(rb==NULL)
{
return;
}
bool bFind=FindXDataKey(rb,strKey);
acutRelRb(rb);
if(!bFind)
{
return;
}
resbuf* rb1=acutBuildList(AcDb::kDxfRegAppName,strKey,NULL);//设置成空的,CAD会自动删除的
pObj->setXData(rb1);
acutRelRb(rb1);
}


杭州格原