/* * (c) Copyright Ascensio System SIA 2010-2023 * * This program is a free software product. You can redistribute it and/or * modify it under the terms of the GNU Affero General Public License (AGPL) * version 3 as published by the Free Software Foundation. In accordance with * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect * that Ascensio System SIA expressly excludes the warranty of non-infringement * of any third-party rights. * * This program is distributed WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html * * You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish * street, Riga, Latvia, EU, LV-1050. * * The interactive user interfaces in modified source and object code versions * of the Program must display Appropriate Legal Notices, as required under * Section 5 of the GNU AGPL version 3. * * Pursuant to Section 7(b) of the License you must retain the original Product * logo when distributing the program. Pursuant to Section 7(e) we decline to * grant you any rights under trademark law for use of our trademarks. * * All the Product's GUI elements, including illustrations and icon sets, as * well as technical writing content are licensed under the terms of the * Creative Commons Attribution-ShareAlike 4.0 International. See the License * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * */ #include "Annotations.h" #include "Bdo.h" #include "Paragraph.h" #include "Annotations.h" #include "Run.h" #include "FldSimple.h" #include "Sdt.h" #include "Hyperlink.h" #include "SmartTag.h" #include "Dir.h" #include "../Math/oMathPara.h" #include "../Math/OMath.h" #include "../../Common/SimpleTypes_Word.h" // TO DO: Нехватающие классы: // // namespace OOX { namespace Logic { CCommentRangeEnd::CCommentRangeEnd(OOX::Document *pMain) : WritingElement(pMain) { } CCommentRangeEnd::CCommentRangeEnd(CCommentRangeEnd *pOther) : WritingElement(NULL) { m_oDisplacedByCustomXml = pOther->m_oDisplacedByCustomXml; m_oId = pOther->m_oId; } CCommentRangeEnd::~CCommentRangeEnd() { } void CCommentRangeEnd::fromXML(XmlUtils::CXmlNode& oNode) { XmlMacroReadAttributeBase( oNode, L"w:displacedbyCustomXml", m_oDisplacedByCustomXml ); XmlMacroReadAttributeBase( oNode, L"w:id", m_oId ); } void CCommentRangeEnd::fromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes( oReader ); if ( !oReader.IsEmptyNode() ) oReader.ReadTillEnd(); } std::wstring CCommentRangeEnd::toXML() const { std::wstring sResult = L""; return sResult; } EElementType CCommentRangeEnd::getType() const { return et_w_commentRangeEnd; } void CCommentRangeEnd::ReadAttributes(XmlUtils::CXmlLiteReader& oReader) { WritingElement_ReadAttributes_Start( oReader ) WritingElement_ReadAttributes_Read_if ( oReader, L"w:displacedbyCustomXml", m_oDisplacedByCustomXml ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:id", m_oId ) WritingElement_ReadAttributes_Read_else_if( oReader, L"aml:id", m_oId ) WritingElement_ReadAttributes_End( oReader ) } CCommentRangeStart::CCommentRangeStart(OOX::Document *pMain) : WritingElement(pMain) { } CCommentRangeStart::~CCommentRangeStart() { } void CCommentRangeStart::fromXML(XmlUtils::CXmlNode& oNode) { XmlMacroReadAttributeBase( oNode, L"w:displacedbyCustomXml", m_oDisplacedByCustomXml ); XmlMacroReadAttributeBase( oNode, L"w:id", m_oId ); } void CCommentRangeStart::fromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes( oReader ); if ( !oReader.IsEmptyNode() ) oReader.ReadTillEnd(); } std::wstring CCommentRangeStart::toXML() const { std::wstring sResult = L""; return sResult; } EElementType CCommentRangeStart::getType() const { return et_w_commentRangeStart; } void CCommentRangeStart::ReadAttributes(XmlUtils::CXmlLiteReader& oReader) { WritingElement_ReadAttributes_Start( oReader ) WritingElement_ReadAttributes_Read_if ( oReader, L"w:displacedbyCustomXml", m_oDisplacedByCustomXml ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:id", m_oId ) WritingElement_ReadAttributes_Read_else_if( oReader, L"aml:id", m_oId ) WritingElement_ReadAttributes_End( oReader ) } CCustomXmlDelRangeEnd::CCustomXmlDelRangeEnd(OOX::Document *pMain) : WritingElement(pMain) { } CCustomXmlDelRangeEnd::~CCustomXmlDelRangeEnd() { } void CCustomXmlDelRangeEnd::fromXML(XmlUtils::CXmlNode& oNode) { XmlMacroReadAttributeBase(oNode, L"w:id", m_oId ); } void CCustomXmlDelRangeEnd::fromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes( oReader ); if ( !oReader.IsEmptyNode() ) oReader.ReadTillEnd(); } std::wstring CCustomXmlDelRangeEnd::toXML() const { std::wstring sResult = L""; return sResult; } EElementType CCustomXmlDelRangeEnd::getType() const { return et_w_customXmlDelRangeEnd; } void CCustomXmlDelRangeEnd::ReadAttributes(XmlUtils::CXmlLiteReader& oReader) { // Читаем атрибуты WritingElement_ReadAttributes_Start( oReader ) WritingElement_ReadAttributes_ReadSingle( oReader, L"w:id", m_oId ) WritingElement_ReadAttributes_End( oReader ) } CCustomXmlDelRangeStart::CCustomXmlDelRangeStart(OOX::Document *pMain) : WritingElement(pMain) { } CCustomXmlDelRangeStart::~CCustomXmlDelRangeStart() { } void CCustomXmlDelRangeStart::fromXML(XmlUtils::CXmlNode& oNode) { XmlMacroReadAttributeBase( oNode, L"w:author", m_sAuthor ); XmlMacroReadAttributeBase( oNode, L"w:date", m_oDate ); XmlMacroReadAttributeBase( oNode, L"w:id", m_oID ); XmlMacroReadAttributeBase( oNode, L"oouserid", m_sUserId ); } void CCustomXmlDelRangeStart::fromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes( oReader ); if ( !oReader.IsEmptyNode() ) oReader.ReadTillEnd(); } std::wstring CCustomXmlDelRangeStart::toXML() const { std::wstring sResult = L"ToString(); sResult += L"\" "; } if ( m_oID.IsInit() ) { sResult += L"w:id=\""; sResult += m_oID->ToString(); sResult += L"\" "; } if ( m_sUserId.IsInit() ) { sResult += L"oouserid=\""; sResult += m_sUserId.get2(); sResult += L"\" "; } sResult += L"/>"; return sResult; } EElementType CCustomXmlDelRangeStart::getType() const { return et_w_customXmlDelRangeStart; } void CCustomXmlDelRangeStart::ReadAttributes(XmlUtils::CXmlLiteReader& oReader) { WritingElement_ReadAttributes_Start( oReader ) WritingElement_ReadAttributes_Read_if ( oReader, L"w:author", m_sAuthor ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:date", m_oDate ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:id", m_oID ) WritingElement_ReadAttributes_Read_else_if( oReader, L"oouserid", m_sUserId ) WritingElement_ReadAttributes_End( oReader ) } CCustomXmlInsRangeEnd::CCustomXmlInsRangeEnd(OOX::Document *pMain) : WritingElement(pMain) { } CCustomXmlInsRangeEnd::~CCustomXmlInsRangeEnd() { } void CCustomXmlInsRangeEnd::fromXML(XmlUtils::CXmlNode& oNode) { XmlMacroReadAttributeBase( oNode, L"w:id", m_oId ); } void CCustomXmlInsRangeEnd::fromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes( oReader ); if ( !oReader.IsEmptyNode() ) oReader.ReadTillEnd(); } std::wstring CCustomXmlInsRangeEnd::toXML() const { std::wstring sResult = L""; return sResult; } EElementType CCustomXmlInsRangeEnd::getType() const { return et_w_customXmlInsRangeEnd; } void CCustomXmlInsRangeEnd::ReadAttributes(XmlUtils::CXmlLiteReader& oReader) { // Читаем атрибуты WritingElement_ReadAttributes_Start( oReader ) WritingElement_ReadAttributes_ReadSingle( oReader, L"w:id", m_oId ) WritingElement_ReadAttributes_End( oReader ) } CCustomXmlInsRangeStart::CCustomXmlInsRangeStart(OOX::Document *pMain) : WritingElement(pMain) { } CCustomXmlInsRangeStart::~CCustomXmlInsRangeStart() { } void CCustomXmlInsRangeStart::fromXML(XmlUtils::CXmlNode& oNode) { XmlMacroReadAttributeBase( oNode, L"w:author", m_sAuthor ); XmlMacroReadAttributeBase( oNode, L"w:date", m_oDate ); XmlMacroReadAttributeBase( oNode, L"w:id", m_oID ); XmlMacroReadAttributeBase( oNode, L"oouserid", m_sUserId ); } void CCustomXmlInsRangeStart::fromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes( oReader ); if ( !oReader.IsEmptyNode() ) oReader.ReadTillEnd(); } std::wstring CCustomXmlInsRangeStart::toXML() const { std::wstring sResult = L"GetValue(); sResult += L"\" "; } if ( m_oID.IsInit() ) { sResult += L"w:id=\""; sResult += m_oID->ToString(); sResult += L"\" "; } if ( m_sUserId.IsInit() ) { sResult += L"oouserid=\""; sResult += m_sUserId.get2(); sResult += L"\" "; } sResult += L"/>"; return sResult; } EElementType CCustomXmlInsRangeStart::getType() const { return et_w_customXmlInsRangeStart; } void CCustomXmlInsRangeStart::ReadAttributes(XmlUtils::CXmlLiteReader& oReader) { WritingElement_ReadAttributes_Start( oReader ) WritingElement_ReadAttributes_Read_if ( oReader, L"w:author", m_sAuthor ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:date", m_oDate ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:id", m_oID ) WritingElement_ReadAttributes_Read_else_if( oReader, L"oouserid", m_sUserId ) WritingElement_ReadAttributes_End( oReader ) } CCustomXmlMoveFromRangeEnd::CCustomXmlMoveFromRangeEnd(OOX::Document *pMain) : WritingElement(pMain) { } CCustomXmlMoveFromRangeEnd::~CCustomXmlMoveFromRangeEnd() { } void CCustomXmlMoveFromRangeEnd::fromXML(XmlUtils::CXmlNode& oNode) { XmlMacroReadAttributeBase( oNode, L"w:id", m_oId ); } void CCustomXmlMoveFromRangeEnd::fromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes( oReader ); if ( !oReader.IsEmptyNode() ) oReader.ReadTillEnd(); } std::wstring CCustomXmlMoveFromRangeEnd::toXML() const { std::wstring sResult = L""; return sResult; } EElementType CCustomXmlMoveFromRangeEnd::getType() const { return et_w_customXmlMoveFromRangeEnd; } void CCustomXmlMoveFromRangeEnd::ReadAttributes(XmlUtils::CXmlLiteReader& oReader) { WritingElement_ReadAttributes_Start( oReader ) WritingElement_ReadAttributes_ReadSingle( oReader, L"w:id", m_oId ) WritingElement_ReadAttributes_End( oReader ) } CCustomXmlMoveFromRangeStart::CCustomXmlMoveFromRangeStart(OOX::Document *pMain) : WritingElement(pMain) { } CCustomXmlMoveFromRangeStart::~CCustomXmlMoveFromRangeStart() { } void CCustomXmlMoveFromRangeStart::fromXML(XmlUtils::CXmlNode& oNode) { XmlMacroReadAttributeBase( oNode, L"w:author", m_sAuthor ); XmlMacroReadAttributeBase( oNode, L"w:date", m_oDate ); XmlMacroReadAttributeBase( oNode, L"w:id", m_oID ); XmlMacroReadAttributeBase( oNode, L"oouserid", m_sUserId ); } void CCustomXmlMoveFromRangeStart::fromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes( oReader ); if ( !oReader.IsEmptyNode() ) oReader.ReadTillEnd(); } std::wstring CCustomXmlMoveFromRangeStart::toXML() const { std::wstring sResult = L"ToString(); sResult += L"\" "; } if ( m_oID.IsInit() ) { sResult += L"w:id=\""; sResult += m_oID->ToString(); sResult += L"\" "; } if ( m_sUserId.IsInit() ) { sResult += L"oouserid=\""; sResult += m_sUserId.get2(); sResult += L"\" "; } sResult += L"/>"; return sResult; } EElementType CCustomXmlMoveFromRangeStart::getType() const { return et_w_customXmlMoveFromRangeStart; } void CCustomXmlMoveFromRangeStart::ReadAttributes(XmlUtils::CXmlLiteReader& oReader) { WritingElement_ReadAttributes_Start( oReader ) WritingElement_ReadAttributes_Read_if ( oReader, L"w:author", m_sAuthor ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:date", m_oDate ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:id", m_oID ) WritingElement_ReadAttributes_Read_else_if( oReader, L"oouserid", m_sUserId ) WritingElement_ReadAttributes_End( oReader ) } CCustomXmlMoveToRangeEnd::CCustomXmlMoveToRangeEnd(OOX::Document *pMain) : WritingElement(pMain) { } CCustomXmlMoveToRangeEnd::~CCustomXmlMoveToRangeEnd() { } void CCustomXmlMoveToRangeEnd::fromXML(XmlUtils::CXmlNode& oNode) { XmlMacroReadAttributeBase( oNode, L"w:id", m_oId ); } void CCustomXmlMoveToRangeEnd::fromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes( oReader ); if ( !oReader.IsEmptyNode() ) oReader.ReadTillEnd(); } std::wstring CCustomXmlMoveToRangeEnd::toXML() const { std::wstring sResult = L""; return sResult; } EElementType CCustomXmlMoveToRangeEnd::getType() const { return et_w_customXmlMoveToRangeEnd; } void CCustomXmlMoveToRangeEnd::ReadAttributes(XmlUtils::CXmlLiteReader& oReader) { WritingElement_ReadAttributes_Start( oReader ) WritingElement_ReadAttributes_ReadSingle( oReader, L"w:id", m_oId ) WritingElement_ReadAttributes_End( oReader ) } CCustomXmlMoveToRangeStart::CCustomXmlMoveToRangeStart(OOX::Document *pMain) : WritingElement(pMain) { } CCustomXmlMoveToRangeStart::~CCustomXmlMoveToRangeStart() { } void CCustomXmlMoveToRangeStart::fromXML(XmlUtils::CXmlNode& oNode) { XmlMacroReadAttributeBase( oNode, L"w:author", m_sAuthor ); XmlMacroReadAttributeBase( oNode, L"w:date", m_oDate ); XmlMacroReadAttributeBase( oNode, L"w:id", m_oID ); XmlMacroReadAttributeBase( oNode, L"oouserid", m_sUserId ); } void CCustomXmlMoveToRangeStart::fromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes( oReader ); if ( !oReader.IsEmptyNode() ) oReader.ReadTillEnd(); } std::wstring CCustomXmlMoveToRangeStart::toXML() const { std::wstring sResult = L"ToString(); sResult += L"\" "; } if ( m_oID.IsInit() ) { sResult += L"w:id=\""; sResult += m_oID->ToString(); sResult += L"\" "; } if ( m_sUserId.IsInit() ) { sResult += L"oouserid=\""; sResult += m_sUserId.get2(); sResult += L"\" "; } sResult += L"/>"; return sResult; } EElementType CCustomXmlMoveToRangeStart::getType() const { return et_w_customXmlMoveToRangeStart; } void CCustomXmlMoveToRangeStart::ReadAttributes(XmlUtils::CXmlLiteReader& oReader) { // Читаем атрибуты WritingElement_ReadAttributes_Start( oReader ) WritingElement_ReadAttributes_Read_if ( oReader, L"w:author", m_sAuthor ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:date", m_oDate ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:id", m_oID ) WritingElement_ReadAttributes_Read_else_if( oReader, L"oouserid", m_sUserId ) WritingElement_ReadAttributes_End( oReader ) } CMoveFromRangeEnd::CMoveFromRangeEnd(OOX::Document *pMain) : WritingElement(pMain) { } CMoveFromRangeEnd::~CMoveFromRangeEnd() { } void CMoveFromRangeEnd::fromXML(XmlUtils::CXmlNode& oNode) { XmlMacroReadAttributeBase( oNode, L"w:displacedbyCustomXml", m_oDisplacedByCustomXml ); XmlMacroReadAttributeBase( oNode, L"w:id", m_oId ); } void CMoveFromRangeEnd::fromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes( oReader ); if ( !oReader.IsEmptyNode() ) oReader.ReadTillEnd(); } std::wstring CMoveFromRangeEnd::toXML() const { std::wstring sResult = L""; return sResult; } EElementType CMoveFromRangeEnd::getType() const { return et_w_moveFromRangeEnd; } void CMoveFromRangeEnd::ReadAttributes(XmlUtils::CXmlLiteReader& oReader) { // Читаем атрибуты WritingElement_ReadAttributes_Start( oReader ) WritingElement_ReadAttributes_Read_if ( oReader, L"w:displacedbyCustomXml", m_oDisplacedByCustomXml ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:id", m_oId ) WritingElement_ReadAttributes_End( oReader ) } CMoveFromRangeStart::CMoveFromRangeStart(OOX::Document *pMain) : WritingElement(pMain) { } CMoveFromRangeStart::~CMoveFromRangeStart() { } void CMoveFromRangeStart::fromXML(XmlUtils::CXmlNode& oNode) { XmlMacroReadAttributeBase( oNode, L"w:author", m_sAuthor ); XmlMacroReadAttributeBase( oNode, L"w:colFirst", m_oColFirst ); XmlMacroReadAttributeBase( oNode, L"w:colLast", m_oColLast ); XmlMacroReadAttributeBase( oNode, L"w:date", m_oDate ); XmlMacroReadAttributeBase( oNode, L"w:displacedbyCustomXml", m_oDisplacedByCustomXml ); XmlMacroReadAttributeBase( oNode, L"w:id", m_oId ); XmlMacroReadAttributeBase( oNode, L"w:name", m_sName ); XmlMacroReadAttributeBase( oNode, L"oouserid", m_sUserId ); } void CMoveFromRangeStart::fromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes( oReader ); if ( !oReader.IsEmptyNode() ) oReader.ReadTillEnd(); } std::wstring CMoveFromRangeStart::toXML() const { std::wstring sResult = L""; return sResult; } EElementType CMoveFromRangeStart::getType() const { return et_w_moveFromRangeStart; } void CMoveFromRangeStart::ReadAttributes(XmlUtils::CXmlLiteReader& oReader) { // Читаем атрибуты WritingElement_ReadAttributes_Start( oReader ) WritingElement_ReadAttributes_Read_if ( oReader, L"w:author", m_sAuthor ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:colFirst", m_oColFirst ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:colLast", m_oColLast ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:date", m_oDate ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:displacedbyCustomXml", m_oDisplacedByCustomXml ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:id", m_oId ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:name", m_sName ) WritingElement_ReadAttributes_Read_else_if( oReader, L"oouserid", m_sUserId ) WritingElement_ReadAttributes_End( oReader ) } CMoveToRangeEnd::CMoveToRangeEnd(OOX::Document *pMain) : WritingElement(pMain) { } CMoveToRangeEnd::~CMoveToRangeEnd() { } void CMoveToRangeEnd::fromXML(XmlUtils::CXmlNode& oNode) { XmlMacroReadAttributeBase( oNode, L"w:displacedbyCustomXml", m_oDisplacedByCustomXml ); XmlMacroReadAttributeBase( oNode, L"w:id", m_oId ); } void CMoveToRangeEnd::fromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes( oReader ); if ( !oReader.IsEmptyNode() ) oReader.ReadTillEnd(); } std::wstring CMoveToRangeEnd::toXML() const { std::wstring sResult = L""; return sResult; } EElementType CMoveToRangeEnd::getType() const { return et_w_moveToRangeEnd; } void CMoveToRangeEnd::ReadAttributes(XmlUtils::CXmlLiteReader& oReader) { WritingElement_ReadAttributes_Start( oReader ) WritingElement_ReadAttributes_Read_if ( oReader, L"w:displacedbyCustomXml", m_oDisplacedByCustomXml ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:id", m_oId ) WritingElement_ReadAttributes_End( oReader ) } CMoveToRangeStart::CMoveToRangeStart(OOX::Document *pMain) : WritingElement(pMain) { } CMoveToRangeStart::~CMoveToRangeStart() { } void CMoveToRangeStart::fromXML(XmlUtils::CXmlNode& oNode) { XmlMacroReadAttributeBase( oNode, L"w:author", m_sAuthor ); XmlMacroReadAttributeBase( oNode, L"w:colFirst", m_oColFirst ); XmlMacroReadAttributeBase( oNode, L"w:colLast", m_oColLast ); XmlMacroReadAttributeBase( oNode, L"w:date", m_oDate ); XmlMacroReadAttributeBase( oNode, L"w:displacedbyCustomXml", m_oDisplacedByCustomXml ); XmlMacroReadAttributeBase( oNode, L"w:id", m_oId ); XmlMacroReadAttributeBase( oNode, L"w:name", m_sName ); XmlMacroReadAttributeBase( oNode, L"oouserid", m_sUserId ); } void CMoveToRangeStart::fromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes( oReader ); if ( !oReader.IsEmptyNode() ) oReader.ReadTillEnd(); } std::wstring CMoveToRangeStart::toXML() const { std::wstring sResult = L""; return sResult; } EElementType CMoveToRangeStart::getType() const { return et_w_moveToRangeStart; } void CMoveToRangeStart::ReadAttributes(XmlUtils::CXmlLiteReader& oReader) { WritingElement_ReadAttributes_Start( oReader ) WritingElement_ReadAttributes_Read_if ( oReader, L"w:author", m_sAuthor ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:colFirst", m_oColFirst ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:colLast", m_oColLast ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:date", m_oDate ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:displacedbyCustomXml", m_oDisplacedByCustomXml ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:id", m_oId ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:name", m_sName ) WritingElement_ReadAttributes_Read_else_if( oReader, L"oouserid", m_sUserId ) WritingElement_ReadAttributes_End( oReader ) } CMoveFrom::CMoveFrom(OOX::Document *pMain) : WritingElementWithChilds<>(pMain) { } CMoveFrom::~CMoveFrom() { } void CMoveFrom::fromXML(XmlUtils::CXmlNode& oNode) { //todo } void CMoveFrom::fromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes( oReader ); if ( oReader.IsEmptyNode() ) return; int nParentDepth = oReader.GetDepth(); while( oReader.ReadNextSiblingNode( nParentDepth ) ) { std::wstring sName = oReader.GetName(); WritingElement *pItem = NULL; if ( _T("w:bdo") == sName ) AssignPtrXmlContent(pItem, CBdo, oReader) else if ( _T("w:bookmarkEnd") == sName ) AssignPtrXmlContent(pItem, CBookmarkEnd, oReader) else if ( _T("w:bookmarkStart") == sName ) AssignPtrXmlContent(pItem, CBookmarkStart, oReader) else if ( _T("w:commentRangeEnd") == sName ) AssignPtrXmlContent(pItem, CCommentRangeEnd, oReader) else if ( _T("w:commentRangeStart") == sName ) AssignPtrXmlContent(pItem, CCommentRangeStart, oReader) //else if ( _T("w:customXml") == sName ) // pItem = new CCustomXml( oReader ); else if ( _T("w:customXmlDelRangeEnd") == sName ) AssignPtrXmlContent(pItem, CCustomXmlDelRangeEnd, oReader) else if ( _T("w:customXmlDelRangeStart") == sName ) AssignPtrXmlContent(pItem, CCustomXmlDelRangeStart, oReader) else if ( _T("w:customXmlInsRangeEnd") == sName ) AssignPtrXmlContent(pItem, CCustomXmlInsRangeEnd, oReader) else if ( _T("w:customXmlInsRangeStart") == sName ) AssignPtrXmlContent(pItem, CCustomXmlInsRangeStart, oReader) else if ( _T("w:customXmlMoveFromRangeEnd") == sName ) AssignPtrXmlContent(pItem, CCustomXmlMoveFromRangeEnd, oReader) else if ( _T("w:customXmlMoveFromRangeStart") == sName ) AssignPtrXmlContent(pItem, CCustomXmlMoveFromRangeStart, oReader) else if ( _T("w:customXmlMoveToRangeEnd") == sName ) AssignPtrXmlContent(pItem, CCustomXmlMoveToRangeEnd, oReader) else if ( _T("w:customXmlMoveToRangeStart") == sName ) AssignPtrXmlContent(pItem, CCustomXmlMoveToRangeStart, oReader) else if ( _T("w:del") == sName ) AssignPtrXmlContent(pItem, CDel, oReader) else if ( _T("w:dir") == sName ) AssignPtrXmlContent(pItem, CDir, oReader) else if ( _T("w:fldSimple") == sName ) AssignPtrXmlContent(pItem, CFldSimple, oReader) else if ( _T("w:hyperlink") == sName ) AssignPtrXmlContent(pItem, CHyperlink, oReader) else if ( _T("w:ins") == sName ) AssignPtrXmlContent(pItem, CIns, oReader) else if ( _T("w:moveFrom") == sName ) AssignPtrXmlContent(pItem, CMoveFrom, oReader) else if ( _T("w:moveFromRangeEnd") == sName ) AssignPtrXmlContent(pItem, CMoveFromRangeEnd, oReader) else if ( _T("w:moveFromRangeStart") == sName ) AssignPtrXmlContent(pItem, CMoveFromRangeStart, oReader) else if ( _T("w:moveTo") == sName ) AssignPtrXmlContent(pItem, CMoveTo, oReader) else if ( _T("w:moveToRangeEnd") == sName ) AssignPtrXmlContent(pItem, CMoveToRangeEnd, oReader) else if ( _T("w:moveToRangeStart") == sName ) AssignPtrXmlContent(pItem, CMoveToRangeStart, oReader) else if ( _T("m:oMath") == sName ) AssignPtrXmlContent(pItem, COMath, oReader) else if ( _T("m:oMathPara") == sName ) AssignPtrXmlContent(pItem, COMathPara, oReader) else if ( _T("w:permEnd") == sName ) AssignPtrXmlContent(pItem, CPermEnd, oReader) else if ( _T("w:permStart") == sName ) AssignPtrXmlContent(pItem, CPermStart, oReader) else if ( _T("w:proofErr") == sName ) AssignPtrXmlContent(pItem, CProofErr, oReader) else if ( _T("w:r") == sName ) AssignPtrXmlContent(pItem, CRun, oReader) else if ( _T("w:sdt") == sName ) AssignPtrXmlContent(pItem, CSdt, oReader) else if ( _T("w:smartTag") == sName ) AssignPtrXmlContent(pItem, CSmartTag, oReader) //else if ( _T("w:subDoc") == sName ) // pItem = new CSubDoc( oReader ); if ( pItem ) m_arrItems.push_back( pItem ); } } std::wstring CMoveFrom::toXML() const { //todo std::wstring sResult = _T(""); return sResult; } EElementType CMoveFrom::getType() const { return et_w_moveFrom; } void CMoveFrom::ReadAttributes(XmlUtils::CXmlLiteReader& oReader) { WritingElement_ReadAttributes_Start( oReader ) WritingElement_ReadAttributes_Read_if( oReader, L"w:author", m_sAuthor ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:date", m_oDate ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:id", m_oId ) WritingElement_ReadAttributes_Read_else_if( oReader, L"oouserid", m_sUserId ) WritingElement_ReadAttributes_End( oReader ) } CMoveTo::CMoveTo(OOX::Document *pMain) : WritingElementWithChilds<>(pMain) { } CMoveTo::~CMoveTo() { } void CMoveTo::fromXML(XmlUtils::CXmlNode& oNode) { //todo } void CMoveTo::fromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes( oReader ); if ( oReader.IsEmptyNode() ) return; int nParentDepth = oReader.GetDepth(); while( oReader.ReadNextSiblingNode( nParentDepth ) ) { std::wstring sName = oReader.GetName(); WritingElement *pItem = NULL; if ( _T("w:bdo") == sName ) AssignPtrXmlContent(pItem, CBdo, oReader) else if ( _T("w:bookmarkEnd") == sName ) AssignPtrXmlContent(pItem, CBookmarkEnd, oReader) else if ( _T("w:bookmarkStart") == sName ) AssignPtrXmlContent(pItem, CBookmarkStart, oReader) else if ( _T("w:commentRangeEnd") == sName ) AssignPtrXmlContent(pItem, CCommentRangeEnd, oReader) else if ( _T("w:commentRangeStart") == sName ) AssignPtrXmlContent(pItem, CCommentRangeStart, oReader) //else if ( _T("w:customXml") == sName ) // pItem = new CCustomXml( oReader ); else if ( _T("w:customXmlDelRangeEnd") == sName ) AssignPtrXmlContent(pItem, CCustomXmlDelRangeEnd, oReader) else if ( _T("w:customXmlDelRangeStart") == sName ) AssignPtrXmlContent(pItem, CCustomXmlDelRangeStart, oReader) else if ( _T("w:customXmlInsRangeEnd") == sName ) AssignPtrXmlContent(pItem, CCustomXmlInsRangeEnd, oReader) else if ( _T("w:customXmlInsRangeStart") == sName ) AssignPtrXmlContent(pItem, CCustomXmlInsRangeStart, oReader) else if ( _T("w:customXmlMoveFromRangeEnd") == sName ) AssignPtrXmlContent(pItem, CCustomXmlMoveFromRangeEnd, oReader) else if ( _T("w:customXmlMoveFromRangeStart") == sName ) AssignPtrXmlContent(pItem, CCustomXmlMoveFromRangeStart, oReader) else if ( _T("w:customXmlMoveToRangeEnd") == sName ) AssignPtrXmlContent(pItem, CCustomXmlMoveToRangeEnd, oReader) else if ( _T("w:customXmlMoveToRangeStart") == sName ) AssignPtrXmlContent(pItem, CCustomXmlMoveToRangeStart, oReader) else if ( _T("w:del") == sName ) AssignPtrXmlContent(pItem, CDel, oReader) else if ( _T("w:dir") == sName ) AssignPtrXmlContent(pItem, CDir, oReader) else if ( _T("w:fldSimple") == sName ) AssignPtrXmlContent(pItem, CFldSimple, oReader) else if ( _T("w:hyperlink") == sName ) AssignPtrXmlContent(pItem, CHyperlink, oReader) else if ( _T("w:ins") == sName ) AssignPtrXmlContent(pItem, CIns, oReader) else if ( _T("w:moveFrom") == sName ) AssignPtrXmlContent(pItem, CMoveFrom, oReader) else if ( _T("w:moveFromRangeEnd") == sName ) AssignPtrXmlContent(pItem, CMoveFromRangeEnd, oReader) else if ( _T("w:moveFromRangeStart") == sName ) AssignPtrXmlContent(pItem, CMoveFromRangeStart, oReader) else if ( _T("w:moveTo") == sName ) AssignPtrXmlContent(pItem, CMoveTo, oReader) else if ( _T("w:moveToRangeEnd") == sName ) AssignPtrXmlContent(pItem, CMoveToRangeEnd, oReader) else if ( _T("w:moveToRangeStart") == sName ) AssignPtrXmlContent(pItem, CMoveToRangeStart, oReader) else if ( _T("m:oMath") == sName ) AssignPtrXmlContent(pItem, COMath, oReader) else if ( _T("m:oMathPara") == sName ) AssignPtrXmlContent(pItem, COMathPara, oReader) else if ( _T("w:permEnd") == sName ) AssignPtrXmlContent(pItem, CPermEnd, oReader) else if ( _T("w:permStart") == sName ) AssignPtrXmlContent(pItem, CPermStart, oReader) else if ( _T("w:proofErr") == sName ) AssignPtrXmlContent(pItem, CProofErr, oReader) else if ( _T("w:r") == sName ) AssignPtrXmlContent(pItem, CRun, oReader) else if ( _T("w:sdt") == sName ) AssignPtrXmlContent(pItem, CSdt, oReader) else if ( _T("w:smartTag") == sName ) AssignPtrXmlContent(pItem, CSmartTag, oReader) //else if ( _T("w:subDoc") == sName ) // pItem = new CSubDoc( oReader ); if ( pItem ) m_arrItems.push_back( pItem ); } } std::wstring CMoveTo::toXML() const { //todo std::wstring sResult = _T(""); return sResult; } EElementType CMoveTo::getType() const { return et_w_moveTo; } void CMoveTo::ReadAttributes(XmlUtils::CXmlLiteReader& oReader) { WritingElement_ReadAttributes_Start( oReader ) WritingElement_ReadAttributes_Read_if( oReader, L"w:author", m_sAuthor ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:date", m_oDate ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:id", m_oId ) WritingElement_ReadAttributes_Read_else_if( oReader, L"oouserid", m_sUserId ) WritingElement_ReadAttributes_End( oReader ) } CBookmarkEnd::CBookmarkEnd(OOX::Document *pMain) : WritingElement(pMain) { } CBookmarkEnd::CBookmarkEnd(CBookmarkEnd* pOther) { m_oDisplacedByCustomXml = pOther->m_oDisplacedByCustomXml; m_oId = pOther->m_oId; } CBookmarkEnd::~CBookmarkEnd() { } void CBookmarkEnd::fromXML(XmlUtils::CXmlNode& oNode) { XmlMacroReadAttributeBase(oNode, L"w:displacedbyCustomXml", m_oDisplacedByCustomXml ); XmlMacroReadAttributeBase(oNode, L"w:id", m_oId ); } void CBookmarkEnd::fromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes( oReader ); if ( !oReader.IsEmptyNode() ) oReader.ReadTillEnd(); } std::wstring CBookmarkEnd::toXML() const { std::wstring sResult = L""; return sResult; } EElementType CBookmarkEnd::getType() const { return et_w_bookmarkEnd; } void CBookmarkEnd::ReadAttributes(XmlUtils::CXmlLiteReader& oReader) { WritingElement_ReadAttributes_Start( oReader ) WritingElement_ReadAttributes_Read_if ( oReader, L"w:displacedbyCustomXml", m_oDisplacedByCustomXml ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:id", m_oId ) WritingElement_ReadAttributes_Read_else_if( oReader, L"aml:id", m_oId ) WritingElement_ReadAttributes_End( oReader ) } CBookmarkStart::CBookmarkStart(OOX::Document *pMain) : WritingElement(pMain) { } CBookmarkStart::CBookmarkStart(CBookmarkStart *pOther) { m_oColFirst = pOther->m_oColFirst; m_oColLast = pOther->m_oColLast; m_oDisplacedByCustomXml = pOther->m_oDisplacedByCustomXml; m_oId = pOther->m_oId; m_sName = pOther->m_sName; } CBookmarkStart::~CBookmarkStart() { } void CBookmarkStart::fromXML(XmlUtils::CXmlNode& oNode) { XmlMacroReadAttributeBase(oNode, L"w:colFirst", m_oColFirst ); XmlMacroReadAttributeBase(oNode, L"w:colLast", m_oColLast ); XmlMacroReadAttributeBase(oNode, L"w:displacedbyCustomXml", m_oDisplacedByCustomXml ); XmlMacroReadAttributeBase(oNode, L"w:id", m_oId ); XmlMacroReadAttributeBase(oNode, L"w:name", m_sName ); } void CBookmarkStart::fromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes( oReader ); if ( !oReader.IsEmptyNode() ) oReader.ReadTillEnd(); } std::wstring CBookmarkStart::toXML() const { std::wstring sResult = L""; return sResult; } EElementType CBookmarkStart::getType() const { return et_w_bookmarkStart; } void CBookmarkStart::ReadAttributes(XmlUtils::CXmlLiteReader& oReader) { WritingElement_ReadAttributes_Start( oReader ) WritingElement_ReadAttributes_Read_if ( oReader, L"w:colFirst", m_oColFirst ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:colLast", m_oColLast ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:displacedbyCustomXml", m_oDisplacedByCustomXml ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:id", m_oId ) WritingElement_ReadAttributes_Read_else_if( oReader, L"aml:id", m_oId ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:name", m_sName ) WritingElement_ReadAttributes_End( oReader ) } CPermEnd::CPermEnd(OOX::Document *pMain) : WritingElement(pMain) { } CPermEnd::~CPermEnd() { } void CPermEnd::fromXML(XmlUtils::CXmlNode& oNode) { XmlMacroReadAttributeBase(oNode, L"w:displacedbyCustomXml", m_oDisplacedByCustomXml ); XmlMacroReadAttributeBase(oNode, L"w:id", m_sId ); } void CPermEnd::fromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes( oReader ); if ( !oReader.IsEmptyNode() ) oReader.ReadTillEnd(); } std::wstring CPermEnd::toXML() const { std::wstring sResult = L""; return sResult; } EElementType CPermEnd::getType() const { return et_w_permEnd; } void CPermEnd::ReadAttributes(XmlUtils::CXmlLiteReader& oReader) { // Читаем атрибуты WritingElement_ReadAttributes_Start( oReader ) WritingElement_ReadAttributes_Read_if ( oReader, L"w:displacedbyCustomXml", m_oDisplacedByCustomXml ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:id", m_sId ) WritingElement_ReadAttributes_End( oReader ) } CPermStart::CPermStart(OOX::Document *pMain) : WritingElement(pMain) { } CPermStart::~CPermStart() { } void CPermStart::fromXML(XmlUtils::CXmlNode& oNode) { XmlMacroReadAttributeBase(oNode, L"w:colFirst", m_oColFirst ); XmlMacroReadAttributeBase(oNode, L"w:colLast", m_oColLast ); XmlMacroReadAttributeBase(oNode, L"w:displacedbyCustomXml", m_oDisplacedByCustomXml ); XmlMacroReadAttributeBase(oNode, L"w:ed", m_sEd ); XmlMacroReadAttributeBase(oNode, L"w:edGrp", m_oEdGrp ); XmlMacroReadAttributeBase(oNode, L"w:id", m_sId ); } void CPermStart::fromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes( oReader ); if ( !oReader.IsEmptyNode() ) oReader.ReadTillEnd(); } std::wstring CPermStart::toXML() const { std::wstring sResult = L""; return sResult; } EElementType CPermStart::getType() const { return et_w_permStart; } void CPermStart::ReadAttributes(XmlUtils::CXmlLiteReader& oReader) { WritingElement_ReadAttributes_Start( oReader ) WritingElement_ReadAttributes_Read_if ( oReader, L"w:colFirst", m_oColFirst ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:colLast", m_oColLast ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:displacedbyCustomXml", m_oDisplacedByCustomXml ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:ed", m_sEd ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:edGrp", m_oEdGrp ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:id", m_sId ) WritingElement_ReadAttributes_End( oReader ) } CProofErr::CProofErr(OOX::Document *pMain) : WritingElement(pMain) { } CProofErr::~CProofErr() { } void CProofErr::fromXML(XmlUtils::CXmlNode& oNode) { XmlMacroReadAttributeBase(oNode, L"w:type", m_oType ); } void CProofErr::fromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes( oReader ); if ( !oReader.IsEmptyNode() ) oReader.ReadTillEnd(); } std::wstring CProofErr::toXML() const { std::wstring sResult = L"ToString(); sResult += L"\" "; } sResult += L"/>"; return sResult; } EElementType CProofErr::getType() const { return et_w_proofErr; } void CProofErr::ReadAttributes(XmlUtils::CXmlLiteReader& oReader) { // Читаем атрибуты WritingElement_ReadAttributes_Start( oReader ) WritingElement_ReadAttributes_ReadSingle( oReader, L"w:type", m_oType ) WritingElement_ReadAttributes_End( oReader ) } CIns::CIns(OOX::Document *pMain) : WritingElementWithChilds<>(pMain) { } CIns::~CIns() { } void CIns::fromXML(XmlUtils::CXmlNode& oNode) { //todo } void CIns::fromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes( oReader ); if ( oReader.IsEmptyNode() ) return; int nParentDepth = oReader.GetDepth(); while( oReader.ReadNextSiblingNode( nParentDepth ) ) { std::wstring sName = oReader.GetName(); WritingElement *pItem = NULL; if ( _T("w:bdo") == sName ) AssignPtrXmlContent(pItem, CBdo, oReader) else if ( _T("w:bookmarkEnd") == sName ) AssignPtrXmlContent(pItem, CBookmarkEnd, oReader) else if ( _T("w:bookmarkStart") == sName ) AssignPtrXmlContent(pItem, CBookmarkStart, oReader) else if ( _T("w:commentRangeEnd") == sName ) AssignPtrXmlContent(pItem, CCommentRangeEnd, oReader) else if ( _T("w:commentRangeStart") == sName ) AssignPtrXmlContent(pItem, CCommentRangeStart, oReader) //else if ( _T("w:customXml") == sName ) // pItem = new CCustomXml( oReader ); else if ( _T("w:customXmlDelRangeEnd") == sName ) AssignPtrXmlContent(pItem, CCustomXmlDelRangeEnd, oReader) else if ( _T("w:customXmlDelRangeStart") == sName ) AssignPtrXmlContent(pItem, CCustomXmlDelRangeStart, oReader) else if ( _T("w:customXmlInsRangeEnd") == sName ) AssignPtrXmlContent(pItem, CCustomXmlInsRangeEnd, oReader) else if ( _T("w:customXmlInsRangeStart") == sName ) AssignPtrXmlContent(pItem, CCustomXmlInsRangeStart, oReader) else if ( _T("w:customXmlMoveFromRangeEnd") == sName ) AssignPtrXmlContent(pItem, CCustomXmlMoveFromRangeEnd, oReader) else if ( _T("w:customXmlMoveFromRangeStart") == sName ) AssignPtrXmlContent(pItem, CCustomXmlMoveFromRangeStart, oReader) else if ( _T("w:customXmlMoveToRangeEnd") == sName ) AssignPtrXmlContent(pItem, CCustomXmlMoveToRangeEnd, oReader) else if ( _T("w:customXmlMoveToRangeStart") == sName ) AssignPtrXmlContent(pItem, CCustomXmlMoveToRangeStart, oReader) else if ( _T("w:del") == sName ) AssignPtrXmlContent(pItem, CDel, oReader) else if ( _T("w:dir") == sName ) AssignPtrXmlContent(pItem, CDir, oReader) else if ( _T("w:fldSimple") == sName ) AssignPtrXmlContent(pItem, CFldSimple, oReader) else if ( _T("w:hyperlink") == sName ) AssignPtrXmlContent(pItem, CHyperlink, oReader) else if ( _T("w:ins") == sName ) AssignPtrXmlContent(pItem, CIns, oReader) else if ( _T("w:moveFrom") == sName ) AssignPtrXmlContent(pItem, CMoveFrom, oReader) else if ( _T("w:moveFromRangeEnd") == sName ) AssignPtrXmlContent(pItem, CMoveFromRangeEnd, oReader) else if ( _T("w:moveFromRangeStart") == sName ) AssignPtrXmlContent(pItem, CMoveFromRangeStart, oReader) else if ( _T("w:moveTo") == sName ) AssignPtrXmlContent(pItem, CMoveTo, oReader) else if ( _T("w:moveToRangeEnd") == sName ) AssignPtrXmlContent(pItem, CMoveToRangeEnd, oReader) else if ( _T("w:moveToRangeStart") == sName ) AssignPtrXmlContent(pItem, CMoveToRangeStart, oReader) else if ( _T("m:oMath") == sName ) AssignPtrXmlContent(pItem, COMath, oReader) else if ( _T("m:oMathPara") == sName ) AssignPtrXmlContent(pItem, COMathPara, oReader) else if ( _T("m:r") == sName ) AssignPtrXmlContent(pItem, CMRun, oReader) else if ( _T("w:permEnd") == sName ) AssignPtrXmlContent(pItem, CPermEnd, oReader) else if ( _T("w:permStart") == sName ) AssignPtrXmlContent(pItem, CPermStart, oReader) else if ( _T("w:proofErr") == sName ) AssignPtrXmlContent(pItem, CProofErr, oReader) else if ( _T("w:r") == sName ) AssignPtrXmlContent(pItem, CRun, oReader) else if ( _T("w:sdt") == sName ) AssignPtrXmlContent(pItem, CSdt, oReader) else if ( _T("w:smartTag") == sName ) AssignPtrXmlContent(pItem, CSmartTag, oReader) else if (_T("w:p") == sName) AssignPtrXmlContent(pItem, CParagraph, oReader) //else if ( _T("w:subDoc") == sName ) // pItem = new CSubDoc( oReader ); if ( pItem ) m_arrItems.push_back( pItem ); } } std::wstring CIns::toXML() const { //todo std::wstring sResult = _T(""); return sResult; } EElementType CIns::getType() const { return et_w_ins; } void CIns::ReadAttributes(XmlUtils::CXmlLiteReader& oReader) { // Читаем атрибуты WritingElement_ReadAttributes_Start( oReader ) WritingElement_ReadAttributes_Read_if( oReader, L"w:author", m_sAuthor ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:date", m_oDate ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:id", m_oId ) WritingElement_ReadAttributes_Read_else_if( oReader, L"oouserid", m_sUserId ) WritingElement_ReadAttributes_End( oReader ) } CDel::CDel(OOX::Document *pMain) : WritingElementWithChilds<>(pMain) { } CDel::~CDel() { } void CDel::fromXML(XmlUtils::CXmlNode& oNode) { //todo } void CDel::fromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes( oReader ); if ( oReader.IsEmptyNode() ) return; int nParentDepth = oReader.GetDepth(); while( oReader.ReadNextSiblingNode( nParentDepth ) ) { std::wstring sName = oReader.GetName(); WritingElement *pItem = NULL; if ( _T("w:bdo") == sName ) AssignPtrXmlContent(pItem, CBdo, oReader) else if ( _T("w:bookmarkEnd") == sName ) AssignPtrXmlContent(pItem, CBookmarkEnd, oReader) else if ( _T("w:bookmarkStart") == sName ) AssignPtrXmlContent(pItem, CBookmarkStart, oReader) else if ( _T("w:commentRangeEnd") == sName ) AssignPtrXmlContent(pItem, CCommentRangeEnd, oReader) else if ( _T("w:commentRangeStart") == sName ) AssignPtrXmlContent(pItem, CCommentRangeStart, oReader) //else if ( _T("w:customXml") == sName ) // pItem = new CCustomXml( oReader ); else if ( _T("w:customXmlDelRangeEnd") == sName ) AssignPtrXmlContent(pItem, CCustomXmlDelRangeEnd, oReader) else if ( _T("w:customXmlDelRangeStart") == sName ) AssignPtrXmlContent(pItem, CCustomXmlDelRangeStart, oReader) else if ( _T("w:customXmlInsRangeEnd") == sName ) AssignPtrXmlContent(pItem, CCustomXmlInsRangeEnd, oReader) else if ( _T("w:customXmlInsRangeStart") == sName ) AssignPtrXmlContent(pItem, CCustomXmlInsRangeStart, oReader) else if ( _T("w:customXmlMoveFromRangeEnd") == sName ) AssignPtrXmlContent(pItem, CCustomXmlMoveFromRangeEnd, oReader) else if ( _T("w:customXmlMoveFromRangeStart") == sName ) AssignPtrXmlContent(pItem, CCustomXmlMoveFromRangeStart, oReader) else if ( _T("w:customXmlMoveToRangeEnd") == sName ) AssignPtrXmlContent(pItem, CCustomXmlMoveToRangeEnd, oReader) else if ( _T("w:customXmlMoveToRangeStart") == sName ) AssignPtrXmlContent(pItem, CCustomXmlMoveToRangeStart, oReader) else if ( _T("w:del") == sName ) AssignPtrXmlContent(pItem, CDel, oReader) else if ( _T("w:dir") == sName ) AssignPtrXmlContent(pItem, CDir, oReader) else if ( _T("w:fldSimple") == sName ) AssignPtrXmlContent(pItem, CFldSimple, oReader) else if ( _T("w:hyperlink") == sName ) AssignPtrXmlContent(pItem, CHyperlink, oReader) else if ( _T("w:ins") == sName ) AssignPtrXmlContent(pItem, CIns, oReader) else if ( _T("w:moveFrom") == sName ) AssignPtrXmlContent(pItem, CMoveFrom, oReader) else if ( _T("w:moveFromRangeEnd") == sName ) AssignPtrXmlContent(pItem, CMoveFromRangeEnd, oReader) else if ( _T("w:moveFromRangeStart") == sName ) AssignPtrXmlContent(pItem, CMoveFromRangeStart, oReader) else if ( _T("w:moveTo") == sName ) AssignPtrXmlContent(pItem, CMoveTo, oReader) else if ( _T("w:moveToRangeEnd") == sName ) AssignPtrXmlContent(pItem, CMoveToRangeEnd, oReader) else if ( _T("w:moveToRangeStart") == sName ) AssignPtrXmlContent(pItem, CMoveToRangeStart, oReader) else if ( _T("m:oMath") == sName ) AssignPtrXmlContent(pItem, COMath, oReader) else if ( _T("m:oMathPara") == sName ) AssignPtrXmlContent(pItem, COMathPara, oReader) else if ( _T("m:r") == sName ) AssignPtrXmlContent(pItem, CMRun, oReader) else if ( _T("w:permEnd") == sName ) AssignPtrXmlContent(pItem, CPermEnd, oReader) else if ( _T("w:permStart") == sName ) AssignPtrXmlContent(pItem, CPermStart, oReader) else if ( _T("w:proofErr") == sName ) AssignPtrXmlContent(pItem, CProofErr, oReader) else if ( _T("w:r") == sName ) AssignPtrXmlContent(pItem, CRun, oReader) else if ( _T("w:sdt") == sName ) AssignPtrXmlContent(pItem, CSdt, oReader) else if ( _T("w:smartTag") == sName ) AssignPtrXmlContent(pItem, CSmartTag, oReader) //else if ( _T("w:subDoc") == sName ) // pItem = new CSubDoc( oReader ); if ( pItem ) m_arrItems.push_back( pItem ); } } std::wstring CDel::toXML() const { //todo std::wstring sResult = _T(""); return sResult; } EElementType CDel::getType() const { return et_w_del; } void CDel::ReadAttributes(XmlUtils::CXmlLiteReader& oReader) { // Читаем атрибуты WritingElement_ReadAttributes_Start( oReader ) WritingElement_ReadAttributes_Read_if( oReader, L"w:author", m_sAuthor ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:date", m_oDate ) WritingElement_ReadAttributes_Read_else_if( oReader, L"w:id", m_oId ) WritingElement_ReadAttributes_Read_else_if( oReader, L"oouserid", m_sUserId ) WritingElement_ReadAttributes_End( oReader ) } } // namespace Logic } // namespace OOX