mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-04-07 13:55:33 +08:00
fix bug #59692
This commit is contained in:
@ -53,14 +53,14 @@ namespace OOX
|
|||||||
int nCurDepth = oReader.GetDepth();
|
int nCurDepth = oReader.GetDepth();
|
||||||
while (oReader.ReadNextSiblingNode(nCurDepth))
|
while (oReader.ReadNextSiblingNode(nCurDepth))
|
||||||
{
|
{
|
||||||
std::wstring sName = oReader.GetName();
|
std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName());
|
||||||
|
|
||||||
if (L"w:drawing" == sName)
|
if (L"drawing" == sName)
|
||||||
{
|
{
|
||||||
m_oDrawing = new OOX::Logic::CDrawing(m_pMainDocument);
|
m_oDrawing = new OOX::Logic::CDrawing(m_pMainDocument);
|
||||||
m_oDrawing->fromXML(oReader);
|
m_oDrawing->fromXML(oReader);
|
||||||
}
|
}
|
||||||
else if (L"v:background" == sName)
|
else if (L"background" == sName)
|
||||||
{
|
{
|
||||||
m_oBackground = OOX::Vml::CBackground(m_pMainDocument);
|
m_oBackground = OOX::Vml::CBackground(m_pMainDocument);
|
||||||
m_oBackground->fromXML(oReader);
|
m_oBackground->fromXML(oReader);
|
||||||
@ -133,24 +133,24 @@ namespace OOX
|
|||||||
int nCurDepth = oReader.GetDepth();
|
int nCurDepth = oReader.GetDepth();
|
||||||
while (oReader.ReadNextSiblingNode(nCurDepth))
|
while (oReader.ReadNextSiblingNode(nCurDepth))
|
||||||
{
|
{
|
||||||
std::wstring sName = oReader.GetName();
|
std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName());
|
||||||
|
|
||||||
if (L"w:background" == sName)
|
if (L"background" == sName)
|
||||||
{
|
{
|
||||||
ReadAttributes(oReader);
|
ReadAttributes(oReader);
|
||||||
}
|
}
|
||||||
else if (L"v:background" == sName)
|
else if (L"background" == sName)
|
||||||
m_oBackground = oReader;
|
m_oBackground = oReader;
|
||||||
else if (L"w:binData" == sName)
|
else if (L"binData" == sName)
|
||||||
m_oBinData = oReader;
|
m_oBinData = oReader;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void CBgPict::ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
void CBgPict::ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||||
{
|
{
|
||||||
WritingElement_ReadAttributes_Start(oReader)
|
WritingElement_ReadAttributes_Start_No_NS(oReader)
|
||||||
WritingElement_ReadAttributes_Read_if(oReader, L"w:bgcolor", m_oColor)
|
WritingElement_ReadAttributes_Read_if(oReader, L"bgcolor", m_oColor)
|
||||||
WritingElement_ReadAttributes_Read_else_if(oReader, L"w:background", m_oBackgroundType)
|
WritingElement_ReadAttributes_Read_else_if(oReader, L"background", m_oBackgroundType)
|
||||||
WritingElement_ReadAttributes_End(oReader)
|
WritingElement_ReadAttributes_End_No_NS(oReader)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//------------------------------------------------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------------------------------------------------
|
||||||
@ -234,69 +234,69 @@ namespace OOX
|
|||||||
|
|
||||||
while ( oReader.ReadNextSiblingNode( Depth ) )
|
while ( oReader.ReadNextSiblingNode( Depth ) )
|
||||||
{
|
{
|
||||||
std::wstring sName = oReader.GetName();
|
std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName());
|
||||||
|
|
||||||
WritingElement *pItem = NULL;
|
WritingElement *pItem = NULL;
|
||||||
|
|
||||||
if (L"w:altChunk" == sName )
|
if (L"altChunk" == sName )
|
||||||
pItem = new Logic::CAltChunk( document );
|
pItem = new Logic::CAltChunk( document );
|
||||||
else if (L"w:bookmarkEnd" == sName )
|
else if (L"bookmarkEnd" == sName )
|
||||||
pItem = new Logic::CBookmarkEnd( document );
|
pItem = new Logic::CBookmarkEnd( document );
|
||||||
else if (L"w:bookmarkStart" == sName )
|
else if (L"bookmarkStart" == sName )
|
||||||
pItem = new Logic::CBookmarkStart( document );
|
pItem = new Logic::CBookmarkStart( document );
|
||||||
else if (L"w:commentRangeEnd" == sName )
|
else if (L"commentRangeEnd" == sName )
|
||||||
pItem = new Logic::CCommentRangeEnd( document );
|
pItem = new Logic::CCommentRangeEnd( document );
|
||||||
else if (L"w:commentRangeStart" == sName )
|
else if (L"commentRangeStart" == sName )
|
||||||
pItem = new Logic::CCommentRangeStart( document );
|
pItem = new Logic::CCommentRangeStart( document );
|
||||||
//else if (L"w:customXml" == sName )
|
//else if (L"customXml" == sName )
|
||||||
// pItem = new Logic::CCustomXml( document );
|
// pItem = new Logic::CCustomXml( document );
|
||||||
else if (L"w:customXmlDelRangeEnd" == sName )
|
else if (L"customXmlDelRangeEnd" == sName )
|
||||||
pItem = new Logic::CCustomXmlDelRangeEnd( document );
|
pItem = new Logic::CCustomXmlDelRangeEnd( document );
|
||||||
else if (L"w:customXmlDelRangeStart" == sName )
|
else if (L"customXmlDelRangeStart" == sName )
|
||||||
pItem = new Logic::CCustomXmlDelRangeStart( document );
|
pItem = new Logic::CCustomXmlDelRangeStart( document );
|
||||||
else if (L"w:customXmlInsRangeEnd" == sName )
|
else if (L"customXmlInsRangeEnd" == sName )
|
||||||
pItem = new Logic::CCustomXmlInsRangeEnd( document );
|
pItem = new Logic::CCustomXmlInsRangeEnd( document );
|
||||||
else if (L"w:customXmlInsRangeStart" == sName )
|
else if (L"customXmlInsRangeStart" == sName )
|
||||||
pItem = new Logic::CCustomXmlInsRangeStart( document );
|
pItem = new Logic::CCustomXmlInsRangeStart( document );
|
||||||
else if (L"w:customXmlMoveFromRangeEnd" == sName )
|
else if (L"customXmlMoveFromRangeEnd" == sName )
|
||||||
pItem = new Logic::CCustomXmlMoveFromRangeEnd( document );
|
pItem = new Logic::CCustomXmlMoveFromRangeEnd( document );
|
||||||
else if (L"w:customXmlMoveFromRangeStart" == sName )
|
else if (L"customXmlMoveFromRangeStart" == sName )
|
||||||
pItem = new Logic::CCustomXmlMoveFromRangeStart( document );
|
pItem = new Logic::CCustomXmlMoveFromRangeStart( document );
|
||||||
else if (L"w:customXmlMoveToRangeEnd" == sName )
|
else if (L"customXmlMoveToRangeEnd" == sName )
|
||||||
pItem = new Logic::CCustomXmlMoveToRangeEnd( document );
|
pItem = new Logic::CCustomXmlMoveToRangeEnd( document );
|
||||||
else if (L"w:customXmlMoveToRangeStart" == sName )
|
else if (L"customXmlMoveToRangeStart" == sName )
|
||||||
pItem = new Logic::CCustomXmlMoveToRangeStart( document );
|
pItem = new Logic::CCustomXmlMoveToRangeStart( document );
|
||||||
else if (L"w:del" == sName )
|
else if (L"del" == sName )
|
||||||
pItem = new Logic::CDel( document );
|
pItem = new Logic::CDel( document );
|
||||||
else if (L"w:ins" == sName )
|
else if (L"ins" == sName )
|
||||||
pItem = new Logic::CIns( document );
|
pItem = new Logic::CIns( document );
|
||||||
else if (L"w:moveFrom" == sName )
|
else if (L"moveFrom" == sName )
|
||||||
pItem = new Logic::CMoveFrom( document );
|
pItem = new Logic::CMoveFrom( document );
|
||||||
else if (L"w:moveFromRangeEnd" == sName )
|
else if (L"moveFromRangeEnd" == sName )
|
||||||
pItem = new Logic::CMoveFromRangeEnd( document );
|
pItem = new Logic::CMoveFromRangeEnd( document );
|
||||||
else if (L"w:moveFromRangeStart" == sName )
|
else if (L"moveFromRangeStart" == sName )
|
||||||
pItem = new Logic::CMoveFromRangeStart( document );
|
pItem = new Logic::CMoveFromRangeStart( document );
|
||||||
else if (L"w:moveTo" == sName )
|
else if (L"moveTo" == sName )
|
||||||
pItem = new Logic::CMoveTo( document );
|
pItem = new Logic::CMoveTo( document );
|
||||||
else if (L"w:moveToRangeEnd" == sName )
|
else if (L"moveToRangeEnd" == sName )
|
||||||
pItem = new Logic::CMoveToRangeEnd( document );
|
pItem = new Logic::CMoveToRangeEnd( document );
|
||||||
else if (L"w:moveToRangeStart" == sName )
|
else if (L"moveToRangeStart" == sName )
|
||||||
pItem = new Logic::CMoveToRangeStart( document );
|
pItem = new Logic::CMoveToRangeStart( document );
|
||||||
else if (L"m:oMath" == sName )
|
else if (L"m:oMath" == sName )
|
||||||
pItem = new Logic::COMath( document );
|
pItem = new Logic::COMath( document );
|
||||||
else if (L"m:oMathPara" == sName )
|
else if (L"m:oMathPara" == sName )
|
||||||
pItem = new Logic::COMathPara( document );
|
pItem = new Logic::COMathPara( document );
|
||||||
else if (L"w:p" == sName )
|
else if (L"p" == sName )
|
||||||
pItem = new Logic::CParagraph( document );
|
pItem = new Logic::CParagraph( document );
|
||||||
else if (L"w:permEnd" == sName )
|
else if (L"permEnd" == sName )
|
||||||
pItem = new Logic::CPermEnd( document );
|
pItem = new Logic::CPermEnd( document );
|
||||||
else if (L"w:permStart" == sName )
|
else if (L"permStart" == sName )
|
||||||
pItem = new Logic::CPermStart( document );
|
pItem = new Logic::CPermStart( document );
|
||||||
else if (L"w:proofErr" == sName )
|
else if (L"proofErr" == sName )
|
||||||
pItem = new Logic::CProofErr( document );
|
pItem = new Logic::CProofErr( document );
|
||||||
else if (L"w:sdt" == sName )
|
else if (L"sdt" == sName )
|
||||||
pItem = new Logic::CSdt( document );
|
pItem = new Logic::CSdt( document );
|
||||||
else if (L"w:sectPr" == sName )
|
else if (L"sectPr" == sName )
|
||||||
{
|
{
|
||||||
m_oSectPr = new Logic::CSectionProperty( document );
|
m_oSectPr = new Logic::CSectionProperty( document );
|
||||||
m_oSectPr->fromXML(oReader);
|
m_oSectPr->fromXML(oReader);
|
||||||
@ -314,34 +314,34 @@ namespace OOX
|
|||||||
}
|
}
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
}
|
}
|
||||||
else if (L"w:tbl" == sName )
|
else if (L"tbl" == sName )
|
||||||
pItem = new Logic::CTbl( document );
|
pItem = new Logic::CTbl( document );
|
||||||
else if (L"w:body" == sName && !oReader.IsEmptyNode())
|
else if (L"body" == sName && !oReader.IsEmptyNode())
|
||||||
{
|
{
|
||||||
int nWBodyDepth = oReader.GetDepth();
|
int nWBodyDepth = oReader.GetDepth();
|
||||||
CreateElements(oReader, nWBodyDepth);
|
CreateElements(oReader, nWBodyDepth);
|
||||||
}
|
}
|
||||||
else if (L"wx:sect" == sName && !oReader.IsEmptyNode())
|
else if (L"sect" == sName && !oReader.IsEmptyNode())
|
||||||
{
|
{
|
||||||
int nWxSectDepth = oReader.GetDepth();
|
int nWxSectDepth = oReader.GetDepth();
|
||||||
CreateElements(oReader, nWxSectDepth);
|
CreateElements(oReader, nWxSectDepth);
|
||||||
}
|
}
|
||||||
else if (L"wx:sub-section" == sName && !oReader.IsEmptyNode())
|
else if (L"sub-section" == sName && !oReader.IsEmptyNode())
|
||||||
{
|
{
|
||||||
int nWxSubSectDepth = oReader.GetDepth();
|
int nWxSubSectDepth = oReader.GetDepth();
|
||||||
CreateElements(oReader, nWxSubSectDepth);
|
CreateElements(oReader, nWxSubSectDepth);
|
||||||
}
|
}
|
||||||
else if (L"wx:pBdrGroup" == sName && !oReader.IsEmptyNode())
|
else if (L"pBdrGroup" == sName && !oReader.IsEmptyNode())
|
||||||
{
|
{
|
||||||
int nWxBdrGroupDepth = oReader.GetDepth();
|
int nWxBdrGroupDepth = oReader.GetDepth();
|
||||||
CreateElements(oReader, nWxBdrGroupDepth);
|
CreateElements(oReader, nWxBdrGroupDepth);
|
||||||
}
|
}
|
||||||
else if (L"w:background" == sName)
|
else if (L"background" == sName)
|
||||||
{
|
{
|
||||||
m_oBackground = new OOX::Logic::CBackground(WritingElement::m_pMainDocument);
|
m_oBackground = new OOX::Logic::CBackground(WritingElement::m_pMainDocument);
|
||||||
m_oBackground->fromXML(oReader);
|
m_oBackground->fromXML(oReader);
|
||||||
}
|
}
|
||||||
else if (L"w:docParts" == sName && !oReader.IsEmptyNode())
|
else if (L"docParts" == sName && !oReader.IsEmptyNode())
|
||||||
{
|
{
|
||||||
WritingElement *pItem = new OOX::Logic::CDocParts(WritingElement::m_pMainDocument);
|
WritingElement *pItem = new OOX::Logic::CDocParts(WritingElement::m_pMainDocument);
|
||||||
m_arrItems.push_back(pItem);
|
m_arrItems.push_back(pItem);
|
||||||
@ -375,8 +375,8 @@ namespace OOX
|
|||||||
if ( !oReader.ReadNextNode() )
|
if ( !oReader.ReadNextNode() )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
std::wstring sName = oReader.GetName();
|
std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName());
|
||||||
if ( L"w:document" == sName || L"w:wordDocument" == sName || L"w:glossaryDocument" == sName)
|
if ( L"document" == sName || L"wordDocument" == sName || L"glossaryDocument" == sName)
|
||||||
{
|
{
|
||||||
fromXML(oReader);
|
fromXML(oReader);
|
||||||
}
|
}
|
||||||
@ -406,10 +406,10 @@ namespace OOX
|
|||||||
|
|
||||||
void CDocument::ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
void CDocument::ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||||
{
|
{
|
||||||
WritingElement_ReadAttributes_Start( oReader )
|
WritingElement_ReadAttributes_Start_No_NS( oReader )
|
||||||
WritingElement_ReadAttributes_Read_if ( oReader, L"w:conformance", m_oConformance )
|
WritingElement_ReadAttributes_Read_if ( oReader, L"conformance", m_oConformance )
|
||||||
WritingElement_ReadAttributes_Read_else_if ( oReader, L"xml:space", m_oSpace )
|
WritingElement_ReadAttributes_Read_else_if ( oReader, L"space", m_oSpace )
|
||||||
WritingElement_ReadAttributes_End( oReader )
|
WritingElement_ReadAttributes_End_No_NS( oReader )
|
||||||
}
|
}
|
||||||
void CDocument::fromXML(XmlUtils::CXmlLiteReader& oReader)
|
void CDocument::fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||||
{
|
{
|
||||||
@ -419,7 +419,7 @@ namespace OOX
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
int nDocumentDepth = oReader.GetDepth();
|
int nDocumentDepth = oReader.GetDepth();
|
||||||
std::wstring sName = oReader.GetName();
|
//std::wstring sName = oReader.GetName();
|
||||||
|
|
||||||
CreateElements(oReader, nDocumentDepth);
|
CreateElements(oReader, nDocumentDepth);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -194,20 +194,20 @@ namespace OOX
|
|||||||
|
|
||||||
while( oReader.ReadNextSiblingNode(nDepth) )
|
while( oReader.ReadNextSiblingNode(nDepth) )
|
||||||
{
|
{
|
||||||
std::wstring sName = oReader.GetName();
|
std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName());
|
||||||
WritingElement *pItem = NULL;
|
WritingElement *pItem = NULL;
|
||||||
|
|
||||||
if (L"w:bdo" == sName )
|
if (L"bdo" == sName )
|
||||||
pItem = new CBdo( document );
|
pItem = new CBdo( document );
|
||||||
else if (L"w:bookmarkEnd" == sName )
|
else if (L"bookmarkEnd" == sName )
|
||||||
pItem = new CBookmarkEnd( document );
|
pItem = new CBookmarkEnd( document );
|
||||||
else if (L"w:bookmarkStart" == sName )
|
else if (L"bookmarkStart" == sName )
|
||||||
pItem = new CBookmarkStart( document );
|
pItem = new CBookmarkStart( document );
|
||||||
else if (L"w:commentRangeEnd" == sName )
|
else if (L"commentRangeEnd" == sName )
|
||||||
pItem = new CCommentRangeEnd( document );
|
pItem = new CCommentRangeEnd( document );
|
||||||
else if (L"w:commentRangeStart" == sName )
|
else if (L"commentRangeStart" == sName )
|
||||||
pItem = new CCommentRangeStart( document );
|
pItem = new CCommentRangeStart( document );
|
||||||
else if ( L"aml:annotation" == sName) //Bookmark
|
else if ( L"annotation" == sName) //Bookmark
|
||||||
{
|
{
|
||||||
nullable_string sType;
|
nullable_string sType;
|
||||||
WritingElement_ReadAttributes_ReadSingle2(oReader, L"w:type", sType);
|
WritingElement_ReadAttributes_ReadSingle2(oReader, L"w:type", sType);
|
||||||
@ -238,55 +238,55 @@ namespace OOX
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//else if (L"w:customXml" == sName )
|
//else if (L"customXml" == sName )
|
||||||
// pItem = new CCustomXml( document );
|
// pItem = new CCustomXml( document );
|
||||||
else if (L"w:customXmlDelRangeEnd" == sName )
|
else if (L"customXmlDelRangeEnd" == sName )
|
||||||
pItem = new CCustomXmlDelRangeEnd( document );
|
pItem = new CCustomXmlDelRangeEnd( document );
|
||||||
else if (L"w:customXmlDelRangeStart" == sName )
|
else if (L"customXmlDelRangeStart" == sName )
|
||||||
pItem = new CCustomXmlDelRangeStart( document );
|
pItem = new CCustomXmlDelRangeStart( document );
|
||||||
else if (L"w:customXmlInsRangeEnd" == sName )
|
else if (L"customXmlInsRangeEnd" == sName )
|
||||||
pItem = new CCustomXmlInsRangeEnd( document );
|
pItem = new CCustomXmlInsRangeEnd( document );
|
||||||
else if (L"w:customXmlInsRangeStart" == sName )
|
else if (L"customXmlInsRangeStart" == sName )
|
||||||
pItem = new CCustomXmlInsRangeStart( document );
|
pItem = new CCustomXmlInsRangeStart( document );
|
||||||
else if (L"w:customXmlMoveFromRangeEnd" == sName )
|
else if (L"customXmlMoveFromRangeEnd" == sName )
|
||||||
pItem = new CCustomXmlMoveFromRangeEnd( document );
|
pItem = new CCustomXmlMoveFromRangeEnd( document );
|
||||||
else if (L"w:customXmlMoveFromRangeStart" == sName )
|
else if (L"customXmlMoveFromRangeStart" == sName )
|
||||||
pItem = new CCustomXmlMoveFromRangeStart( document );
|
pItem = new CCustomXmlMoveFromRangeStart( document );
|
||||||
else if (L"w:customXmlMoveToRangeEnd" == sName )
|
else if (L"customXmlMoveToRangeEnd" == sName )
|
||||||
pItem = new CCustomXmlMoveToRangeEnd( document );
|
pItem = new CCustomXmlMoveToRangeEnd( document );
|
||||||
else if (L"w:customXmlMoveToRangeStart" == sName )
|
else if (L"customXmlMoveToRangeStart" == sName )
|
||||||
pItem = new CCustomXmlMoveToRangeStart( document );
|
pItem = new CCustomXmlMoveToRangeStart( document );
|
||||||
else if (L"w:del" == sName )
|
else if (L"del" == sName )
|
||||||
pItem = new CDel( document );
|
pItem = new CDel( document );
|
||||||
else if (L"w:dir" == sName )
|
else if (L"dir" == sName )
|
||||||
pItem = new CDir( document );
|
pItem = new CDir( document );
|
||||||
else if (L"w:fldSimple" == sName )
|
else if (L"fldSimple" == sName )
|
||||||
pItem = new CFldSimple( document );
|
pItem = new CFldSimple( document );
|
||||||
else if (L"w:hyperlink" == sName ||L"w:hlink" == sName )
|
else if (L"hyperlink" == sName ||L"hlink" == sName )
|
||||||
pItem = new CHyperlink( document );
|
pItem = new CHyperlink( document );
|
||||||
else if (L"w:ins" == sName )
|
else if (L"ins" == sName )
|
||||||
pItem = new CIns( document );
|
pItem = new CIns( document );
|
||||||
else if (L"w:moveFrom" == sName )
|
else if (L"moveFrom" == sName )
|
||||||
pItem = new CMoveFrom( document );
|
pItem = new CMoveFrom( document );
|
||||||
else if (L"w:moveFromRangeEnd" == sName )
|
else if (L"moveFromRangeEnd" == sName )
|
||||||
pItem = new CMoveFromRangeEnd( document );
|
pItem = new CMoveFromRangeEnd( document );
|
||||||
else if (L"w:moveFromRangeStart" == sName )
|
else if (L"moveFromRangeStart" == sName )
|
||||||
pItem = new CMoveFromRangeStart( document );
|
pItem = new CMoveFromRangeStart( document );
|
||||||
else if (L"w:moveTo" == sName )
|
else if (L"moveTo" == sName )
|
||||||
pItem = new CMoveTo( document );
|
pItem = new CMoveTo( document );
|
||||||
else if (L"w:moveToRangeEnd" == sName )
|
else if (L"moveToRangeEnd" == sName )
|
||||||
pItem = new CMoveToRangeEnd( document );
|
pItem = new CMoveToRangeEnd( document );
|
||||||
else if (L"w:moveToRangeStart" == sName )
|
else if (L"moveToRangeStart" == sName )
|
||||||
pItem = new CMoveToRangeStart( document );
|
pItem = new CMoveToRangeStart( document );
|
||||||
else if (L"m:oMath" == sName )
|
else if (L"oMath" == sName )
|
||||||
pItem = new COMath( document );
|
pItem = new COMath( document );
|
||||||
else if (L"m:oMathPara" == sName )
|
else if (L"oMathPara" == sName )
|
||||||
pItem = new COMathPara( document );
|
pItem = new COMathPara( document );
|
||||||
else if (L"w:permEnd" == sName )
|
else if (L"permEnd" == sName )
|
||||||
pItem = new CPermEnd( document );
|
pItem = new CPermEnd( document );
|
||||||
else if (L"w:permStart" == sName )
|
else if (L"permStart" == sName )
|
||||||
pItem = new CPermStart( document );
|
pItem = new CPermStart( document );
|
||||||
else if (L"w:pPr" == sName )
|
else if (L"pPr" == sName )
|
||||||
{// c копией .. для быстрого доступа/анализа
|
{// c копией .. для быстрого доступа/анализа
|
||||||
if (m_oParagraphProperty)
|
if (m_oParagraphProperty)
|
||||||
{
|
{
|
||||||
@ -304,27 +304,27 @@ namespace OOX
|
|||||||
pItem = m_oParagraphProperty = new CParagraphProperty( document );
|
pItem = m_oParagraphProperty = new CParagraphProperty( document );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (L"w:proofErr" == sName )
|
else if (L"proofErr" == sName )
|
||||||
pItem = new CProofErr( document );
|
pItem = new CProofErr( document );
|
||||||
else if (L"w:r" == sName )
|
else if (L"r" == sName )
|
||||||
pItem = new CRun( document );
|
pItem = new CRun( document );
|
||||||
else if (L"w:sdt" == sName )
|
else if (L"sdt" == sName )
|
||||||
pItem = new CSdt( document );
|
pItem = new CSdt( document );
|
||||||
else if (L"w:smartTag" == sName )
|
else if (L"smartTag" == sName )
|
||||||
pItem = new CSmartTag( document );
|
pItem = new CSmartTag( document );
|
||||||
//else if (L"w:subDoc" == sName )
|
//else if (L"subDoc" == sName )
|
||||||
// pItem = new CSubDoc( document );
|
// pItem = new CSubDoc( document );
|
||||||
else if (L"w:sdtContent" == sName)
|
else if (L"sdtContent" == sName)
|
||||||
{
|
{
|
||||||
int nDepthChild = oReader.GetDepth();
|
int nDepthChild = oReader.GetDepth();
|
||||||
fromXML(nDepthChild, oReader);
|
fromXML(nDepthChild, oReader);
|
||||||
}
|
}
|
||||||
else if (L"wx:sect" == sName && !oReader.IsEmptyNode())
|
else if (L"sect" == sName && !oReader.IsEmptyNode())
|
||||||
{
|
{
|
||||||
int nWxSectDepth = oReader.GetDepth();
|
int nWxSectDepth = oReader.GetDepth();
|
||||||
fromXML(nWxSectDepth, oReader);
|
fromXML(nWxSectDepth, oReader);
|
||||||
}
|
}
|
||||||
else if (L"wx:sub-section" == sName && !oReader.IsEmptyNode())
|
else if (L"sub-section" == sName && !oReader.IsEmptyNode())
|
||||||
{
|
{
|
||||||
int nWxSubSectDepth = oReader.GetDepth();
|
int nWxSubSectDepth = oReader.GetDepth();
|
||||||
fromXML(nWxSubSectDepth, oReader);
|
fromXML(nWxSubSectDepth, oReader);
|
||||||
@ -372,17 +372,17 @@ namespace OOX
|
|||||||
|
|
||||||
void CParagraph::ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
void CParagraph::ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||||
{
|
{
|
||||||
WritingElement_ReadAttributes_Start( oReader )
|
WritingElement_ReadAttributes_Start_No_NS( oReader )
|
||||||
|
|
||||||
WritingElement_ReadAttributes_Read_if ( oReader,L"w:rsidDel", m_oRsidDel )
|
WritingElement_ReadAttributes_Read_if ( oReader,L"rsidDel", m_oRsidDel )
|
||||||
WritingElement_ReadAttributes_Read_else_if( oReader,L"w:rsidP", m_oRsidP )
|
WritingElement_ReadAttributes_Read_else_if( oReader,L"rsidP", m_oRsidP )
|
||||||
WritingElement_ReadAttributes_Read_else_if( oReader,L"w:rsidR", m_oRsidR )
|
WritingElement_ReadAttributes_Read_else_if( oReader,L"rsidR", m_oRsidR )
|
||||||
WritingElement_ReadAttributes_Read_else_if( oReader,L"w:rsidRDefault", m_oRsidRDefault )
|
WritingElement_ReadAttributes_Read_else_if( oReader,L"rsidRDefault", m_oRsidRDefault )
|
||||||
WritingElement_ReadAttributes_Read_else_if( oReader,L"w:rsidRPr", m_oRsidRPr )
|
WritingElement_ReadAttributes_Read_else_if( oReader,L"rsidRPr", m_oRsidRPr )
|
||||||
WritingElement_ReadAttributes_Read_else_if( oReader,L"w14:paraId", m_oParaId )
|
WritingElement_ReadAttributes_Read_else_if( oReader,L"paraId", m_oParaId )
|
||||||
WritingElement_ReadAttributes_Read_else_if( oReader,L"w14:textId", m_oTextId )
|
WritingElement_ReadAttributes_Read_else_if( oReader,L"textId", m_oTextId )
|
||||||
|
|
||||||
WritingElement_ReadAttributes_End( oReader )
|
WritingElement_ReadAttributes_End_No_NS( oReader )
|
||||||
}
|
}
|
||||||
void CParagraph::AddRun(CRun *pRun)
|
void CParagraph::AddRun(CRun *pRun)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -98,8 +98,8 @@ namespace OOX
|
|||||||
int nParentDepth = oReader.GetDepth();
|
int nParentDepth = oReader.GetDepth();
|
||||||
while( oReader.ReadNextSiblingNode( nParentDepth ) )
|
while( oReader.ReadNextSiblingNode( nParentDepth ) )
|
||||||
{
|
{
|
||||||
std::wstring sName = oReader.GetName();
|
std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName());
|
||||||
if ( L"w:pPr" == sName )
|
if ( L"pPr" == sName )
|
||||||
m_pParPr->fromXML( oReader );
|
m_pParPr->fromXML( oReader );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -151,12 +151,12 @@ namespace OOX
|
|||||||
}
|
}
|
||||||
void CPPrChange::ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
void CPPrChange::ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||||
{
|
{
|
||||||
WritingElement_ReadAttributes_Start( oReader )
|
WritingElement_ReadAttributes_Start_No_NS( oReader )
|
||||||
WritingElement_ReadAttributes_Read_if ( oReader, L"w:author", m_sAuthor )
|
WritingElement_ReadAttributes_Read_if ( oReader, L"author", m_sAuthor )
|
||||||
WritingElement_ReadAttributes_Read_else_if( oReader, L"w:date", m_oDate )
|
WritingElement_ReadAttributes_Read_else_if( oReader, L"date", m_oDate )
|
||||||
WritingElement_ReadAttributes_Read_else_if( oReader, L"w:id", m_oId )
|
WritingElement_ReadAttributes_Read_else_if( oReader, L"id", m_oId )
|
||||||
WritingElement_ReadAttributes_Read_else_if( oReader, L"oouserid", m_sUserId )
|
WritingElement_ReadAttributes_Read_else_if( oReader, L"oouserid", m_sUserId )
|
||||||
WritingElement_ReadAttributes_End( oReader )
|
WritingElement_ReadAttributes_End_No_NS( oReader )
|
||||||
}
|
}
|
||||||
void CParagraphProperty::fromXML(XmlUtils::CXmlNode& oNode)
|
void CParagraphProperty::fromXML(XmlUtils::CXmlNode& oNode)
|
||||||
{//??? где используется ?
|
{//??? где используется ?
|
||||||
@ -225,53 +225,53 @@ namespace OOX
|
|||||||
int nParentDepth = oReader.GetDepth();
|
int nParentDepth = oReader.GetDepth();
|
||||||
while( oReader.ReadNextSiblingNode( nParentDepth ) )
|
while( oReader.ReadNextSiblingNode( nParentDepth ) )
|
||||||
{
|
{
|
||||||
std::wstring sName = oReader.GetName();
|
std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName());
|
||||||
|
|
||||||
if ( L"w:adjustRightInd" == sName )
|
if ( L"adjustRightInd" == sName )
|
||||||
m_oAdjustRightInd = oReader;
|
m_oAdjustRightInd = oReader;
|
||||||
else if ( L"w:autoSpaceDE" == sName )
|
else if ( L"autoSpaceDE" == sName )
|
||||||
m_oAutoSpaceDE = oReader;
|
m_oAutoSpaceDE = oReader;
|
||||||
else if ( L"w:autoSpaceDN" == sName )
|
else if ( L"autoSpaceDN" == sName )
|
||||||
m_oAutoSpaceDN = oReader;
|
m_oAutoSpaceDN = oReader;
|
||||||
else if ( L"w:bidi" == sName )
|
else if ( L"bidi" == sName )
|
||||||
m_oBidi = oReader;
|
m_oBidi = oReader;
|
||||||
else if ( L"w:cnfStyle" == sName )
|
else if ( L"cnfStyle" == sName )
|
||||||
m_oCnfStyle = oReader;
|
m_oCnfStyle = oReader;
|
||||||
else if ( L"w:contextualSpacing" == sName )
|
else if ( L"contextualSpacing" == sName )
|
||||||
m_oContextualSpacing = oReader;
|
m_oContextualSpacing = oReader;
|
||||||
else if ( L"w:divId" == sName )
|
else if ( L"divId" == sName )
|
||||||
m_oDivID = oReader;
|
m_oDivID = oReader;
|
||||||
else if ( L"w:framePr" == sName )
|
else if ( L"framePr" == sName )
|
||||||
m_oFramePr = oReader;
|
m_oFramePr = oReader;
|
||||||
else if ( L"w:ind" == sName )
|
else if ( L"ind" == sName )
|
||||||
m_oInd = oReader;
|
m_oInd = oReader;
|
||||||
else if ( L"w:jc" == sName )
|
else if ( L"jc" == sName )
|
||||||
m_oJc = oReader;
|
m_oJc = oReader;
|
||||||
else if ( L"w:keepLines" == sName )
|
else if ( L"keepLines" == sName )
|
||||||
m_oKeepLines = oReader;
|
m_oKeepLines = oReader;
|
||||||
else if ( L"w:keepNext" == sName )
|
else if ( L"keepNext" == sName )
|
||||||
m_oKeepNext = oReader;
|
m_oKeepNext = oReader;
|
||||||
else if ( L"w:kinsoku" == sName )
|
else if ( L"kinsoku" == sName )
|
||||||
m_oKinsoku = oReader;
|
m_oKinsoku = oReader;
|
||||||
else if ( L"w:mirrorIndents" == sName )
|
else if ( L"mirrorIndents" == sName )
|
||||||
m_oMirrorIndents = oReader;
|
m_oMirrorIndents = oReader;
|
||||||
else if ( L"w:numPr" == sName || L"w:listPr" == sName)
|
else if ( L"numPr" == sName || L"listPr" == sName)
|
||||||
m_oNumPr = oReader;
|
m_oNumPr = oReader;
|
||||||
else if ( L"w:outlineLvl" == sName )
|
else if ( L"outlineLvl" == sName )
|
||||||
m_oOutlineLvl = oReader;
|
m_oOutlineLvl = oReader;
|
||||||
else if ( L"w:overflowPunct" == sName )
|
else if ( L"overflowPunct" == sName )
|
||||||
m_oOverflowPunct = oReader;
|
m_oOverflowPunct = oReader;
|
||||||
else if ( L"w:pageBreakBefore" == sName )
|
else if ( L"pageBreakBefore" == sName )
|
||||||
m_oPageBreakBefore = oReader;
|
m_oPageBreakBefore = oReader;
|
||||||
else if ( L"w:pBdr" == sName )
|
else if ( L"pBdr" == sName )
|
||||||
m_oPBdr = oReader;
|
m_oPBdr = oReader;
|
||||||
else if ( !m_bPPrChange && L"w:pPrChange" == sName )
|
else if ( !m_bPPrChange && L"pPrChange" == sName )
|
||||||
m_oPPrChange = oReader;
|
m_oPPrChange = oReader;
|
||||||
else if ( L"w:pStyle" == sName )
|
else if ( L"pStyle" == sName )
|
||||||
m_oPStyle = oReader;
|
m_oPStyle = oReader;
|
||||||
else if ( !m_bPPrChange && L"w:rPr" == sName )
|
else if ( !m_bPPrChange && L"rPr" == sName )
|
||||||
m_oRPr = oReader;
|
m_oRPr = oReader;
|
||||||
else if ( !m_bPPrChange && L"w:sectPr" == sName )
|
else if ( !m_bPPrChange && L"sectPr" == sName )
|
||||||
{
|
{
|
||||||
m_oSectPr = new CSectionProperty(document);
|
m_oSectPr = new CSectionProperty(document);
|
||||||
m_oSectPr->fromXML(oReader);
|
m_oSectPr->fromXML(oReader);
|
||||||
@ -293,31 +293,31 @@ namespace OOX
|
|||||||
}
|
}
|
||||||
//------------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------------
|
||||||
}
|
}
|
||||||
else if ( L"w:shd" == sName )
|
else if ( L"shd" == sName )
|
||||||
m_oShd = oReader;
|
m_oShd = oReader;
|
||||||
else if ( L"w:snapToGrid" == sName )
|
else if ( L"snapToGrid" == sName )
|
||||||
m_oSnapToGrid = oReader;
|
m_oSnapToGrid = oReader;
|
||||||
else if ( L"w:spacing" == sName )
|
else if ( L"spacing" == sName )
|
||||||
m_oSpacing = oReader;
|
m_oSpacing = oReader;
|
||||||
else if ( L"w:suppressAutoHyphens" == sName )
|
else if ( L"suppressAutoHyphens" == sName )
|
||||||
m_oSuppressAutoHyphens = oReader;
|
m_oSuppressAutoHyphens = oReader;
|
||||||
else if ( L"w:suppressLineNumbers" == sName )
|
else if ( L"suppressLineNumbers" == sName )
|
||||||
m_oSuppressLineNumbers = oReader;
|
m_oSuppressLineNumbers = oReader;
|
||||||
else if ( L"w:suppressOverlap" == sName )
|
else if ( L"suppressOverlap" == sName )
|
||||||
m_oSuppressOverlap = oReader;
|
m_oSuppressOverlap = oReader;
|
||||||
else if ( L"w:tabs" == sName )
|
else if ( L"tabs" == sName )
|
||||||
m_oTabs = oReader;
|
m_oTabs = oReader;
|
||||||
else if ( L"w:textAlignment" == sName )
|
else if ( L"textAlignment" == sName )
|
||||||
m_oTextAlignment = oReader;
|
m_oTextAlignment = oReader;
|
||||||
else if ( L"w:textboxTightWrap" == sName )
|
else if ( L"textboxTightWrap" == sName )
|
||||||
m_oTextboxTightWrap = oReader;
|
m_oTextboxTightWrap = oReader;
|
||||||
else if ( L"w:textDirection" == sName )
|
else if ( L"textDirection" == sName )
|
||||||
m_oTextDirection = oReader;
|
m_oTextDirection = oReader;
|
||||||
else if ( L"w:topLinePunct" == sName )
|
else if ( L"topLinePunct" == sName )
|
||||||
m_oTopLinePunct = oReader;
|
m_oTopLinePunct = oReader;
|
||||||
else if ( L"w:widowControl" == sName )
|
else if ( L"widowControl" == sName )
|
||||||
m_oWidowControl = oReader;
|
m_oWidowControl = oReader;
|
||||||
else if ( L"w:wordWrap" == sName )
|
else if ( L"wordWrap" == sName )
|
||||||
m_oWordWrap = oReader;
|
m_oWordWrap = oReader;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -215,36 +215,36 @@ namespace OOX
|
|||||||
|
|
||||||
WritingElement* CRun::fromXMLElem(XmlUtils::CXmlLiteReader& oReader)
|
WritingElement* CRun::fromXMLElem(XmlUtils::CXmlLiteReader& oReader)
|
||||||
{
|
{
|
||||||
std::wstring sName = oReader.GetName();
|
std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName());
|
||||||
WritingElement *pItem = NULL;
|
WritingElement *pItem = NULL;
|
||||||
|
|
||||||
OOX::Document* document = WritingElement::m_pMainDocument;
|
OOX::Document* document = WritingElement::m_pMainDocument;
|
||||||
|
|
||||||
if ( L"mc:AlternateContent" == sName )
|
if ( L"AlternateContent" == sName )
|
||||||
pItem = new CAlternateContent( document );
|
pItem = new CAlternateContent( document );
|
||||||
else if ( L"w:annotationRef" == sName )
|
else if ( L"annotationRef" == sName )
|
||||||
pItem = new CAnnotationRef( document );
|
pItem = new CAnnotationRef( document );
|
||||||
else if ( L"w:br" == sName )
|
else if ( L"br" == sName )
|
||||||
pItem = new CBr( document );
|
pItem = new CBr( document );
|
||||||
else if ( L"w:commentReference" == sName )
|
else if ( L"commentReference" == sName )
|
||||||
pItem = new CCommentReference( document );
|
pItem = new CCommentReference( document );
|
||||||
else if ( L"w:contentPart" == sName )
|
else if ( L"contentPart" == sName )
|
||||||
pItem = new CContentPart( document );
|
pItem = new CContentPart( document );
|
||||||
else if ( L"w:continuationSeparator" == sName )
|
else if ( L"continuationSeparator" == sName )
|
||||||
pItem = new CContinuationSeparator( document );
|
pItem = new CContinuationSeparator( document );
|
||||||
else if ( L"w:cr" == sName )
|
else if ( L"cr" == sName )
|
||||||
pItem = new CCr( document );
|
pItem = new CCr( document );
|
||||||
else if ( L"w:dayLong" == sName )
|
else if ( L"dayLong" == sName )
|
||||||
pItem = new CDayLong( document );
|
pItem = new CDayLong( document );
|
||||||
else if ( L"w:dayShort" == sName )
|
else if ( L"dayShort" == sName )
|
||||||
pItem = new CDayShort( document );
|
pItem = new CDayShort( document );
|
||||||
else if ( L"w:delInstrText" == sName )
|
else if ( L"delInstrText" == sName )
|
||||||
pItem = new CDelInstrText( document );
|
pItem = new CDelInstrText( document );
|
||||||
else if ( L"w:delText" == sName )
|
else if ( L"delText" == sName )
|
||||||
pItem = new CDelText( document );
|
pItem = new CDelText( document );
|
||||||
else if ( L"w:drawing" == sName )
|
else if ( L"drawing" == sName )
|
||||||
pItem = new CDrawing( document );
|
pItem = new CDrawing( document );
|
||||||
else if ( L"w:endnote" == sName )
|
else if ( L"endnote" == sName )
|
||||||
{
|
{
|
||||||
CEndnoteReference *pEndRef = new CEndnoteReference(document);
|
CEndnoteReference *pEndRef = new CEndnoteReference(document);
|
||||||
CFtnEdn *pEndnote = new CFtnEdn( document );
|
CFtnEdn *pEndnote = new CFtnEdn( document );
|
||||||
@ -266,13 +266,13 @@ namespace OOX
|
|||||||
}
|
}
|
||||||
pItem = pEndRef;
|
pItem = pEndRef;
|
||||||
}
|
}
|
||||||
else if ( L"w:endnoteRef" == sName )
|
else if ( L"endnoteRef" == sName )
|
||||||
pItem = new CEndnoteRef( document );
|
pItem = new CEndnoteRef( document );
|
||||||
else if ( L"w:endnoteReference" == sName )
|
else if ( L"endnoteReference" == sName )
|
||||||
pItem = new CEndnoteReference( document );
|
pItem = new CEndnoteReference( document );
|
||||||
else if ( L"w:fldChar" == sName )
|
else if ( L"fldChar" == sName )
|
||||||
pItem = new CFldChar( document );
|
pItem = new CFldChar( document );
|
||||||
else if ( L"w:footnote" == sName )
|
else if ( L"footnote" == sName )
|
||||||
{
|
{
|
||||||
CFootnoteReference *pFootRef = new CFootnoteReference(document);
|
CFootnoteReference *pFootRef = new CFootnoteReference(document);
|
||||||
CFtnEdn *pFootnote = new CFtnEdn( document );
|
CFtnEdn *pFootnote = new CFtnEdn( document );
|
||||||
@ -292,29 +292,29 @@ namespace OOX
|
|||||||
}
|
}
|
||||||
pItem = pFootRef;
|
pItem = pFootRef;
|
||||||
}
|
}
|
||||||
else if ( L"w:footnoteRef" == sName )
|
else if ( L"footnoteRef" == sName )
|
||||||
pItem = new CFootnoteRef( document );
|
pItem = new CFootnoteRef( document );
|
||||||
else if ( L"w:footnoteReference" == sName )
|
else if ( L"footnoteReference" == sName )
|
||||||
pItem = new CFootnoteReference( document );
|
pItem = new CFootnoteReference( document );
|
||||||
else if ( L"w:instrText" == sName )
|
else if ( L"instrText" == sName )
|
||||||
pItem = new CInstrText( document );
|
pItem = new CInstrText( document );
|
||||||
else if ( L"w:lastRenderedPageBreak" == sName )
|
else if ( L"lastRenderedPageBreak" == sName )
|
||||||
pItem = new CLastRenderedPageBreak( document );
|
pItem = new CLastRenderedPageBreak( document );
|
||||||
else if ( L"w:monthLong" == sName )
|
else if ( L"monthLong" == sName )
|
||||||
pItem = new CMonthLong( document );
|
pItem = new CMonthLong( document );
|
||||||
else if ( L"w:monthShort" == sName )
|
else if ( L"monthShort" == sName )
|
||||||
pItem = new CMonthShort( document );
|
pItem = new CMonthShort( document );
|
||||||
else if ( L"w:noBreakHyphen" == sName )
|
else if ( L"noBreakHyphen" == sName )
|
||||||
pItem = new CNoBreakHyphen( document );
|
pItem = new CNoBreakHyphen( document );
|
||||||
else if ( L"w:object" == sName )
|
else if ( L"object" == sName )
|
||||||
pItem = new CObject( document );
|
pItem = new CObject( document );
|
||||||
else if ( L"w:pgNum" == sName )
|
else if ( L"pgNum" == sName )
|
||||||
pItem = new CPgNum( document );
|
pItem = new CPgNum( document );
|
||||||
else if ( L"w:pict" == sName )
|
else if ( L"pict" == sName )
|
||||||
pItem = new CPicture( document );
|
pItem = new CPicture( document );
|
||||||
else if ( L"w:ptab" == sName )
|
else if ( L"ptab" == sName )
|
||||||
pItem = new CPTab( document );
|
pItem = new CPTab( document );
|
||||||
else if ( L"w:rPr" == sName )
|
else if ( L"rPr" == sName )
|
||||||
{
|
{
|
||||||
if (m_oRunProperty)
|
if (m_oRunProperty)
|
||||||
{
|
{
|
||||||
@ -331,23 +331,23 @@ namespace OOX
|
|||||||
}
|
}
|
||||||
return pItem;
|
return pItem;
|
||||||
}
|
}
|
||||||
else if ( L"w:ruby" == sName )
|
else if ( L"ruby" == sName )
|
||||||
pItem = new CRuby( document );
|
pItem = new CRuby( document );
|
||||||
else if ( L"w:separator" == sName )
|
else if ( L"separator" == sName )
|
||||||
pItem = new CSeparator( document );
|
pItem = new CSeparator( document );
|
||||||
else if ( L"w:softHyphen" == sName )
|
else if ( L"softHyphen" == sName )
|
||||||
pItem = new CSoftHyphen( document );
|
pItem = new CSoftHyphen( document );
|
||||||
else if ( L"w:sym" == sName )
|
else if ( L"sym" == sName )
|
||||||
pItem = new CSym( document );
|
pItem = new CSym( document );
|
||||||
else if ( L"w:t" == sName )
|
else if ( L"t" == sName )
|
||||||
{
|
{
|
||||||
fromXMLText(oReader);
|
fromXMLText(oReader);
|
||||||
}
|
}
|
||||||
else if ( L"w:tab" == sName )
|
else if ( L"tab" == sName )
|
||||||
pItem = new CTab( document );
|
pItem = new CTab( document );
|
||||||
else if ( L"w:yearLong" == sName )
|
else if ( L"yearLong" == sName )
|
||||||
pItem = new CYearLong( document );
|
pItem = new CYearLong( document );
|
||||||
else if ( L"aml:annotation" == sName) //Bookmark
|
else if ( L"annotation" == sName) //Bookmark
|
||||||
{
|
{
|
||||||
nullable_string sType;
|
nullable_string sType;
|
||||||
WritingElement_ReadAttributes_ReadSingle2(oReader, L"w:type", sType);
|
WritingElement_ReadAttributes_ReadSingle2(oReader, L"w:type", sType);
|
||||||
@ -483,20 +483,20 @@ namespace OOX
|
|||||||
if ( !oReader.MoveToFirstAttribute() )
|
if ( !oReader.MoveToFirstAttribute() )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
std::wstring wsName = oReader.GetName();
|
std::wstring wsName = XmlUtils::GetNameNoNS(oReader.GetName());
|
||||||
while( !wsName.empty() )
|
while( !wsName.empty() )
|
||||||
{
|
{
|
||||||
if ( L"w:rsidDel" == wsName )
|
if ( L"rsidDel" == wsName )
|
||||||
m_oRsidDel = oReader.GetText();
|
m_oRsidDel = oReader.GetText();
|
||||||
else if ( L"w:rsidR" == wsName )
|
else if ( L"rsidR" == wsName )
|
||||||
m_oRsidR = oReader.GetText();
|
m_oRsidR = oReader.GetText();
|
||||||
else if ( L"w:rsidRPr" == wsName )
|
else if ( L"rsidRPr" == wsName )
|
||||||
m_oRsidRPr = oReader.GetText();
|
m_oRsidRPr = oReader.GetText();
|
||||||
|
|
||||||
if ( !oReader.MoveToNextAttribute() )
|
if ( !oReader.MoveToNextAttribute() )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
wsName = oReader.GetName();
|
wsName = XmlUtils::GetNameNoNS(oReader.GetName());
|
||||||
}
|
}
|
||||||
|
|
||||||
oReader.MoveToElement();
|
oReader.MoveToElement();
|
||||||
|
|||||||
@ -44,6 +44,7 @@
|
|||||||
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
|
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
|
||||||
<IntDir>$(Configuration)\</IntDir>
|
<IntDir>$(Configuration)\</IntDir>
|
||||||
<LinkIncremental>true</LinkIncremental>
|
<LinkIncremental>true</LinkIncremental>
|
||||||
|
<IncludePath>..\..\Common\3dParty\boost\build\win_32\include;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
|
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
|
||||||
@ -90,6 +91,7 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\..\Common\3dParty\pole\pole.cpp" />
|
<ClCompile Include="..\..\Common\3dParty\pole\pole.cpp" />
|
||||||
<ClCompile Include="..\..\Common\DocxFormat\Source\Base\unicode_util.cpp" />
|
<ClCompile Include="..\..\Common\DocxFormat\Source\Base\unicode_util.cpp" />
|
||||||
|
<ClCompile Include="..\..\Common\DocxFormat\Source\Base\Unit.cpp" />
|
||||||
<ClCompile Include="..\..\Common\OfficeFileFormatChecker2.cpp" />
|
<ClCompile Include="..\..\Common\OfficeFileFormatChecker2.cpp" />
|
||||||
<ClCompile Include="Test.cpp" />
|
<ClCompile Include="Test.cpp" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|||||||
@ -21,5 +21,8 @@
|
|||||||
<Filter>Common</Filter>
|
<Filter>Common</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="Test.cpp" />
|
<ClCompile Include="Test.cpp" />
|
||||||
|
<ClCompile Include="..\..\Common\DocxFormat\Source\Base\Unit.cpp">
|
||||||
|
<Filter>Common</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
@ -31,6 +31,7 @@
|
|||||||
*/
|
*/
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <iomanip>
|
#include <iomanip>
|
||||||
|
#include <boost/format.hpp>
|
||||||
|
|
||||||
#include "CryptTransform.h"
|
#include "CryptTransform.h"
|
||||||
|
|
||||||
@ -52,7 +53,7 @@
|
|||||||
#include "../../Common/3dParty/cryptopp/zdeflate.h"
|
#include "../../Common/3dParty/cryptopp/zdeflate.h"
|
||||||
|
|
||||||
#include "../../Common/DocxFormat/Source/Base/unicode_util.h"
|
#include "../../Common/DocxFormat/Source/Base/unicode_util.h"
|
||||||
#include "../../Common/DocxFormat/Source/Base/Unit.h"
|
#include "../../Common/DocxFormat/Source/Base/Base.h"
|
||||||
|
|
||||||
#include "../../DesktopEditor/common/File.h"
|
#include "../../DesktopEditor/common/File.h"
|
||||||
static const unsigned char encrVerifierHashInputBlockKey[8] = { 0xfe, 0xa7, 0xd2, 0x76, 0x3b, 0x4b, 0x9e, 0x79 };
|
static const unsigned char encrVerifierHashInputBlockKey[8] = { 0xfe, 0xa7, 0xd2, 0x76, 0x3b, 0x4b, 0x9e, 0x79 };
|
||||||
@ -899,8 +900,10 @@ bool ECMAWriteProtect::VerifyWrike()
|
|||||||
wPasswordHash ^= (0x8000 | ('N' << 8) | 'K');
|
wPasswordHash ^= (0x8000 | ('N' << 8) | 'K');
|
||||||
wPasswordHash ^= p.length();
|
wPasswordHash ^= p.length();
|
||||||
|
|
||||||
std::string sPasswordHash = XmlUtils::ToString(wPasswordHash, "%4.4X");
|
std::stringstream sstream;
|
||||||
|
sstream << boost::format("%4.4X") % wPasswordHash;
|
||||||
|
std::string sPasswordHash = sstream.str();
|
||||||
|
|
||||||
return data.hashValue == sPasswordHash;
|
return data.hashValue == sPasswordHash;
|
||||||
}
|
}
|
||||||
bool ECMAWriteProtect::Verify()
|
bool ECMAWriteProtect::Verify()
|
||||||
|
|||||||
Reference in New Issue
Block a user