void CCell::Save(IXMLDOMElementPtr pRoot) { IXMLDOMDocumentPtr pDoc=pRoot->ownerDocument; //add a graphy cell IXMLDOMElementPtr pCell=pDoc->createElement(L"go");; _variant_t val; val.vt=VT_BSTR; val.bstrVal=::SysAllocString(L"cell"); pCell->setAttribute(L"type",val); pRoot->appendChild(pCell); //save all elements POSITION pos; CElement *pElement; for(pos=m_Elements.GetHeadPosition();pos!=NULL;){ pElement=((CElement*)(m_Elements.GetNext(pos))); pElement->Save(pCell); } }
void CText::Save(IXMLDOMElementPtr pRoot) { IXMLDOMElementPtr pGO; IXMLDOMElementPtr pStatic; IXMLDOMElementPtr pDynamic; IXMLDOMElementPtr pAttr; _variant_t val; IXMLDOMDocumentPtr pDoc=pRoot->ownerDocument; //add a graphy object pGO=pDoc->createElement(L"go"); val.vt=VT_BSTR; val.bstrVal=::SysAllocString(L"text"); pGO->setAttribute(L"type",val); pRoot->appendChild(pGO); //add a group static attribution pStatic=pDoc->createElement(L"static"); pGO->appendChild(pStatic); //position pAttr=pDoc->createElement(L"position"); pStatic->appendChild(pAttr); //x1 val.vt=VT_I4; val.lVal=m_lx1; pAttr->setAttribute(L"x1",val); //y1 val.vt=VT_I4; val.lVal=m_ly1; pAttr->setAttribute(L"y1",val); //x2 val.vt=VT_I4; val.lVal=m_lx2; pAttr->setAttribute(L"x2",val); //y2 val.vt=VT_I4; val.lVal=m_ly2; pAttr->setAttribute(L"y2",val); //face color pAttr=pDoc->createElement("color"); pStatic->appendChild(pAttr); //color val.vt=VT_UI4; val.ulVal=m_FaceColor; pAttr->setAttribute(L"c",val); //font pAttr=pDoc->createElement("font"); pStatic->appendChild(pAttr); //lfHeight val.vt=VT_I4; val.lVal=m_font.lfHeight; pAttr->setAttribute(L"h",val); //lfWidth val.vt=VT_I4; val.lVal=m_font.lfWidth; pAttr->setAttribute(L"wd",val); //lfEscapement val.vt=VT_I4; val.lVal=m_font.lfEscapement; pAttr->setAttribute(L"e",val); //lfOrientation val.vt=VT_I4; val.lVal=m_font.lfOrientation; pAttr->setAttribute(L"o",val); //lfWeight val.vt=VT_I4; val.lVal=m_font.lfWeight; pAttr->setAttribute(L"wg",val); //lfItalic val.vt=VT_UI1; val.bVal=m_font.lfItalic; pAttr->setAttribute(L"i",val); //lfUnderline val.vt=VT_UI1; val.bVal=m_font.lfUnderline; pAttr->setAttribute(L"u",val); //lfStrikeOut val.vt=VT_UI1; val.bVal=m_font.lfStrikeOut; pAttr->setAttribute(L"so",val); //lfCharSet val.vt=VT_UI1; val.bVal=m_font.lfCharSet; pAttr->setAttribute(L"cs",val); //lfOutPrecision val.vt=VT_UI1; val.bVal=m_font.lfOutPrecision; pAttr->setAttribute(L"op",val); //lfClipPrecision val.vt=VT_UI1; val.bVal=m_font.lfClipPrecision; pAttr->setAttribute(L"cp",val); //lfQuality val.vt=VT_UI1; val.bVal=m_font.lfQuality; pAttr->setAttribute(L"q",val); //lfPitchAndFamily val.vt=VT_UI1; val.bVal=m_font.lfPitchAndFamily; pAttr->setAttribute(L"paf",val); //lfFaceName CString strFaceName=m_font.lfFaceName; //strFaceName.Format("%s",m_font.lfFaceName); val.vt=VT_BSTR; val.bstrVal=strFaceName.AllocSysString(); pAttr->setAttribute(L"fn",val); //text pAttr=pDoc->createElement("text"); pStatic->appendChild(pAttr); val.vt=VT_BSTR; val.bstrVal=m_text.AllocSysString(); pAttr->setAttribute(L"t",val); //if linked then save dynamic attribution pDynamic=pDoc->createElement("dynamic"); pGO->appendChild(pDynamic); if(m_DnyAttr.m_Linked){ //linked val.vt=VT_BOOL; val.boolVal=-1; pDynamic->setAttribute(L"linked",val); //save dynamic attribution m_DnyAttr.Save(pDoc,pDynamic); }else{ //unlinked val.vt=VT_BOOL; val.boolVal=FALSE; pDynamic->setAttribute(L"linked",val); } }
void CLine::Save(IXMLDOMElementPtr pRoot) { IXMLDOMElementPtr pGO; IXMLDOMElementPtr pStatic; IXMLDOMElementPtr pDynamic; IXMLDOMElementPtr pAttr; _variant_t val; IXMLDOMDocumentPtr pDoc=pRoot->ownerDocument; //add a graphy object pGO=pDoc->createElement(L"go"); val.vt=VT_BSTR; val.bstrVal=::SysAllocString(L"line"); pGO->setAttribute(L"type",val); pRoot->appendChild(pGO); //add a group static attribution pStatic=pDoc->createElement(L"static"); pGO->appendChild(pStatic); //position pAttr=pDoc->createElement(L"position"); pStatic->appendChild(pAttr); //x1 val.vt=VT_I4; val.lVal=m_lx1; pAttr->setAttribute(L"x1",val); //y1 val.vt=VT_I4; val.lVal=m_ly1; pAttr->setAttribute(L"y1",val); //x2 val.vt=VT_I4; val.lVal=m_lx2; pAttr->setAttribute(L"x2",val); //y2 val.vt=VT_I4; val.lVal=m_ly2; pAttr->setAttribute(L"y2",val); //pen pAttr=pDoc->createElement("pen"); pStatic->appendChild(pAttr); //style val.vt=VT_UI4; val.ulVal=m_pen.lopnStyle; pAttr->setAttribute(L"s",val); //width val.vt=VT_I4; val.lVal=m_pen.lopnWidth.x; pAttr->setAttribute(L"w",val); //color val.vt=VT_UI4; val.ulVal=m_pen.lopnColor; pAttr->setAttribute(L"c",val); //if linked then save dynamic attribution pDynamic=pDoc->createElement("dynamic"); pGO->appendChild(pDynamic); if(m_DnyAttr.m_Linked) { //linked val.vt=VT_BOOL; val.boolVal=-1; pDynamic->setAttribute(L"linked",val); //save dynamic attribution m_DnyAttr.Save(pDoc,pDynamic); } else { //unlinked val.vt=VT_BOOL; val.boolVal=FALSE; pDynamic->setAttribute(L"linked",val); } }