void CNonVisualPictureProperties::fromXML(XmlUtils::CXmlLiteReader& oReader) { m_eType = et_Unknown; CString sName = oReader.GetName(); if ( _T("a:cNvPicPr") == sName ) m_eType = et_a_cNvPicPr; else if ( _T("p:cNvPicPr") == sName ) m_eType = et_p_cNvPicPr; else if ( _T("pic:cNvPicPr") == sName ) m_eType = et_pic_cNvPicPr; else return; ReadAttributes( oReader ); if ( oReader.IsEmptyNode() ) return; int nCurDepth = oReader.GetDepth(); while ( oReader.ReadNextSiblingNode( nCurDepth ) ) { sName = oReader.GetName(); if ( _T("a:picLocks") == sName ) m_oPicLocks = oReader; else if ( _T("a:extLst") == sName ) m_oExtLst = oReader; } }
void EffectLst::fromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes( oReader ); if ( oReader.IsEmptyNode() ) return; int nCurDepth = oReader.GetDepth(); while( oReader.ReadNextSiblingNode( nCurDepth ) ) { std::wstring strName = oReader.GetName(); if (strName == L"a:blur") blur = oReader; if (strName == L"a:fillOverlay") fillOverlay = oReader; if (strName == L"a:glow") glow = oReader; if (strName == L"a:innerShdw") innerShdw = oReader; if (strName == L"a:outerShdw") outerShdw = oReader; if (strName == L"a:prstShdw") prstShdw = oReader; if (strName == L"a:reflection") reflection = oReader; if (strName == L"a:softEdge") softEdge = oReader; } }
void CHyperlink::fromXML(XmlUtils::CXmlLiteReader& oReader) { // Определим тип текущей ноды CString sName = oReader.GetName(); if ( _T("a:hlinkClick") == sName ) m_eType = et_a_hlinkClick; else if ( _T("a:hlinkHover") == sName ) m_eType = et_a_hlinkHover; ReadAttributes( oReader ); if ( oReader.IsEmptyNode() ) return; int nCurDepth = oReader.GetDepth(); while( oReader.ReadNextSiblingNode( nCurDepth ) ) { CString sName = oReader.GetName(); if ( _T("a:extLst") == sName ) m_oExtLst = oReader; else if ( _T("a:snd") == sName ) m_oSnd = oReader; } }
void CTblPrExChange::fromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes( oReader ); if ( oReader.IsEmptyNode() ) return; int nParentDepth = oReader.GetDepth(); while( oReader.ReadNextSiblingNode( nParentDepth ) ) { CWCharWrapper sName = oReader.GetName(); if ( m_pTblPrEx.IsInit() && _T("w:tblPrEx") == sName ) m_pTblPrEx->fromXML( oReader ); } }
void CRPrChange::fromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes( oReader ); if ( oReader.IsEmptyNode() ) return; int nParentDepth = oReader.GetDepth(); while( oReader.ReadNextSiblingNode( nParentDepth ) ) { CWCharWrapper sName = oReader.GetName(); WritingElement *pItem = NULL; if ( _T("w:rPr") == sName ) m_pRunPr->fromXML( oReader ); } }
void CxnSp::fromXML(XmlUtils::CXmlLiteReader& oReader) { m_namespace = XmlUtils::GetNamespace(oReader.GetName()); if ( oReader.IsEmptyNode() ) return; int nParentDepth = oReader.GetDepth(); while( oReader.ReadNextSiblingNode( nParentDepth ) ) { std::wstring strName = XmlUtils::GetNameNoNS(oReader.GetName()); if (_T("nvCxnSpPr") == strName) nvCxnSpPr = oReader; else if (_T("spPr") == strName) spPr = oReader; else if (_T("style") == strName) style = oReader; } FillParentPointersForChilds(); }
void CAlternateContent::fromXML(XmlUtils::CXmlLiteReader& oReader) { if ( oReader.IsEmptyNode() ) return; m_sXml.Init(); m_sXml->Append(oReader.GetOuterXml()); // CString sXml; // sXml.Format(_T("<root xmlns:wpc=\"http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\" xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:wp14=\"http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing\" xmlns:wp=\"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\" xmlns:w10=\"urn:schemas-microsoft-com:office:word\" xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" xmlns:w14=\"http://schemas.microsoft.com/office/word/2010/wordml\" xmlns:wpg=\"http://schemas.microsoft.com/office/word/2010/wordprocessingGroup\" xmlns:wpi=\"http://schemas.microsoft.com/office/word/2010/wordprocessingInk\" xmlns:wne=\"http://schemas.microsoft.com/office/word/2006/wordml\" xmlns:wps=\"http://schemas.microsoft.com/office/word/2010/wordprocessingShape\">%ls</root>"), m_sXml.get()); CString sBegin(_T("<root xmlns:wpc=\"http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\" xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:wp14=\"http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing\" xmlns:wp=\"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\" xmlns:w10=\"urn:schemas-microsoft-com:office:word\" xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" xmlns:w14=\"http://schemas.microsoft.com/office/word/2010/wordml\" xmlns:wpg=\"http://schemas.microsoft.com/office/word/2010/wordprocessingGroup\" xmlns:wpi=\"http://schemas.microsoft.com/office/word/2010/wordprocessingInk\" xmlns:wne=\"http://schemas.microsoft.com/office/word/2006/wordml\" xmlns:wps=\"http://schemas.microsoft.com/office/word/2010/wordprocessingShape\">")); CString sEnd(_T("</root>")); CString sXml = sBegin + m_sXml.get() + sEnd; XmlUtils::CXmlLiteReader oSubReader; oSubReader.FromString(sXml); oSubReader.ReadNextNode();//root oSubReader.ReadNextNode();//AlternateContent int nParentDepth = oSubReader.GetDepth(); while( oSubReader.ReadNextSiblingNode( nParentDepth ) ) { CWCharWrapper sName = oSubReader.GetName(); if ( _T("mc:Choice") == sName ) { CRun altRun(oSubReader); for (unsigned int i = 0; i < altRun.m_arrItems.size(); ++i) m_arrChoiceItems.push_back(altRun.m_arrItems[i]); //без RemoveAll они очистятся вместе с altRun altRun.m_arrItems.clear(); } else if ( _T("mc:Fallback") == sName ) { CRun altRun(oSubReader); for (unsigned int i = 0; i < altRun.m_arrItems.size(); ++i) m_arrFallbackItems.push_back(altRun.m_arrItems[i]); //без RemoveAll они очистятся вместе с altRun altRun.m_arrItems.clear(); } } }
void CNonVisualDrawingProps::fromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes( oReader ); m_eType = et_Unknown; CString sName = oReader.GetName(); if ( _T("wp:docPr") == sName ) m_eType = et_wp_docPr; else if ( _T("p:cNvPr") == sName ) m_eType = et_p_cNvPr; else if ( _T("pic:cNvPr") == sName ) m_eType = et_pic_cNvPr; else if ( _T("xdr:cNvPr") == sName ) m_eType = et_xdr_cNvPr; else if ( _T("wps:cNvPr") == sName ) m_eType = et_w_cNvPr; else if ( _T("dsp:cNvPr") == sName ) m_eType = et_dsp_cNvPr; else return; if ( oReader.IsEmptyNode() ) return; int nCurDepth = oReader.GetDepth(); while( oReader.ReadNextSiblingNode( nCurDepth ) ) { sName = oReader.GetName(); if ( _T("a:extLst") == sName ) m_oExtLst = oReader; else if ( _T("a:hlinkClick") == sName ) m_oHlinkClick = oReader; else if ( _T("a:hlinkHover") == sName ) m_oHlinkHover = oReader; } }
void CIns::fromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes( oReader ); if ( oReader.IsEmptyNode() ) return; int nParentDepth = oReader.GetDepth(); while( oReader.ReadNextSiblingNode( nParentDepth ) ) { CWCharWrapper sName = oReader.GetName(); WritingElement *pItem = NULL; if ( _T("w:bdo") == sName ) pItem = new CBdo( oReader ); else if ( _T("w:bookmarkEnd") == sName ) pItem = new CBookmarkEnd( oReader ); else if ( _T("w:bookmarkStart") == sName ) pItem = new CBookmarkStart( oReader ); else if ( _T("w:commentRangeEnd") == sName ) pItem = new CCommentRangeEnd( oReader ); else if ( _T("w:commentRangeStart") == sName ) pItem = new CCommentRangeStart( oReader ); else if ( _T("w:customXmlDelRangeEnd") == sName ) pItem = new CCustomXmlDelRangeEnd( oReader ); else if ( _T("w:customXmlDelRangeStart") == sName ) pItem = new CCustomXmlDelRangeStart( oReader ); else if ( _T("w:customXmlInsRangeEnd") == sName ) pItem = new CCustomXmlInsRangeEnd( oReader ); else if ( _T("w:customXmlInsRangeStart") == sName ) pItem = new CCustomXmlInsRangeStart( oReader ); else if ( _T("w:customXmlMoveFromRangeEnd") == sName ) pItem = new CCustomXmlMoveFromRangeEnd( oReader ); else if ( _T("w:customXmlMoveFromRangeStart") == sName ) pItem = new CCustomXmlMoveFromRangeStart( oReader ); else if ( _T("w:customXmlMoveToRangeEnd") == sName ) pItem = new CCustomXmlMoveToRangeEnd( oReader ); else if ( _T("w:customXmlMoveToRangeStart") == sName ) pItem = new CCustomXmlMoveToRangeStart( oReader ); else if ( _T("w:del") == sName ) pItem = new CDel( oReader ); else if ( _T("w:dir") == sName ) pItem = new CDir( oReader ); else if ( _T("w:fldSimple") == sName ) pItem = new CFldSimple( oReader ); else if ( _T("w:hyperlink") == sName ) pItem = new CHyperlink( oReader ); else if ( _T("w:ins") == sName ) pItem = new CIns( oReader ); else if ( _T("w:moveFromRangeEnd") == sName ) pItem = new CMoveToRangeEnd( oReader ); else if ( _T("w:moveFromRangeStart") == sName ) pItem = new CMoveToRangeStart( oReader ); else if ( _T("w:moveToRangeEnd") == sName ) pItem = new CMoveToRangeEnd( oReader ); else if ( _T("w:moveToRangeStart") == sName ) pItem = new CMoveToRangeStart( oReader ); else if ( _T("m:oMath") == sName ) pItem = new COMath( oReader ); else if ( _T("m:oMathPara") == sName ) pItem = new COMathPara( oReader ); else if ( _T("w:permEnd") == sName ) pItem = new CPermEnd( oReader ); else if ( _T("w:permStart") == sName ) pItem = new CPermStart( oReader ); else if ( _T("w:proofErr") == sName ) pItem = new CProofErr( oReader ); else if ( _T("w:r") == sName ) pItem = new CRun( oReader ); else if ( _T("w:sdt") == sName ) pItem = new CSdt( oReader ); else if ( _T("w:smartTag") == sName ) pItem = new CSmartTag( oReader ); if ( pItem ) m_arrItems.Add( pItem ); } }
void CTc::fromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes( oReader ); if ( oReader.IsEmptyNode() ) return; int nParentDepth = oReader.GetDepth(); while( oReader.ReadNextSiblingNode( nParentDepth ) ) { CWCharWrapper sName = oReader.GetName(); WritingElement *pItem = NULL; /*if ( _T("w:altChunk") == sName ) pItem = new CAltChunk( oReader ); else */if ( _T("w:bookmarkEnd") == sName ) pItem = new CBookmarkEnd( oReader ); else if ( _T("w:bookmarkStart") == sName ) pItem = new CBookmarkStart( oReader ); else if ( _T("w:commentRangeEnd") == sName ) pItem = new CCommentRangeEnd( oReader ); else if ( _T("w:commentRangeStart") == sName ) pItem = new CCommentRangeStart( oReader ); //else if ( _T("w:customXml") == sName ) // pItem = new CCustomXml( oReader ); else if ( _T("w:customXmlDelRangeEnd") == sName ) pItem = new CCustomXmlDelRangeEnd( oReader ); else if ( _T("w:customXmlDelRangeStart") == sName ) pItem = new CCustomXmlDelRangeStart( oReader ); else if ( _T("w:customXmlInsRangeEnd") == sName ) pItem = new CCustomXmlInsRangeEnd( oReader ); else if ( _T("w:customXmlInsRangeStart") == sName ) pItem = new CCustomXmlInsRangeStart( oReader ); else if ( _T("w:customXmlMoveFromRangeEnd") == sName ) pItem = new CCustomXmlMoveFromRangeEnd( oReader ); else if ( _T("w:customXmlMoveFromRangeStart") == sName ) pItem = new CCustomXmlMoveFromRangeStart( oReader ); else if ( _T("w:customXmlMoveToRangeEnd") == sName ) pItem = new CCustomXmlMoveToRangeEnd( oReader ); else if ( _T("w:customXmlMoveToRangeStart") == sName ) pItem = new CCustomXmlMoveToRangeStart( oReader ); else if ( _T("w:del") == sName ) pItem = new CDel( oReader ); else if ( _T("w:ins") == sName ) pItem = new CIns( oReader ); //else if ( _T("w:moveFrom") == sName ) // pItem = new CMoveFrom( oReader ); else if ( _T("w:moveFromRangeEnd") == sName ) pItem = new CMoveToRangeEnd( oReader ); else if ( _T("w:moveFromRangeStart") == sName ) pItem = new CMoveToRangeStart( oReader ); //else if ( _T("w:moveTo") == sName ) // pItem = new CMoveTo( oReader ); else if ( _T("w:moveToRangeEnd") == sName ) pItem = new CMoveToRangeEnd( oReader ); else if ( _T("w:moveToRangeStart") == sName ) pItem = new CMoveToRangeStart( oReader ); else if ( _T("m:oMath") == sName ) pItem = new COMath( oReader ); else if ( _T("m:oMathPara") == sName ) pItem = new COMathPara( oReader ); else if ( _T("w:p") == sName ) pItem = new CParagraph( oReader ); else if ( _T("w:permEnd") == sName ) pItem = new CPermEnd( oReader ); else if ( _T("w:permStart") == sName ) pItem = new CPermStart( oReader ); else if ( _T("w:proofErr") == sName ) pItem = new CProofErr( oReader ); else if ( _T("w:sdt") == sName ) pItem = new CSdt( oReader ); else if ( _T("w:tbl") == sName ) pItem = new CTbl( oReader ); else if ( _T("w:tcPr") == sName ) { pItem = m_oTableCellProperties = new CTableCellProperties( oReader ); } if ( pItem ) m_arrItems.push_back( pItem ); } }
void CTr::fromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes( oReader ); if ( oReader.IsEmptyNode() ) return; int nParentDepth = oReader.GetDepth(); int nNumCol = 0; while( oReader.ReadNextSiblingNode( nParentDepth ) ) { CWCharWrapper sName = oReader.GetName(); WritingElement *pItem = NULL; if ( _T("w:bookmarkEnd") == sName ) pItem = new CBookmarkEnd( oReader ); else if ( _T("w:bookmarkStart") == sName ) pItem = new CBookmarkStart( oReader ); else if ( _T("w:commentRangeEnd") == sName ) pItem = new CCommentRangeEnd( oReader ); else if ( _T("w:commentRangeStart") == sName ) pItem = new CCommentRangeStart( oReader ); //else if ( _T("w:customXml") == sName ) // pItem = new CCustomXml( oReader ); else if ( _T("w:customXmlDelRangeEnd") == sName ) pItem = new CCustomXmlDelRangeEnd( oReader ); else if ( _T("w:customXmlDelRangeStart") == sName ) pItem = new CCustomXmlDelRangeStart( oReader ); else if ( _T("w:customXmlInsRangeEnd") == sName ) pItem = new CCustomXmlInsRangeEnd( oReader ); else if ( _T("w:customXmlInsRangeStart") == sName ) pItem = new CCustomXmlInsRangeStart( oReader ); else if ( _T("w:customXmlMoveFromRangeEnd") == sName ) pItem = new CCustomXmlMoveFromRangeEnd( oReader ); else if ( _T("w:customXmlMoveFromRangeStart") == sName ) pItem = new CCustomXmlMoveFromRangeStart( oReader ); else if ( _T("w:customXmlMoveToRangeEnd") == sName ) pItem = new CCustomXmlMoveToRangeEnd( oReader ); else if ( _T("w:customXmlMoveToRangeStart") == sName ) pItem = new CCustomXmlMoveToRangeStart( oReader ); else if ( _T("w:del") == sName ) pItem = new CDel( oReader ); else if ( _T("w:ins") == sName ) pItem = new CIns( oReader ); //else if ( _T("w:moveFrom") == sName ) // pItem = new CMoveFrom( oReader ); else if ( _T("w:moveFromRangeEnd") == sName ) pItem = new CMoveToRangeEnd( oReader ); else if ( _T("w:moveFromRangeStart") == sName ) pItem = new CMoveToRangeStart( oReader ); //else if ( _T("w:moveTo") == sName ) // pItem = new CMoveTo( oReader ); else if ( _T("w:moveToRangeEnd") == sName ) pItem = new CMoveToRangeEnd( oReader ); else if ( _T("w:moveToRangeStart") == sName ) pItem = new CMoveToRangeStart( oReader ); else if ( _T("m:oMath") == sName ) pItem = new COMath( oReader ); else if ( _T("m:oMathPara") == sName ) pItem = new COMathPara( oReader ); else if ( _T("w:permEnd") == sName ) pItem = new CPermEnd( oReader ); else if ( _T("w:permStart") == sName ) pItem = new CPermStart( oReader ); else if ( _T("w:proofErr") == sName ) pItem = new CProofErr( oReader ); else if ( _T("w:sdt") == sName ) pItem = new CSdt( oReader ); else if ( _T("w:tblPrEx") == sName ) pItem = new CTblPrEx( oReader ); else if ( _T("w:tc") == sName ) { pItem = new CTc( oReader ); if ( pItem ) { CTc *pCell = (CTc *)pItem; pCell->m_nNumCol = nNumCol; CTableCellProperties *pProps = pCell->GetProperties(); if ( pProps ) { if ( pProps->m_oGridSpan.IsInit() && pProps->m_oGridSpan->m_oVal.IsInit() ) nNumCol += pProps->m_oGridSpan->m_oVal->GetValue(); else nNumCol++; } else nNumCol++; } } else if ( _T("w:trPr") == sName ) { pItem = m_oTableRowProperties = new CTableRowProperties( oReader ); } if ( pItem ) m_arrItems.push_back( pItem ); } m_nCountCell = nNumCol; }
void CMathArgNodes::fromXML(XmlUtils::CXmlLiteReader& oReader) { sNodeName = oReader.GetName(); if(sNodeName == _T("m:deg")) eType = et_m_deg; else if (sNodeName == _T("m:den")) eType = et_m_den; else if (sNodeName == _T("m:e")) eType = et_m_e; else if (sNodeName == _T("m:fName")) eType = et_m_fName; else if (sNodeName == _T("m:lim")) eType = et_m_lim; else if (sNodeName == _T("m:num")) eType = et_m_num; else if (sNodeName == _T("m:oMath")) eType = et_m_oMath; else if (sNodeName == _T("m:sub")) eType = et_m_sub; else if (sNodeName == _T("m:sup")) eType = et_m_sup; else eType = et_Unknown; if ( oReader.IsEmptyNode()) return; int nParentDepth = oReader.GetDepth(); while( oReader.ReadNextSiblingNode( nParentDepth ) ) { CWCharWrapper sName = oReader.GetName(); WritingElement *pItem = NULL; if ( _T("m:acc") == sName ) pItem = new OOX::Logic::CAcc( oReader ); else if ( _T("m:argPr") == sName ) pItem = new OOX::Logic::CArgPr( oReader ); else if ( _T("m:bar") == sName ) pItem = new OOX::Logic::CBar( oReader ); else if ( _T("w:bookmarkEnd") == sName ) pItem = new OOX::Logic::CBookmarkEnd( oReader ); else if ( _T("w:bookmarkStart") == sName ) pItem = new OOX::Logic::CBookmarkStart( oReader ); else if ( _T("m:borderBox") == sName ) pItem = new OOX::Logic::CBorderBox( oReader ); else if ( _T("m:box") == sName ) pItem = new OOX::Logic::CBox( oReader ); else if ( _T("w:commentRangeEnd") == sName ) pItem = new OOX::Logic::CCommentRangeEnd( oReader ); else if ( _T("w:commentRangeStart") == sName ) pItem = new OOX::Logic::CCommentRangeStart( oReader ); else if ( _T("m:ctrlPr") == sName ) pItem = new OOX::Logic::CCtrlPr( oReader ); else if ( _T("w:customXmlDelRangeEnd") == sName ) pItem = new OOX::Logic::CCustomXmlDelRangeEnd( oReader ); else if ( _T("w:customXmlDelRangeStart") == sName ) pItem = new OOX::Logic::CCustomXmlDelRangeStart( oReader ); else if ( _T("w:customXmlInsRangeEnd") == sName ) pItem = new OOX::Logic::CCustomXmlInsRangeEnd( oReader ); else if ( _T("w:customXmlInsRangeStart") == sName ) pItem = new OOX::Logic::CCustomXmlInsRangeStart( oReader ); else if ( _T("w:customXmlMoveFromRangeEnd") == sName ) pItem = new OOX::Logic::CCustomXmlMoveFromRangeEnd( oReader ); else if ( _T("w:customXmlMoveFromRangeStart") == sName ) pItem = new OOX::Logic::CCustomXmlMoveFromRangeStart( oReader ); else if ( _T("w:customXmlMoveToRangeEnd") == sName ) pItem = new OOX::Logic::CCustomXmlMoveToRangeEnd( oReader ); else if ( _T("w:customXmlMoveToRangeStart") == sName ) pItem = new OOX::Logic::CCustomXmlMoveToRangeStart( oReader ); else if ( _T("m:d") == sName ) pItem = new OOX::Logic::CDelimiter( oReader ); else if ( _T("w:del") == sName ) pItem = new CDel( oReader ); else if ( _T("m:eqArr") == sName ) pItem = new OOX::Logic::CEqArr( oReader ); else if ( _T("m:f") == sName ) pItem = new OOX::Logic::CFraction( oReader ); else if ( _T("m:func") == sName ) pItem = new OOX::Logic::CFunc( oReader ); else if ( _T("m:groupChr") == sName ) pItem = new CGroupChr( oReader ); else if ( _T("w:ins") == sName ) pItem = new CIns( oReader ); else if ( _T("m:limLow") == sName ) pItem = new OOX::Logic::CLimLow( oReader ); else if ( _T("m:limUpp") == sName ) pItem = new OOX::Logic::CLimUpp( oReader ); else if ( _T("m:m") == sName ) pItem = new OOX::Logic::CMatrix( oReader ); else if ( _T("w:moveFromRangeEnd") == sName ) pItem = new OOX::Logic::CMoveFromRangeEnd( oReader ); else if ( _T("w:moveFromRangeStart") == sName ) pItem = new OOX::Logic::CMoveFromRangeStart( oReader ); else if ( _T("w:moveToRangeEnd") == sName ) pItem = new OOX::Logic::CMoveToRangeEnd( oReader ); else if ( _T("w:moveToRangeStart") == sName ) pItem = new OOX::Logic::CMoveToRangeStart( oReader ); else if ( _T("m:nary") == sName ) pItem = new OOX::Logic::CNary( oReader ); else if ( _T("m:oMath") == sName ) pItem = new OOX::Logic::COMath( oReader ); else if ( _T("m:oMathPara") == sName ) pItem = new OOX::Logic::COMathPara( oReader ); else if ( _T("w:permEnd") == sName ) pItem = new OOX::Logic::CPermEnd( oReader ); else if ( _T("w:permStart") == sName ) pItem = new OOX::Logic::CPermStart( oReader ); else if ( _T("m:phant") == sName ) pItem = new OOX::Logic::CPhant( oReader ); else if ( _T("w:proofErr") == sName ) pItem = new OOX::Logic::CProofErr( oReader ); else if ( _T("m:r") == sName ) pItem = new OOX::Logic::CMRun( oReader ); else if ( _T("m:rad") == sName ) pItem = new OOX::Logic::CRad( oReader ); else if ( _T("m:sPre") == sName ) pItem = new OOX::Logic::CSPre( oReader ); else if ( _T("m:sSub") == sName ) pItem = new OOX::Logic::CSSub( oReader ); else if ( _T("m:sSubSup") == sName ) pItem = new OOX::Logic::CSSubSup( oReader ); else if ( _T("m:sSup") == sName ) pItem = new OOX::Logic::CSSup( oReader ); if ( pItem ) m_arrItems.Add( pItem ); } }