Commit 84f39f54 authored by Sergey.Konovalov's avatar Sergey.Konovalov Committed by Alexander Trofimov

x2t32.exe (2.0.2.336)

TrackRevision открытие/сохранение.

git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@66364 954022d7-b5bf-4e40-9824-e11837661b57
parent 28a6dc9c
#ifndef READER_CLASSES
#define READER_CLASSES
#include "../../Common/ATLDefine.h"
namespace BinDocxRW {
class SectPr
......@@ -20,6 +22,7 @@ public:
bool EvenAndOddHeaders;
BYTE SectionType;
int PageNumStart;
CString sectPrChange;
bool bHeader;
bool bFooter;
......@@ -89,6 +92,8 @@ public:
sRes.Append(_T("<w:cols w:space=\"708\"/><w:docGrid w:linePitch=\"360\"/>"));
if(bTitlePg && TitlePg)
sRes.Append(_T("<w:titlePg/>"));
if(!sectPrChange.IsEmpty())
sRes.Append(sectPrChange);
return sRes;
}
};
......@@ -308,6 +313,9 @@ public:
bool Vanish;
CString Outline;
CString Fill;
CString Del;
CString Ins;
CString rPrChange;
bool bBold;
bool bItalic;
......@@ -391,11 +399,15 @@ public:
bVanish = false;
Outline.Empty();
Fill.Empty();
Del.Empty();
Ins.Empty();
rPrChange.Empty();
}
bool IsNoEmpty()
{
return bBold || bItalic || bUnderline || bStrikeout || bFontAscii || bFontHAnsi || bFontAE || bFontCS || bFontSize || bColor || bVertAlign || bHighLight || bShd ||
bRStyle || bSpacing || bDStrikeout || bCaps || bSmallCaps || bPosition || bFontHint || bBoldCs || bItalicCs || bFontSizeCs || bCs || bRtl || bLang || bLangBidi || bLangEA || bThemeColor || bVanish || !Outline.IsEmpty() || !Fill.IsEmpty();
bRStyle || bSpacing || bDStrikeout || bCaps || bSmallCaps || bPosition || bFontHint || bBoldCs || bItalicCs || bFontSizeCs || bCs || bRtl || bLang || bLangBidi || bLangEA || bThemeColor || bVanish ||
!Outline.IsEmpty() || !Fill.IsEmpty() || !Del.IsEmpty() || !Ins.IsEmpty() || !rPrChange.IsEmpty();
}
void Write(XmlUtils::CStringWriter* pCStringWriter)
{
......@@ -653,6 +665,12 @@ public:
pCStringWriter->WriteString(Outline);
if (!Fill.IsEmpty())
pCStringWriter->WriteString(Fill);
if (!Del.IsEmpty())
pCStringWriter->WriteString(Del);
if (!Ins.IsEmpty())
pCStringWriter->WriteString(Ins);
if (!rPrChange.IsEmpty())
pCStringWriter->WriteString(rPrChange);
pCStringWriter->WriteString(CString(_T("</w:rPr>")));
}
};
......@@ -2183,9 +2201,10 @@ public:
CString Style;
CString Look;
CString Layout;
CString tblPrChange;
bool IsEmpty()
{
return Jc.IsEmpty() && TableInd.IsEmpty() && TableW.IsEmpty() && TableCellMar.IsEmpty() && TableBorders.IsEmpty() && Shd.IsEmpty() && tblpPr.IsEmpty()&& Style.IsEmpty() && Look.IsEmpty();
return Jc.IsEmpty() && TableInd.IsEmpty() && TableW.IsEmpty() && TableCellMar.IsEmpty() && TableBorders.IsEmpty() && Shd.IsEmpty() && tblpPr.IsEmpty()&& Style.IsEmpty() && Look.IsEmpty() && tblPrChange.IsEmpty();
}
CString Write(bool bBandSize, bool bLayout)
{
......@@ -2218,6 +2237,8 @@ public:
sRes.Append(TableCellMar);
if(false == Look.IsEmpty())
sRes.Append(Look);
if(!tblPrChange.IsEmpty())
sRes.Append(tblPrChange);
sRes.Append(_T("</w:tblPr>"));
return sRes;
}
......@@ -2475,5 +2496,157 @@ public:
}
}
};
class TrackRevision
{
public:
CString Author;
CString Date;
long* Id;
CString UserId;
long* vMerge;
long* vMergeOrigin;
rPr* RPr;
XmlUtils::CStringWriter* PPr;
SectPr* sectPr;
CWiterTblPr* tblPr;
XmlUtils::CStringWriter* tblGridChange;
XmlUtils::CStringWriter* trPr;
XmlUtils::CStringWriter* tcPr;
XmlUtils::CStringWriter* content;
TrackRevision()
{
Id = NULL;
vMerge = NULL;
vMergeOrigin = NULL;
RPr = NULL;
PPr = NULL;
sectPr = NULL;
tblPr = NULL;
tblGridChange = NULL;
trPr = NULL;
tcPr = NULL;
content = NULL;
}
~TrackRevision()
{
RELEASEOBJECT(Id);
RELEASEOBJECT(vMerge);
RELEASEOBJECT(vMergeOrigin);
RELEASEOBJECT(RPr);
RELEASEOBJECT(PPr);
RELEASEOBJECT(sectPr);
RELEASEOBJECT(tblPr);
RELEASEOBJECT(tblGridChange);
RELEASEOBJECT(trPr);
RELEASEOBJECT(tcPr);
RELEASEOBJECT(content);
}
bool IsNoEmpty()
{
return !Author.IsEmpty() || !Date.IsEmpty() || NULL != Id;
}
CString ToString(CString sName)
{
XmlUtils::CStringWriter writer;
Write(&writer, sName);
return writer.GetData();
}
void Write(XmlUtils::CStringWriter* pCStringWriter, CString sName)
{
if(IsNoEmpty())
{
pCStringWriter->WriteString(CString(_T("<")));
pCStringWriter->WriteString(sName);
if(NULL != Id)
{
CString sId;sId.Format(_T(" w:id=\"%d\""), *Id);
pCStringWriter->WriteString(sId);
}
if(!Author.IsEmpty())
{
pCStringWriter->WriteString(_T(" w:author=\""));
pCStringWriter->WriteEncodeXmlString(Author);
pCStringWriter->WriteString(_T("\""));
}
if(!Date.IsEmpty())
{
pCStringWriter->WriteString(_T(" w:date=\""));
pCStringWriter->WriteEncodeXmlString(Date);
pCStringWriter->WriteString(_T("\""));
}
if(!UserId.IsEmpty())
{
pCStringWriter->WriteString(_T(" oouserid=\""));
pCStringWriter->WriteEncodeXmlString(UserId);
pCStringWriter->WriteString(_T("\""));
}
if(NULL != vMerge)
{
CString sId;sId.Format(_T(" w:vMerge=\"%d\""), *vMerge);
pCStringWriter->WriteString(sId);
}
if(NULL != vMergeOrigin)
{
CString sId;sId.Format(_T(" w:vMergeOrig=\"%d\""), *vMergeOrigin);
pCStringWriter->WriteString(sId);
}
if(NULL != RPr || NULL != PPr || NULL != sectPr || NULL != tblPr || NULL != tblGridChange || NULL != trPr || NULL != tcPr || NULL != content)
{
pCStringWriter->WriteString(CString(_T(">")));
if(NULL != RPr)
{
RPr->Write(pCStringWriter);
}
if(NULL != PPr)
{
pCStringWriter->WriteString(_T("<w:pPr>"));
pCStringWriter->Write(*PPr);
pCStringWriter->WriteString(_T("</w:pPr>"));
}
if(NULL != sectPr)
{
pCStringWriter->WriteString(_T("<w:sectPr>"));
pCStringWriter->WriteString(sectPr->Write());
pCStringWriter->WriteString(_T("</w:sectPr>"));
}
if(NULL != tblPr)
{
pCStringWriter->WriteString(tblPr->Write(false, true));
}
if(NULL != tblGridChange)
{
pCStringWriter->WriteString(CString(_T("<w:tblGrid>")));
pCStringWriter->Write(*tblGridChange);
pCStringWriter->WriteString(CString(_T("</w:tblGrid>")));
}
if(NULL != trPr)
{
pCStringWriter->WriteString(CString(_T("<w:trPr>")));
pCStringWriter->Write(*trPr);
pCStringWriter->WriteString(CString(_T("</w:trPr>")));
}
if(NULL != tcPr)
{
pCStringWriter->WriteString(CString(_T("<w:tcPr>")));
pCStringWriter->Write(*tcPr);
pCStringWriter->WriteString(CString(_T("</w:tcPr>")));
}
if(NULL != content)
{
pCStringWriter->Write(*content);
}
pCStringWriter->WriteString(CString(_T("</")));
pCStringWriter->WriteString(sName);
pCStringWriter->WriteString(CString(_T(" >")));
}
else
{
pCStringWriter->WriteString(CString(_T(" />")));
}
}
}
};
}
#endif // #ifndef READER_CLASSES
This diff is collapsed.
#ifndef DOCX_BIN_READER_WRITER_DEFINES
#ifndef DOCX_BIN_READER_WRITER_DEFINES
#define DOCX_BIN_READER_WRITER_DEFINES
namespace BinDocxRW
......@@ -13,8 +13,8 @@ const int X_Right_Margin = 15; // 1.5 cm
const int Y_Bottom_Margin = 20; // 2 cm
const int Y_Top_Margin = 20; // 2 cm
const double Y_Default_Header = 12.5; // 1.25 cm
const double Y_Default_Footer = 12.5; // 1.25 cm
const double Y_Default_Header = 12.5; // 1.25 cm расстояние от верха страницы до верха верхнего колонтитула
const double Y_Default_Footer = 12.5; // 1.25 cm расстояние от низа страницы до низа нижнего колонтитула
const int shd_Clear = 0;
const int shd_Nil = 1;
......@@ -133,8 +133,8 @@ extern int g_nCurFormatVersion;
HdrFtr_Even = 3,
HdrFtr_Odd = 4,
HdrFtr_Content = 5,
HdrFtr_Y2 = 6,//
HdrFtr_Y = 7//
HdrFtr_Y2 = 6,//устарел
HdrFtr_Y = 7//устарел
};}
namespace c_oSerNumTypes{enum c_oSerNumTypes
{
......@@ -247,7 +247,8 @@ extern int g_nCurFormatVersion;
Look = 9,
Style = 10,
tblpPr2 = 11,
Layout = 12
Layout = 12,
tblPrChange = 13
};}
namespace c_oSer_tblpPrType{enum c_oSer_tblpPrType
{
......@@ -297,7 +298,9 @@ extern int g_nCurFormatVersion;
Spacing_BeforeAuto = 28,
Spacing_AfterAuto = 29,
FramePr = 30,
SectPr = 31
SectPr = 31,
numPr_Ins = 32,
pPrChange = 33
};}
namespace c_oSerProp_rPrType{enum c_oSerProp_rPrType
{
......@@ -333,7 +336,10 @@ extern int g_nCurFormatVersion;
Shd = 29,
Vanish = 30,
TextOutline = 31,
TextFill = 32
TextFill = 32,
Del = 33,
Ins = 34,
rPrChange = 35
};}
namespace c_oSerProp_rowPrType{enum c_oSerProp_rowPrType
{
......@@ -351,7 +357,10 @@ extern int g_nCurFormatVersion;
WAfterBefore_Type = 11,
After = 12,
Before = 13,
TableHeader = 14
TableHeader = 14,
Del = 15,
Ins = 16,
trPrChange = 17
};}
namespace c_oSerProp_cellPrType{enum c_oSerProp_cellPrType
{
......@@ -361,7 +370,11 @@ extern int g_nCurFormatVersion;
TableCellW = 3,
VAlign = 4,
VMerge = 5,
CellMar = 6
CellMar = 6,
CellDel = 7,
CellIns = 8,
CellMerge = 9,
tcPrChange = 10
};}
namespace c_oSerProp_secPrType{enum c_oSerProp_secPrType
{
......@@ -371,7 +384,8 @@ extern int g_nCurFormatVersion;
headers = 3,
footers = 4,
hdrftrelem = 5,
pageNumType = 6
pageNumType = 6,
sectPrChange = 7
};}
namespace c_oSerProp_secPrSettingsType{enum c_oSerProp_secPrSettingsType
{
......@@ -396,7 +410,9 @@ extern int g_nCurFormatVersion;
OMathPara = 8,
OMath = 9,
Hyperlink = 10,
FldSimple = 11
FldSimple = 11,
Del = 12,
Ins = 13
};}
namespace c_oSerDocTableType{enum c_oSerDocTableType
{
......@@ -409,7 +425,8 @@ extern int g_nCurFormatVersion;
Row_Content = 5,
Cell = 6,
Cell_Pr = 7,
Cell_Content = 8
Cell_Content = 8,
tblGridChange = 9
};}
namespace c_oSerRunType{enum c_oSerRunType
{
......@@ -426,7 +443,8 @@ extern int g_nCurFormatVersion;
fldend = 10,
CommentReference = 11,
pptxDrawing = 12,
object = 14
object = 14,
delText = 15
};}
namespace c_oSerImageType{enum c_oSerImageType
{
......@@ -813,6 +831,23 @@ extern int g_nCurFormatVersion;
Tint = 2,
Shade = 3
};}
namespace c_oSerProp_RevisionType{enum c_oSerProp_RevisionType
{
Author = 0,
Date = 1,
Id = 2,
UserId = 3,
Content = 4,
VMerge = 5,
VMergeOrigin = 6,
pPrChange = 7,
rPrChange = 8,
sectPrChange = 9,
tblGridChange = 10,
tblPrChange = 11,
tcPrChange = 12,
trPrChange = 13
};}
}
#endif // #ifndef DOCX_BIN_READER_WRITER_DEFINES
This diff is collapsed.
......@@ -131,7 +131,7 @@ HEADERS += ../DocWrapper/DocxSerializer.h \
../../XlsxSerializerCom/Writer/BinaryReader.h \
../../XlsxSerializerCom/Writer/CSVWriter.h \
../BinReader/webSettingsWriter.h \
../../Common/FileDownloader.h \
../../Common/FileDownloader/FileDownloader.h \
../BinReader/DefaultThemeWriter.h
unix {
......
......@@ -62,6 +62,7 @@ win32 {
DEFINES += \
LIBXML_READER_ENABLED
INCLUDEPATH += C:/boost_1_58_0
}
#################### WINDOWS #####################
......
#pragma once
#pragma once
#include "SimpleTypes_Base.h"
#include <algorithm>
// Word Office Open Xml (17.18)
// Здесь представлены все простые типы Word из спецификации Office Open Xml (17.18)
namespace SimpleTypes
{
//--------------------------------------------------------------------------------
......@@ -51,7 +51,7 @@ namespace SimpleTypes
// Border 17.18.2 (Part 1)
//--------------------------------------------------------------------------------
// 1- 25- 17.4.67
// Значения с 1-го по 25-ый сделаны по таблице 17.4.67
enum EBorder
{
// No Border
......@@ -1242,7 +1242,7 @@ namespace SimpleTypes
private:
double m_dValue;
bool m_bTrailingPercentSign; // ?
bool m_bTrailingPercentSign; // Есть ли знак процента в конце?
};
......@@ -2885,7 +2885,7 @@ namespace SimpleTypes
{
this->m_eValue = eDefValue;
//
// Инициализируем цвет
FromString( ToString() );
}
......@@ -6469,7 +6469,7 @@ namespace SimpleTypes
//
// Дополнительные типы
namespace SimpleTypes
{
//--------------------------------------------------------------------------------
......@@ -6658,13 +6658,13 @@ namespace SimpleTypes
if ( '0' == wsChar )
{
//
// Ничего не делаем
}
else if ( '1' == wsChar )
{
this->m_eValue ^= nMult;
}
else //
else // Неправильный формат
break;
}
}
......
#pragma once
#pragma once
#ifndef OOX_LOGIC_DRAWING_EXT_INCLUDE_H_
#define OOX_LOGIC_DRAWING_EXT_INCLUDE_H_
......@@ -79,10 +79,10 @@ namespace OOX
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_ReadSingle( oReader, _T("uri"), m_oUri )
WritingElement_ReadAttributes_ReadSingle( oReader, _T("spid"), m_sSpId )
WritingElement_ReadAttributes_Read_if( oReader, _T("uri"), m_oUri )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("spid"), m_sSpId )
WritingElement_ReadAttributes_End( oReader )
}
......@@ -118,7 +118,7 @@ namespace OOX
virtual void fromXML(XmlUtils::CXmlNode& oNode)
{
// TO DO:
// TO DO: Реализовать
}
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
{
......
#include "Annotations.h"
#include "Annotations.h"
#include "Bdo.h"
#include "Paragraph.h"
#include "Annotations.h"
......@@ -11,7 +11,7 @@
#include "../Math/oMathPara.h"
#include "../Math/OMath.h"
// TO DO: :
// TO DO: Нехватающие классы:
// <w:customXml>
// <w:moveFrom>
// <w:moveTo>
......
#include "ParagraphProperty.h"
#include "ParagraphProperty.h"
namespace OOX
{
......@@ -47,7 +47,8 @@ namespace OOX
oNode.ReadAttributeBase( _T("w:author"), m_sAuthor );
oNode.ReadAttributeBase( _T("w:date"), m_oDate );
oNode.ReadAttributeBase( _T("w:id"), m_oID );
oNode.ReadAttributeBase( _T("w:id"), m_oId );
oNode.ReadAttributeBase( _T("oouserid"), m_sUserId );
XmlUtils::CXmlNode oNode_pPr;
......@@ -89,10 +90,17 @@ namespace OOX
sResult += "\" ";
}
if ( m_oID.IsInit() )
if ( m_oId.IsInit() )
{
sResult += "w:id=\"";
sResult += m_oID->ToString();
sResult += m_oId->ToString();
sResult += "\" ";
}
if ( m_sUserId.IsInit() )
{
sResult += "oouserid=\"";
sResult += m_sUserId->GetString();
sResult += "\" ";
}
......@@ -111,11 +119,12 @@ namespace OOX
}
void CPPrChange::ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("w:author"), m_sAuthor )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:date"), m_oDate )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:id"), m_oID )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:id"), m_oId )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("oouserid"), m_sUserId )
WritingElement_ReadAttributes_End( oReader )
}
} // Logic
......
#pragma once
#pragma once
#ifndef OOX_LOGIC_PARAGRAPH_PROPERTY_INCLUDE_H_
#define OOX_LOGIC_PARAGRAPH_PROPERTY_INCLUDE_H_
......@@ -168,7 +168,7 @@ namespace ComplexTypes
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("w:anchorLock"), m_oAnchorLock )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:dropCap"), m_oDropCap )
......@@ -231,7 +231,7 @@ namespace ComplexTypes
oNode.ReadAttributeBase( _T("w:start"), m_oStart );
oNode.ReadAttributeBase( _T("w:startChars"), m_oStartChars );
// . 9.2.1.2 Part4
// См. 9.2.1.2 Part4
if ( !m_oStart.IsInit() )
oNode.ReadAttributeBase( _T("w:left"), m_oStart );
if ( !m_oStartChars.IsInit() )
......@@ -340,7 +340,7 @@ namespace ComplexTypes
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("w:end"), m_oEnd )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:endChars"), m_oEndChars )
......@@ -492,7 +492,7 @@ namespace ComplexTypes
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("w:after"), m_oAfter )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:afterAutospacing"), m_oAfterAutospacing )
......@@ -574,7 +574,7 @@ namespace ComplexTypes
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("w:leader"), m_oLeader )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:pos"), m_oPos )
......@@ -631,7 +631,7 @@ namespace ComplexTypes
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_ReadSingle( oReader, _T("w:val"), m_oVal )
WritingElement_ReadAttributes_End( oReader )
......@@ -684,7 +684,7 @@ namespace ComplexTypes
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_ReadSingle( oReader, _T("w:val"), m_oVal )
WritingElement_ReadAttributes_End( oReader )
......@@ -973,7 +973,8 @@ namespace OOX
nullable<CString > m_sAuthor;
nullable<SimpleTypes::CDateTime > m_oDate;
nullable<SimpleTypes::CDecimalNumber<> > m_oID;
nullable<SimpleTypes::CDecimalNumber<> > m_oId;
nullable<CString > m_sUserId;
nullable<OOX::Logic::CParagraphProperty> m_pParPr;
......
#include "RunProperty.h"
#include "RunProperty.h"
namespace OOX
{
......@@ -37,7 +37,8 @@ namespace OOX
oNode.ReadAttributeBase( _T("w:author"), m_sAuthor );
oNode.ReadAttributeBase( _T("w:date"), m_oDate );
oNode.ReadAttributeBase( _T("w:id"), m_oID );
oNode.ReadAttributeBase( _T("w:id"), m_oId );
oNode.ReadAttributeBase( _T("oouserid"), m_sUserId );
XmlUtils::CXmlNode oNode_rPr;
......@@ -80,10 +81,17 @@ namespace OOX
sResult += "\" ";
}
if ( m_oID.IsInit() )
if ( m_oId.IsInit() )
{
sResult += "w:id=\"";
sResult += m_oID->ToString();
sResult += m_oId->ToString();
sResult += "\" ";
}
if ( m_sUserId.IsInit() )
{
sResult += "oouserid=\"";
sResult += m_sUserId->GetString();
sResult += "\" ";
}
......@@ -102,11 +110,12 @@ namespace OOX
}
void CRPrChange::ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("w:author"), m_sAuthor )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:date"), m_oDate )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:id"), m_oID )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:id"), m_oId )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("oouserid"), m_sUserId )
WritingElement_ReadAttributes_End( oReader )
}
} // Logic
......
#include "SectionProperty.h"
#include "SectionProperty.h"
namespace OOX
{
......@@ -35,6 +35,7 @@ namespace OOX
oNode.ReadAttributeBase( _T("w:author"), m_sAuthor );
oNode.ReadAttributeBase( _T("w:date"), m_oDate );
oNode.ReadAttributeBase( _T("w:id"), m_oId );
oNode.ReadAttributeBase( _T("oouserid"), m_sUserId );
XmlUtils::CXmlNode oNode_sectPr;
......@@ -82,6 +83,13 @@ namespace OOX
sResult += "\" ";
}
if ( m_sUserId.IsInit() )
{
sResult += "oouserid=\"";
sResult += m_sUserId->GetString();
sResult += "\" ";
}
sResult += _T(">");
if ( m_pSecPr.IsInit() )
......@@ -97,11 +105,12 @@ namespace OOX
}
void CSectPrChange::ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("w:author"), m_sAuthor )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:date"), m_oDate )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:id"), m_oId )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("oouserid"), m_sUserId )
WritingElement_ReadAttributes_End( oReader )
}
} // Logic
......
#pragma once
#pragma once
#ifndef OOX_LOGIC_SECTOR_PROPERTY_INCLUDE_H_
#define OOX_LOGIC_SECTOR_PROPERTY_INCLUDE_H_
......@@ -64,7 +64,7 @@ namespace ComplexTypes
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("w:space"), m_oSpace )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:w"), m_oW )
......@@ -135,7 +135,7 @@ namespace ComplexTypes
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("w:charSpace"), m_oCharSpace )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:linePitch"), m_oLinePitch )
......@@ -200,7 +200,7 @@ namespace ComplexTypes
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("r:id"), m_oId )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:type"), m_oType )
......@@ -280,7 +280,7 @@ namespace ComplexTypes
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("w:countBy"), m_oCountBy )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:distance"), m_oDistance )
......@@ -348,7 +348,7 @@ namespace ComplexTypes
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("w:first"), m_oFirst )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:other"), m_oOther )
......@@ -475,7 +475,7 @@ namespace ComplexTypes
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("w:color"), m_oColor )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:frame"), m_oFrame )
......@@ -632,7 +632,7 @@ namespace ComplexTypes
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("r:bottomLeft"), m_oBottomLeft )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("r:bottomRight"), m_oBottomRight )
......@@ -785,7 +785,7 @@ namespace ComplexTypes
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("w:color"), m_oColor )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:frame"), m_oFrame )
......@@ -899,7 +899,7 @@ namespace ComplexTypes
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("w:bottom"), m_oBottom )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:footer"), m_oFooter )
......@@ -988,7 +988,7 @@ namespace ComplexTypes
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("w:chapSep"), m_oChapSep )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:chapStyle"), m_oChapStyle )
......@@ -1071,7 +1071,7 @@ namespace ComplexTypes
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("w:code"), m_oCode )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:h"), m_oH )
......@@ -1132,7 +1132,7 @@ namespace ComplexTypes
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_ReadSingle( oReader, _T("w:val"), m_oVal )
WritingElement_ReadAttributes_End( oReader )
......@@ -1269,7 +1269,7 @@ namespace OOX
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("w:equalWidth"), m_oEqualWidth )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:num"), m_oNum )
......@@ -1612,7 +1612,7 @@ namespace OOX
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("w:display"), m_oDisplay )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:offsetFrom"), m_oOffsetFrom )
......@@ -1661,6 +1661,7 @@ namespace OOX
nullable<CString > m_sAuthor;
nullable<SimpleTypes::CDateTime > m_oDate;
nullable<SimpleTypes::CDecimalNumber<> > m_oId;
nullable<CString > m_sUserId;
// Childs
nullable<CSectionProperty> m_pSecPr;
......@@ -2082,7 +2083,7 @@ namespace OOX
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("w:rsidDel"), m_oRsidDel )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:rsidR"), m_oRsidR )
......
#include "Table.h"
#include "Table.h"
#include "Paragraph.h"
#include "Annotations.h"
#include "Sdt.h"
......@@ -101,7 +101,7 @@ namespace OOX
void CTblGridChange::ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_ReadSingle( oReader, _T("w:id"), m_oId )
WritingElement_ReadAttributes_End( oReader )
......@@ -146,6 +146,7 @@ namespace OOX
oNode.ReadAttributeBase( _T("w:author"), m_sAuthor );
oNode.ReadAttributeBase( _T("w:date"), m_oDate );
oNode.ReadAttributeBase( _T("w:id"), m_oId );
oNode.ReadAttributeBase( _T("oouserid"), m_sUserId );
XmlUtils::CXmlNode oNode_tblPrEx;
......@@ -193,6 +194,13 @@ namespace OOX
sResult += "\" ";
}
if ( m_sUserId.IsInit() )
{
sResult += "oouserid=\"";
sResult += m_sUserId->GetString();
sResult += "\" ";
}
sResult += _T(">");
if ( m_pTblPrEx.IsInit() )
......@@ -205,18 +213,19 @@ namespace OOX
void CTblPrExChange::ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("w:author"), m_sAuthor )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:date"), m_oDate )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:id"), m_oId )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("oouserid"), m_sUserId )
WritingElement_ReadAttributes_End( oReader )
}
//--------------------------------------------------------------------------------
// CTbl 17.4.38 (Part 1)
//--------------------------------------------------------------------------------
// TO DO: :
// TO DO: Нехватающие классы:
// <w:customXml>
// <w:moveFrom>
// <w:moveTo>
......@@ -414,7 +423,7 @@ namespace OOX
// CTr 17.4.79 (Part 1)
//--------------------------------------------------------------------------------
// TO DO: :
// TO DO: Нехватающие классы:
// <w:customXml>
// <w:moveFrom>
// <w:moveTo>
......@@ -654,7 +663,7 @@ namespace OOX
}
void CTr::ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("w:rsidDel"), m_oRsidDel )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:rsidR"), m_oRsidR )
......@@ -666,7 +675,7 @@ namespace OOX
// CTc 17.4.66 (Part 1)
//--------------------------------------------------------------------------------
// TO DO: :
// TO DO: Нехватающие классы:
// <w:altChunk>
// <w:customXml>
// <w:moveFrom>
......@@ -870,7 +879,7 @@ namespace OOX
}
void CTc::ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_ReadSingle( oReader, _T("w:id"), m_sId )
WritingElement_ReadAttributes_End( oReader )
......
#pragma once
#pragma once
#ifndef OOX_LOGIC_TABLE_INCLUDE_H_
#define OOX_LOGIC_TABLE_INCLUDE_H_
......@@ -52,7 +52,7 @@ namespace ComplexTypes
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_ReadSingle( oReader, _T("w:w"), m_oW )
WritingElement_ReadAttributes_End( oReader )
......@@ -256,6 +256,7 @@ namespace OOX
nullable<CString > m_sAuthor;
nullable<SimpleTypes::CDateTime > m_oDate;
nullable<SimpleTypes::CDecimalNumber<> > m_oId;
nullable<CString > m_sUserId;
// Childs
nullable<CTblPrEx > m_pTblPrEx;
......@@ -450,7 +451,7 @@ namespace OOX
// Childs
nullable<OOX::Logic::CTblGrid> m_oTblGrid;
OOX::Logic::CTableProperty* m_oTableProperties; //todooo - m_arrItems, nullable<>
OOX::Logic::CTableProperty* m_oTableProperties; //todooo - выкинуть из m_arrItems, переделать на nullable<>
};
//--------------------------------------------------------------------------------
......@@ -531,7 +532,7 @@ namespace OOX
nullable<SimpleTypes::CLongHexNumber<> > m_oRsidTr;
// Childs
OOX::Logic::CTableRowProperties* m_oTableRowProperties; //todooo - m_arrItems, nullable<>
OOX::Logic::CTableRowProperties* m_oTableRowProperties; //todooo - выкинуть из m_arrItems, переделать на nullable<>
};
//--------------------------------------------------------------------------------
......@@ -613,13 +614,13 @@ namespace OOX
public:
int m_nNumCol; //
int m_nNumCol; // Номер колонки
// Attributes
nullable<CString > m_sId;
// Childs
OOX::Logic::CTableCellProperties* m_oTableCellProperties; //todooo - m_arrItems, nullable<>
OOX::Logic::CTableCellProperties* m_oTableCellProperties; //todooo - выкинуть из m_arrItems, переделать на nullable<>
};
} // namespace Logic
......
#include "TableProperty.h"
#include "TableProperty.h"
namespace OOX
{
......@@ -47,6 +47,7 @@ namespace OOX
oNode.ReadAttributeBase( _T("w:author"), m_sAuthor );
oNode.ReadAttributeBase( _T("w:date"), m_oDate );
oNode.ReadAttributeBase( _T("w:id"), m_oId );
oNode.ReadAttributeBase( _T("oouserid"), m_sUserId );
XmlUtils::CXmlNode oNode_tblPr;
......@@ -94,6 +95,13 @@ namespace OOX
sResult += "\" ";
}
if ( m_sUserId.IsInit() )
{
sResult += "oouserid=\"";
sResult += m_sUserId->GetString();
sResult += "\" ";
}
sResult += _T(">");
if ( m_pTblPr.IsInit() )
......@@ -109,11 +117,12 @@ namespace OOX
}
void CTblPrChange::ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("w:author"), m_sAuthor )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:date"), m_oDate )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:id"), m_oId )
WritingElement_ReadAttributes_Read_if ( oReader, _T("oouserid"), m_sUserId )
WritingElement_ReadAttributes_End( oReader )
}
} // namespace Logic
......@@ -165,6 +174,7 @@ namespace OOX
oNode.ReadAttributeBase( _T("w:author"), m_sAuthor );
oNode.ReadAttributeBase( _T("w:date"), m_oDate );
oNode.ReadAttributeBase( _T("w:id"), m_oId );
oNode.ReadAttributeBase( _T("oouserid"), m_sUserId );
XmlUtils::CXmlNode oNode_tblPr;
......@@ -212,6 +222,13 @@ namespace OOX
sResult += "\" ";
}
if ( m_sUserId.IsInit() )
{
sResult += "oouserid=\"";
sResult += m_sUserId->GetString();
sResult += "\" ";
}
sResult += _T(">");
if ( m_pTrPr.IsInit() )
......@@ -228,11 +245,12 @@ namespace OOX
void CTrPrChange::ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("w:author"), m_sAuthor )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:date"), m_oDate )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:id"), m_oId )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("oouserid"), m_sUserId )
WritingElement_ReadAttributes_End( oReader )
}
} // namespace Logic
......@@ -285,6 +303,7 @@ namespace OOX
oNode.ReadAttributeBase( _T("w:author"), m_sAuthor );
oNode.ReadAttributeBase( _T("w:date"), m_oDate );
oNode.ReadAttributeBase( _T("w:id"), m_oId );
oNode.ReadAttributeBase( _T("oouserid"), m_sUserId );
XmlUtils::CXmlNode oNode_tcPr;
......@@ -332,6 +351,13 @@ namespace OOX
sResult += "\" ";
}
if ( m_sUserId.IsInit() )
{
sResult += "oouserid=\"";
sResult += m_sUserId->GetString();
sResult += "\" ";
}
sResult += _T(">");
if ( m_pTcPr.IsInit() )
......@@ -347,11 +373,12 @@ namespace OOX
}
void CTcPrChange::ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("w:author"), m_sAuthor )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:date"), m_oDate )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:id"), m_oId )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("oouserid"), m_sUserId )
WritingElement_ReadAttributes_End( oReader )
}
} // namespace Logic
......
#pragma once
#pragma once
#ifndef OOX_LOGIC_TABLE_PROPERTY_INCLUDE_H_
#define OOX_LOGIC_TABLE_PROPERTY_INCLUDE_H_
......@@ -53,7 +53,7 @@ namespace ComplexTypes
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_ReadSingle( oReader, _T("w:val"), m_oVal )
WritingElement_ReadAttributes_End( oReader )
......@@ -105,7 +105,7 @@ namespace ComplexTypes
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_ReadSingle( oReader, _T("w:type"), m_oType )
WritingElement_ReadAttributes_End( oReader )
......@@ -318,7 +318,7 @@ namespace ComplexTypes
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("w:firstColumn"), m_oFirstColumn )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:firstRow"), m_oFirstRow )
......@@ -359,7 +359,7 @@ namespace ComplexTypes
}
virtual void FromXML(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_ReadSingle( oReader, _T("w:val"), m_oVal )
WritingElement_ReadAttributes_End( oReader )
......@@ -461,7 +461,7 @@ namespace ComplexTypes
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("w:bottomFromText"), m_oBottomFromText )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:horzAnchor"), m_oHorzAnchor )
......@@ -825,6 +825,7 @@ namespace OOX
nullable<CString > m_sAuthor;
nullable<SimpleTypes::CDateTime > m_oDate;
nullable<SimpleTypes::CDecimalNumber<> > m_oId;
nullable<CString > m_sUserId;
// Childs
nullable<CTableProperty> m_pTblPr;
......@@ -1077,7 +1078,7 @@ namespace ComplexTypes
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("w:hRule"), m_oHRule )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:val"), m_oVal )
......@@ -1127,6 +1128,7 @@ namespace OOX
nullable<CString > m_sAuthor;
nullable<SimpleTypes::CDateTime > m_oDate;
nullable<SimpleTypes::CDecimalNumber<> > m_oId;
nullable<CString > m_sUserId;
// Childs
nullable<CTableRowProperties> m_pTrPr;
......@@ -1339,6 +1341,7 @@ namespace ComplexTypes
oNode.ReadAttributeBase( _T("w:id"), m_oId );
oNode.ReadAttributeBase( _T("w:vMerge"), m_oVMerge );
oNode.ReadAttributeBase( _T("w:vMergeOrig"), m_oVMergeOrig );
oNode.ReadAttributeBase( _T("oouserid"), m_sUserId );
}
virtual void FromXML(XmlUtils::CXmlLiteReader& oReader)
{
......@@ -1363,19 +1366,27 @@ namespace ComplexTypes
ComplexTypes_WriteAttribute( _T("w:vMerge=\""), m_oVMerge );
ComplexTypes_WriteAttribute( _T("w:vMergeOrig=\""), m_oVMergeOrig );
if ( m_sUserId.IsInit() )
{
sResult += _T("oouserid=\"");
sResult += m_sUserId->GetString();
sResult += _T("\" ");
}
return sResult;
}
private:
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("w:author"), m_sAuthor )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:date"), m_oDate )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:id"), m_oId )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:vMerge"), m_oVMerge )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:vMergeOrig"), m_oVMergeOrig )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("oouserid"), m_sUserId )
WritingElement_ReadAttributes_End( oReader )
}
......@@ -1386,6 +1397,7 @@ namespace ComplexTypes
nullable<SimpleTypes::CDecimalNumber<> > m_oId;
nullable<SimpleTypes::CAnnotationVMerge<> > m_oVMerge;
nullable<SimpleTypes::CAnnotationVMerge<> > m_oVMergeOrig;
nullable<CString > m_sUserId;
};
//--------------------------------------------------------------------------------
......@@ -1425,7 +1437,7 @@ namespace ComplexTypes
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_ReadSingle( oReader, _T("w:val"), m_oVal )
WritingElement_ReadAttributes_End( oReader )
......@@ -1474,7 +1486,7 @@ namespace ComplexTypes
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_ReadSingle( oReader, _T("w:val"), m_oVal )
WritingElement_ReadAttributes_End( oReader )
......@@ -1825,6 +1837,7 @@ namespace OOX
nullable<CString > m_sAuthor;
nullable<SimpleTypes::CDateTime > m_oDate;
nullable<SimpleTypes::CDecimalNumber<> > m_oId;
nullable<CString > m_sUserId;
// Childs
nullable<CTableCellProperties> m_pTcPr;
......@@ -1882,7 +1895,7 @@ namespace OOX
WritingElement_ReadNode( oNode, oChild, _T("w:headers"), m_oHeaders );
WritingElement_ReadNode( oNode, oChild, _T("w:hideMark"), m_oHideMark );
// "hMerge", "hmerge"
// В списке аттрибутов написано "hMerge", а в примере "hmerge"
WritingElement_ReadNode( oNode, oChild, _T("w:hmerge"), m_oHMerge );
if ( !m_oHMerge.IsInit() )
WritingElement_ReadNode( oNode, oChild, _T("w:hMerge"), m_oHMerge );
......@@ -1900,7 +1913,7 @@ namespace OOX
WritingElement_ReadNode( oNode, oChild, _T("w:textDirection"), m_oTextDirection );
WritingElement_ReadNode( oNode, oChild, _T("w:vAlign"), m_oVAlign );
// "vMerge", "vmerge"
// В списке аттрибутов написано "vMerge", а в примере "vmerge"
WritingElement_ReadNode( oNode, oChild, _T("w:vmerge"), m_oVMerge );
if ( !m_oVMerge.IsInit() )
WritingElement_ReadNode( oNode, oChild, _T("w:vMerge"), m_oVMerge );
......@@ -1922,7 +1935,7 @@ namespace OOX
else if ( _T("w:gridSpan") == sName ) m_oGridSpan = oReader;
else if ( _T("w:headers") == sName ) m_oHeaders = oReader;
else if ( _T("w:hideMark") == sName ) m_oHideMark = oReader;
// "hMerge", "hmerge"
// В списке аттрибутов написано "hMerge", а в примере "hmerge"
else if ( _T("w:hmerge") == sName ) m_oHMerge = oReader;
else if ( _T("w:hMerge") == sName ) m_oHMerge = oReader;
else if ( _T("w:noWrap") == sName ) m_oNoWrap = oReader;
......@@ -1934,7 +1947,7 @@ namespace OOX
else if ( _T("w:tcW") == sName ) m_oTcW = oReader;
else if ( _T("w:textDirection") == sName ) m_oTextDirection = oReader;
else if ( _T("w:vAlign") == sName ) m_oVAlign = oReader;
// "vMerge", "vmerge"
// В списке аттрибутов написано "vMerge", а в примере "vmerge"
else if ( _T("w:vmerge") == sName ) m_oVMerge = oReader;
else if ( _T("w:vMerge") == sName ) m_oVMerge = oReader;
}
......
#pragma once
#pragma once
#include "../../Common/ComplexTypes.h"
......@@ -512,7 +512,7 @@ namespace OOX
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_ReadSingle( oReader, _T("m:alnAt"), m_alnAt )
WritingElement_ReadAttributes_End( oReader )
......@@ -551,6 +551,10 @@ namespace OOX
CWCharWrapper sName = oReader.GetName();
if ( _T("w:rPr") == sName )
m_oRPr = oReader;
else if ( _T("w:ins") == sName )
m_oIns = oReader;
else if ( _T("w:del") == sName )
m_oDel = oReader;
}
}
virtual CString toXML() const
......@@ -559,6 +563,10 @@ namespace OOX
if ( m_oRPr.IsInit() )
sResult += m_oRPr->toXML();
if ( m_oIns.IsInit() )
sResult += m_oIns->toXML();
if ( m_oDel.IsInit() )
sResult += m_oDel->toXML();
sResult += _T("</m:ctrlPr>");
......@@ -572,6 +580,8 @@ namespace OOX
public:
//Childs
nullable<OOX::Logic::CRunProperty> m_oRPr;
nullable<OOX::Logic::CIns> m_oIns;
nullable<OOX::Logic::CDel> m_oDel;
};
//--------------------------------------------------------------------------------
// CDelimiterPr 22.1.2.31 (Delimiter Properties)
......@@ -688,7 +698,7 @@ namespace OOX
else if ( _T("m:e") == sName )
{
pItem = new CElement( oReader );
//
//нужно заранее знать колисество столбцов для отрисовки
m_lColumn++;
}
......@@ -1422,7 +1432,7 @@ namespace OOX
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
//
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_ReadSingle( oReader, _T("m:val"), m_val )
WritingElement_ReadAttributes_End( oReader )
......
#include "FileDownloader.h"
#include <atlbase.h>
#include <atlstr.h>
#include <wininet.h>
#pragma comment(lib, "Wininet")
......@@ -23,34 +25,38 @@ public :
CFileDownloaderBaseWin(std::wstring sFileUrl, bool bDelete = true) :
CFileDownloaderBase(sFileUrl, bDelete)
{
m_pFile = NULL;
}
virtual ~CFileDownloaderBaseWin()
{
if ( m_pFile )
{
::fclose( m_pFile );
m_pFile = NULL;
}
}
virtual int DownloadFile()
{
CoInitialize ( NULL );
if ( S_OK != _DownloadFile ( m_sFileUrl ) )
{
HRESULT hrResultAll = DownloadFileAll(m_sFileUrl, m_sFilePath);
if (S_OK != hrResultAll)
{
m_bRunThread = FALSE;
CoUninitialize ();
return S_FALSE;
}
}
m_bRunThread = FALSE;
CoUninitialize ();
m_bComplete = true;
return S_OK;
}
protected:
FILE *m_pFile; // Хэндл на временный файл
unsigned int _DownloadFile(std::wstring sFileUrl)
{
// Проверяем состояние соединения
......@@ -101,7 +107,7 @@ protected:
{
// Чтение частями доступно
LONGLONG nStartByte = 0;
while ( m_bRunThread )
while ( true )
{
// Если закачали весь файл - то выходим
if ( nStartByte == nFileSize - 1 )
......@@ -133,8 +139,8 @@ protected:
// Пишем в файл
::fwrite( (BYTE*)arrBuffer, 1, dwBytesDownload, m_pFile );
::fflush( m_pFile );
// Проверка на приостановку
CheckSuspend ();
NSThreads::Sleep(10);
}
}
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment