Compare commits

..

15 Commits

Author SHA1 Message Date
69b4a09475 builder bugs 2017-06-28 14:23:32 +03:00
ab360be66a Merge commit 'bab6e40c2b2267c9cec4c167c93361b2fafe7e8d' into develop 2017-06-28 13:18:36 +03:00
539cb2f355 Merge remote-tracking branch 'origin/release/v4.4.1' into develop 2017-06-28 12:25:53 +03:00
7c9be7e2eb XlsFormat ... 2017-06-27 18:53:40 +03:00
bad2992903 . 2017-06-27 16:41:22 +03:00
d405cd4e83 XlsFormat ... 2017-06-27 16:33:25 +03:00
f632855006 . 2017-06-27 15:30:38 +03:00
48641d5bde XlsFormat - .. 2017-06-27 14:56:22 +03:00
d88ae6d3f4 . 2017-06-27 14:48:17 +03:00
e9ad1202ff Merge remote-tracking branch 'origin/release/v4.4.1' into develop 2017-06-27 13:29:59 +03:00
1fc9280ab3 . 2017-06-27 13:26:52 +03:00
28ebf5aaa6 Merge branch 'develop' of https://github.com/ONLYOFFICE/core into develop
* 'develop' of https://github.com/ONLYOFFICE/core:
  XlsFormat - connections records
  "60% - Accent1 2" -> "60% - Accent1"
  .
  x2t version up 2.4.466
  XlsFormat - external data records
  Decryptors ... small refactoring
  moveRange
  moveFrom/moveTo open/save
  .
  PptFormatReader - decrypt ppt images
  .
  PprFormatReader - read encrypted files
  x14:conditionalFormatting DxfId starts from 0
2017-06-26 19:19:13 +03:00
8f5967356d up 2017-06-26 19:17:29 +03:00
bc7d73667d XlsFormat - connections records 2017-06-26 17:52:14 +03:00
a434ae2cc4 "60% - Accent1 2" -> "60% - Accent1" 2017-06-26 17:11:36 +03:00
118 changed files with 2328 additions and 299 deletions

View File

@ -58,7 +58,7 @@
#include <boost/format.hpp>
namespace DocFormatUtils
namespace DocFileFormat
{
typedef unsigned char Bool8;
typedef unsigned short Bool16;

View File

@ -32,8 +32,6 @@
#include "AnnotationReferenceDescriptor.h"
using namespace DocFormatUtils;
namespace DocFileFormat
{
ByteStructure* AnnotationReferenceDescriptor::ConstructObject(VirtualStreamReader* reader, int length)

View File

@ -34,8 +34,6 @@
#include "IVisitable.h"
#include "Global.h"
using namespace DocFormatUtils;
namespace DocFileFormat
{
typedef enum _BorderType

View File

@ -33,8 +33,6 @@
#include "../Common/FormatUtils.h"
using namespace DocFormatUtils;
namespace DocFileFormat
{
class DateAndTime

View File

@ -33,8 +33,6 @@
#include "DrawingPrimitives.h"
#include "VirtualStreamReader.h"
using namespace DocFormatUtils;
namespace DocFileFormat
{
DrawingPrimitive * DrawingPrimitive::Create(VirtualStreamReader* reader, int length, short dpk)

View File

@ -34,8 +34,6 @@
#include "VirtualStreamReader.h"
#include "../../ASCOfficeXlsFile2/source/XlsFormat/Crypt/Decryptor.h"
using namespace DocFormatUtils;
namespace DocFileFormat
{
typedef enum FibVersion

View File

@ -72,7 +72,7 @@ public:
if (m_Data)
{
rdUShort = DocFormatUtils::FormatUtils::BytesToUInt16 (m_Data, m_Position, m_Size);
rdUShort = DocFileFormat::FormatUtils::BytesToUInt16 (m_Data, m_Position, m_Size);
m_Position += sizeof(rdUShort);
}
@ -85,7 +85,7 @@ public:
if (m_Data)
{
rdShort = DocFormatUtils::FormatUtils::BytesToInt16 (m_Data, m_Position, m_Size);
rdShort = DocFileFormat::FormatUtils::BytesToInt16 (m_Data, m_Position, m_Size);
m_Position += sizeof(rdShort);
}
@ -98,7 +98,7 @@ public:
if (m_Data)
{
rdInt = DocFormatUtils::FormatUtils::BytesToInt32 (m_Data, m_Position, m_Size);
rdInt = DocFileFormat::FormatUtils::BytesToInt32 (m_Data, m_Position, m_Size);
m_Position += sizeof(rdInt);
}
@ -111,7 +111,7 @@ public:
if (m_Data )
{
rdUInt = DocFormatUtils::FormatUtils::BytesToUInt32 (m_Data, m_Position, m_Size);
rdUInt = DocFileFormat::FormatUtils::BytesToUInt32 (m_Data, m_Position, m_Size);
m_Position += sizeof(rdUInt);
}

View File

@ -60,7 +60,7 @@ namespace DocFileFormat
_size.cx = Right - Left;
_size.cy = Bottom - Top;
rcgBounds = DocFormatUtils::Rectangle (_point, _size);
rcgBounds = DocFileFormat::Rectangle (_point, _size);
}
virtual ~ChildAnchor()
@ -75,7 +75,7 @@ namespace DocFileFormat
public:
/// Rectangle that describes the bounds of the anchor
DocFormatUtils::Rectangle rcgBounds;
DocFileFormat::Rectangle rcgBounds;
int Left;
int Top;
int Right;

View File

@ -64,7 +64,7 @@ namespace DocFileFormat
oSize.cx = ( right - left );
oSize.cy = ( bottom - top );
rcgBounds = DocFormatUtils::Rectangle(oPoint,oSize);
rcgBounds = DocFileFormat::Rectangle(oPoint,oSize);
}
virtual ~GroupShapeRecord()
@ -77,6 +77,6 @@ namespace DocFileFormat
return new GroupShapeRecord( _reader, bodySize, typeCode, version, instance );
}
DocFormatUtils::Rectangle rcgBounds;
DocFileFormat::Rectangle rcgBounds;
};
}

View File

@ -32,8 +32,6 @@
#include "Spa.h"
#include "VirtualStreamReader.h"
using namespace DocFormatUtils;
namespace DocFileFormat
{

View File

@ -488,7 +488,7 @@ namespace DocFileFormat
{
for ( unsigned int i = 0, nSize = _grid->size(); i < nSize; i++ )
{
if(_grid->at(i) % DocFormatUtils::gc_nZeroWidth != 0)
if(_grid->at(i) % DocFileFormat::gc_nZeroWidth != 0)
{
bWriteGridCol = true;
break;

View File

@ -44,6 +44,8 @@
#include "../../DesktopEditor/common/File.h"
#include "../../DesktopEditor/raster/BgraFrame.h"
using namespace DocFileFormat;
typedef struct
{
DWORD iType; // Record type EMR_HEADER

View File

@ -1441,7 +1441,7 @@ namespace DocFileFormat
{
if ((style != NULL) && (anchor != NULL))
{
DocFormatUtils::Rectangle bounds = anchor->rcgBounds;
DocFileFormat::Rectangle bounds = anchor->rcgBounds;
if (twistDimensions)
{

View File

@ -197,20 +197,20 @@ public:
int cchSize = 1;
cch = ReadBytes( cchSize, true );
int xstzSize = DocFormatUtils::FormatUtils::BytesToUChar( cch, 0, cchSize ) * 1;
int xstzSize = DocFileFormat::FormatUtils::BytesToUChar( cch, 0, cchSize ) * 1;
xstz = ReadBytes(xstzSize, true);
DocFormatUtils::FormatUtils::GetSTLCollectionFromBytes<std::wstring>( &wstrResult, xstz, xstzSize, ENCODING_WINDOWS_1250 );
DocFileFormat::FormatUtils::GetSTLCollectionFromBytes<std::wstring>( &wstrResult, xstz, xstzSize, ENCODING_WINDOWS_1250 );
}
else
{
int cchSize = 2;
cch = ReadBytes( cchSize, true );
int xstzSize = DocFormatUtils::FormatUtils::BytesToInt16( cch, 0, cchSize ) * 2;
int xstzSize = DocFileFormat::FormatUtils::BytesToInt16( cch, 0, cchSize ) * 2;
xstz = ReadBytes(xstzSize, true);
DocFormatUtils::FormatUtils::GetSTLCollectionFromBytes<std::wstring>( &wstrResult, xstz, xstzSize, ENCODING_UTF16 );
DocFileFormat::FormatUtils::GetSTLCollectionFromBytes<std::wstring>( &wstrResult, xstz, xstzSize, ENCODING_UTF16 );
}
RELEASEARRAYOBJECTS(xstz);
@ -234,7 +234,7 @@ public:
//dont read the terminating zero
unsigned char* stringBytes = ReadBytes( ( cch * 2 ), true );
DocFormatUtils::FormatUtils::GetSTLCollectionFromBytes<std::wstring>( &result, stringBytes, ( ( cch * 2 ) - 2 ), ENCODING_UTF16 );
DocFileFormat::FormatUtils::GetSTLCollectionFromBytes<std::wstring>( &result, stringBytes, ( ( cch * 2 ) - 2 ), ENCODING_UTF16 );
RELEASEARRAYOBJECTS( stringBytes );
}
@ -278,7 +278,7 @@ public:
//dont read the terminating zero
stringBytes = ReadBytes( cch, true );
DocFormatUtils::FormatUtils::GetSTLCollectionFromBytes<std::wstring>( &result, stringBytes, ( cch - 1 ), ENCODING_WINDOWS_1250);
DocFileFormat::FormatUtils::GetSTLCollectionFromBytes<std::wstring>( &result, stringBytes, ( cch - 1 ), ENCODING_WINDOWS_1250);
}
RELEASEARRAYOBJECTS( stringBytes );

View File

@ -235,7 +235,7 @@ void Compute_HatchFill(draw_hatch * image_style,oox::oox_hatch_fill_ptr fill)
int style =0;
if (image_style->draw_style_)style = image_style->draw_style_->get_type();
int angle = image_style->draw_rotation_ ? (int)(0.5 + *image_style->draw_rotation_/10.) : 0;
int angle = (int)(0.5 + *image_style->draw_rotation_/10.);
if (image_style->draw_color_)fill->color_ref = image_style->draw_color_->get_hex_value();

View File

@ -626,7 +626,6 @@ public:
// header_footer_content_impl content_;
};
CP_REGISTER_OFFICE_ELEMENT2(style_footer_first);
/// style:header-left
class style_header_left : public office_element_impl<style_header_left>, public header_footer_impl

View File

@ -342,6 +342,14 @@
<Filter
Name="Common"
>
<File
RelativePath="..\..\..\ASCOfficeXlsFile2\source\XlsFormat\Binary\CFRecord.cpp"
>
</File>
<File
RelativePath="..\..\..\ASCOfficeXlsFile2\source\XlsFormat\Binary\CFStream.cpp"
>
</File>
<File
RelativePath="..\..\..\XlsxSerializerCom\Reader\ChartFromToBinary.cpp"
>

View File

@ -36,8 +36,8 @@
#include "BinSmartPointers.h"
#include "../Logic/GlobalWorkbookInfo.h"
#include <common.h>
#include <Auxiliary/HelpFunc.h>
#include "../../Common/common.h"
#include "../Auxiliary/HelpFunc.h"
#include "../../../Common/DocxFormat/Source/Base/unicode_util.h"
namespace XLS

View File

@ -31,6 +31,9 @@
*/
#include "DBQueryExt.h"
#include "../Biff_structures/ConnGrbitDbtWeb.h"
#include "../Biff_structures/ConnGrbitDbtOledb.h"
#include "../Biff_structures/ConnGrbitDbtAdo.h"
namespace XLS
{
@ -52,10 +55,44 @@ BaseObjectPtr DBQueryExt::clone()
void DBQueryExt::readFields(CFRecord& record)
{
#pragma message("####################### DBQueryExt record is not implemented")
Log::error("DBQueryExt record is not implemented.");
unsigned short flags1, flags2;
record >> frtHeaderOld >> dbt >> flags1;
fMaintain = GETBIT(flags1, 0);
fNewQuery = GETBIT(flags1, 1);
fImportXmlSource = GETBIT(flags1, 2);
fSPListSrc = GETBIT(flags1, 3);
fSPListReinitCache = GETBIT(flags1, 4);
fSrcIsXml = GETBIT(flags1, 7);
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
switch(dbt)
{
case 4: grbitDbt.reset(new ConnGrbitDbtWeb); break;
case 5: grbitDbt.reset(new ConnGrbitDbtOledb); break;
case 7: grbitDbt.reset(new ConnGrbitDbtAdo); break;
}
record >> flags1 >> bVerDbqueryEdit >> bVerDbqueryRefreshed >> bVerDbqueryRefreshableMin;
fTxtWiz = GETBIT(flags1, 0);
fTableNames = GETBIT(flags1, 1);
record.skipNunBytes(3); //unused
record >> coledb >> cstFuture >> wRefreshInterval >> wHtmlFmt >> cwParamFlags;
PBT val1;
for (unsigned short i = 0; i < cwParamFlags; i++)
{
record >> val1;
rgPbt.push_back(val1);
}
char val2;
for (unsigned short i = 0; i < cstFuture; i++)
{
record >> val2;
rgbFutureBytes += val2;
}
}
} // namespace XLS

View File

@ -32,12 +32,12 @@
#pragma once
#include "BiffRecord.h"
#include "../Biff_structures/FrtHeaderOld.h"
#include "../Biff_structures/PBT.h"
namespace XLS
{
// Logical representation of DBQueryExt record in BIFF8
class DBQueryExt: public BiffRecord
{
BIFF_RECORD_DEFINE_TYPE_INFO(DBQueryExt)
@ -47,13 +47,32 @@ public:
~DBQueryExt();
BaseObjectPtr clone();
void readFields(CFRecord& record);
static const ElementType type = typeDBQueryExt;
static const ElementType type = typeDBQueryExt;
FrtHeaderOld frtHeaderOld;
unsigned short dbt; //enum DataSourceType
bool fMaintain;
bool fNewQuery;
bool fImportXmlSource;
bool fSPListSrc;
bool fSPListReinitCache;
bool fSrcIsXml;
BiffStructurePtr grbitDbt;
bool fTxtWiz;
bool fTableNames;
unsigned char bVerDbqueryEdit; //DataFunctionalityLevel
unsigned char bVerDbqueryRefreshed;
unsigned char bVerDbqueryRefreshableMin;
unsigned short coledb;
unsigned short cstFuture;
unsigned short wRefreshInterval;
unsigned short wHtmlFmt;
unsigned short cwParamFlags;
std::vector<PBT> rgPbt;
std::string rgbFutureBytes;
};
} // namespace XLS

View File

@ -44,7 +44,6 @@ DConName::~DConName()
{
}
BaseObjectPtr DConName::clone()
{
return BaseObjectPtr(new DConName(*this));
@ -52,9 +51,14 @@ BaseObjectPtr DConName::clone()
void DConName::readFields(CFRecord& record)
{
#pragma message("####################### DConName record is not implemented")
Log::error("DConName record is not implemented.");
record >> stName >> cchFile;
if (cchFile > 0 && cchFile < 0xffff)
{
stFile.setSize(cchFile);
record >> stFile;
}
// skip unused
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
}

View File

@ -32,12 +32,11 @@
#pragma once
#include "BiffRecord.h"
#include "../Biff_structures/BiffString.h"
namespace XLS
{
// Logical representation of DConName record in BIFF8
class DConName: public BiffRecord
{
BIFF_RECORD_DEFINE_TYPE_INFO(DConName)
@ -47,12 +46,14 @@ public:
~DConName();
BaseObjectPtr clone();
void readFields(CFRecord& record);
static const ElementType type = typeDConName;
XLUnicodeString stName;
unsigned short cchFile;
XLUnicodeStringNoCch stFile;
};
} // namespace XLS

View File

@ -31,6 +31,11 @@
*/
#include "DConn.h"
#include "../Biff_structures/DConnConnectionWeb.h"
#include "../Biff_structures/DConnConnectionOleDb.h"
#include "../Biff_structures/ConnGrbitDbtWeb.h"
#include "../Biff_structures/ConnGrbitDbtOledb.h"
#include "../Biff_structures/ConnGrbitDbtAdo.h"
namespace XLS
{
@ -52,10 +57,65 @@ BaseObjectPtr DConn::clone()
void DConn::readFields(CFRecord& record)
{
#pragma message("####################### DConn record is not implemented")
Log::error("DConn record is not implemented.");
unsigned short flags1, reserved1;
unsigned char flags2, reserved2;
record >> frtHeaderOld >> dbt >> flags1 >> cParams >> reserved1 >> flags2 >> reserved2;
fSavePwd = GETBIT(flags1, 0);
fTablesOnlyHtml = GETBIT(flags1, 1);
fTableNames = GETBIT(flags1, 2);
fDeleted = GETBIT(flags1, 3);
fStandAlone = GETBIT(flags1, 4);
fAlwaysUseConnectionFile = GETBIT(flags1, 5);
fBackgroundQuery= GETBIT(flags1, 6);
fRefreshOnLoad = GETBIT(flags1, 7);
fSaveData = GETBIT(flags1, 8);
fMaintain = GETBIT(flags1, 0);
fNewQuery = GETBIT(flags1, 1);
fImportXmlSource= GETBIT(flags1, 2);
fSPListSrc = GETBIT(flags1, 3);
fSPListReinitCache = GETBIT(flags1, 4);
fSrcIsXml = GETBIT(flags1, 7);
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
switch (dbt)
{
case 4: grbitDbt.reset(new ConnGrbitDbtWeb); break;
case 5: grbitDbt.reset(new ConnGrbitDbtOledb); break;
case 7: grbitDbt.reset(new ConnGrbitDbtAdo); break;
}
if (grbitDbt)
{
record >> *grbitDbt;
}
record >> bVerDbqueryEdit >> bVerDbqueryRefreshed >> bVerDbqueryRefreshableMin >> wRefreshInterval >> wHtmlFmt >> wHtmlFmt >> rcc >> credMethod;
record >> rgchSourceDataFile >> rgchSourceConnectionFile >> rgchConnectionName >> rgchConnectionDesc >> rgchSSOApplicationID >> tableNames;
for ( unsigned short i = 0; i < cParams; i++)
{
DConnParameter val;
params.push_back(val);
}
switch (dbt)
{
case 1: connection.reset(new XLUnicodeStringSegmented); break;
case 4: connection.reset(new DConnConnectionWeb); break;
case 5: connection.reset(new DConnConnectionOleDb); break;
case 6: connection_txtQry.readFields(record); break;
}
if (connection)
record >> *connection;
record >> rgbSQL >> rgbSQLSav >> rgbEditWebPage >> id;
int skip = record.getDataSize() - record.getRdPtr();
record.skipNunBytes(skip);
}
} // namespace XLS

View File

@ -31,13 +31,15 @@
*/
#pragma once
#include "BiffRecord.h"
#include "TxtQry.h"
#include "../Biff_structures/FrtHeaderOld.h"
#include "../Biff_structures/DConnParameter.h"
#include "../Biff_structures/DConnId.h"
#include "../Biff_structures/DConnStringSequence.h"
namespace XLS
{
// Logical representation of DConn record in BIFF8
class DConn: public BiffRecord
{
BIFF_RECORD_DEFINE_TYPE_INFO(DConn)
@ -47,13 +49,54 @@ public:
~DConn();
BaseObjectPtr clone();
void readFields(CFRecord& record);
static const ElementType type = typeDConn;
static const ElementType type = typeDConn;
FrtHeaderOld frtHeaderOld;
unsigned short dbt;
bool fSavePwd;
bool fTablesOnlyHtml;
bool fTableNames;
bool fDeleted;
bool fStandAlone;
bool fAlwaysUseConnectionFile;
bool fBackgroundQuery;
bool fRefreshOnLoad;
bool fSaveData;
unsigned short cParams;
bool fMaintain;
bool fNewQuery;
bool fImportXmlSource;
bool fSPListSrc;
bool fSPListReinitCache;
bool fSrcIsXml;
BiffStructurePtr grbitDbt;
unsigned char bVerDbqueryEdit;
unsigned char bVerDbqueryRefreshed;
unsigned char bVerDbqueryRefreshableMin;
unsigned short wRefreshInterval;
unsigned short wHtmlFmt;
_UINT32 rcc;
unsigned char credMethod;
XLUnicodeStringSegmented rgchSourceDataFile;
XLUnicodeStringSegmented rgchSourceConnectionFile;
XLUnicodeStringSegmented rgchConnectionName;
XLUnicodeStringSegmented rgchConnectionDesc;
XLUnicodeStringSegmented rgchSSOApplicationID;
XLUnicodeStringSegmented tableNames;
std::vector<DConnParameter> params;
BiffStructurePtr connection;
TxtQry connection_txtQry;
DConnStringSequence rgbSQL;
DConnStringSequence rgbSQLSav;
DConnStringSequence rgbEditWebPage;
DConnId id;
};
} // namespace XLS

View File

@ -32,8 +32,8 @@
#pragma once
#include "BiffRecord.h"
#include "../Biff_structures/FrtHeaderOld.h"
#include "../Biff_structures/BiffString.h"
#include "../Biff_structures/FrtHeaderOld.h"
namespace XLS
{

View File

@ -35,16 +35,6 @@
namespace XLS
{
Fbi2::Fbi2()
{
}
Fbi2::~Fbi2()
{
}
BaseObjectPtr Fbi2::clone()
{
return BaseObjectPtr(new Fbi2(*this));
@ -52,9 +42,9 @@ BaseObjectPtr Fbi2::clone()
void Fbi2::readFields(CFRecord& record)
{
#pragma message("####################### Fbi2 record is not implemented")
Log::error("Fbi2 record is not implemented.");
//record >> some_value;
unsigned short val;
record >> dmixBasis >> dmiyBasis >> twpHeightBasis >> val >> ifnt;
scab = (val != 0);
}
} // namespace XLS

View File

@ -32,25 +32,31 @@
#pragma once
#include "BiffRecord.h"
#include "../Biff_structures/FontIndex.h"
namespace XLS
{
// Logical representation of Fbi2 record in BIFF8
class Fbi2: public BiffRecord
{
BIFF_RECORD_DEFINE_TYPE_INFO(Fbi2)
BASE_OBJECT_DEFINE_CLASS_NAME(Fbi2)
public:
Fbi2();
~Fbi2();
Fbi2(){}
~Fbi2(){}
BaseObjectPtr clone();
static const ElementType type = typeFbi2;
void readFields(CFRecord& record);
unsigned short dmixBasis;
unsigned short dmiyBasis;
unsigned short twpHeightBasis;
bool scab;
FontIndex ifnt;
};
} // namespace XLS

View File

@ -35,16 +35,6 @@
namespace XLS
{
FrtFontList::FrtFontList()
{
}
FrtFontList::~FrtFontList()
{
}
BaseObjectPtr FrtFontList::clone()
{
return BaseObjectPtr(new FrtFontList(*this));
@ -52,9 +42,15 @@ BaseObjectPtr FrtFontList::clone()
void FrtFontList::readFields(CFRecord& record)
{
#pragma message("####################### FrtFontList record is not implemented")
Log::error("FrtFontList record is not implemented.");
//record >> some_value;
unsigned char reserved;
record >> frtHeaderOld >> verExcel >> reserved >> cFont;
FontInfo val;
for (unsigned short i = 0; i < cFont; i++)
{
record >> val;
rgFontInfo.push_back(val);
}
}
} // namespace XLS

View File

@ -32,28 +32,30 @@
#pragma once
#include "BiffRecord.h"
#include "../Biff_structures/FrtHeaderOld.h"
#include "../Biff_structures/FontInfo.h"
namespace XLS
{
// Logical representation of FrtFontList record in BIFF8
class FrtFontList: public BiffRecord
{
BIFF_RECORD_DEFINE_TYPE_INFO(FrtFontList)
BASE_OBJECT_DEFINE_CLASS_NAME(FrtFontList)
public:
FrtFontList();
~FrtFontList();
FrtFontList(){}
~FrtFontList(){}
BaseObjectPtr clone();
void readFields(CFRecord& record);
static const ElementType type = typeFrtFontList;
static const ElementType type = typeFrtFontList;
FrtHeaderOld frtHeaderOld;
unsigned char verExcel;
unsigned short cFont;
std::vector<FontInfo> rgFontInfo;
};
} // namespace XLS

View File

@ -55,7 +55,8 @@ void RealTimeData::readFields(CFRecord& record)
{
#pragma message("####################### RealTimeData record is not implemented")
Log::error("RealTimeData record is not implemented.");
//record >> some_value;
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
}
} // namespace XLS

View File

@ -55,7 +55,8 @@ void RecipName::readFields(CFRecord& record)
{
#pragma message("####################### RecipName record is not implemented")
Log::error("RecipName record is not implemented.");
//record >> some_value;
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
}
} // namespace XLS

View File

@ -52,9 +52,13 @@ BaseObjectPtr RichTextStream::clone()
void RichTextStream::readFields(CFRecord& record)
{
#pragma message("####################### RichTextStream record is not implemented")
Log::error("RichTextStream record is not implemented.");
//record >> some_value;
record >> frtHeader >> dwCheckSum >> cb;
if (cb > 0 &&cb < 0xffff)
{
rgb = std::string(record.getCurData<char>(), cb);
record.skipNunBytes(cb);
}
}
} // namespace XLS

View File

@ -32,12 +32,11 @@
#pragma once
#include "BiffRecord.h"
#include "../Biff_structures/FrtHeader.h"
namespace XLS
{
// Logical representation of RichTextStream record in BIFF8
class RichTextStream: public BiffRecord
{
BIFF_RECORD_DEFINE_TYPE_INFO(RichTextStream)
@ -47,12 +46,15 @@ public:
~RichTextStream();
BaseObjectPtr clone();
void readFields(CFRecord& record);
static const ElementType type = typeRichTextStream;
static const ElementType type = typeRichTextStream;
FrtHeader frtHeader;
_UINT32 dwCheckSum;
_UINT32 cb;
std::string rgb;
};
} // namespace XLS

View File

@ -35,16 +35,6 @@
namespace XLS
{
SBaseRef::SBaseRef()
{
}
SBaseRef::~SBaseRef()
{
}
BaseObjectPtr SBaseRef::clone()
{
return BaseObjectPtr(new SBaseRef(*this));
@ -52,9 +42,7 @@ BaseObjectPtr SBaseRef::clone()
void SBaseRef::readFields(CFRecord& record)
{
#pragma message("####################### SBaseRef record is not implemented")
Log::error("SBaseRef record is not implemented.");
//record >> some_value;
record >> ref;
}
} // namespace XLS

View File

@ -32,26 +32,26 @@
#pragma once
#include "BiffRecord.h"
#include "../Biff_structures/CellRangeRef.h"
namespace XLS
{
// Logical representation of SBaseRef record in BIFF8
class SBaseRef: public BiffRecord
{
BIFF_RECORD_DEFINE_TYPE_INFO(SBaseRef)
BASE_OBJECT_DEFINE_CLASS_NAME(SBaseRef)
public:
SBaseRef();
~SBaseRef();
SBaseRef(){}
~SBaseRef(){}
BaseObjectPtr clone();
void readFields(CFRecord& record);
static const ElementType type = typeSBaseRef;
static const ElementType type = typeSBaseRef;
Ref8U ref;
};

View File

@ -54,7 +54,8 @@ void SCENARIO::readFields(CFRecord& record)
{
#pragma message("####################### SCENARIO record is not implemented")
Log::error("SCENARIO record is not implemented.");
//record >> some_value;
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
}
} // namespace XLS

View File

@ -131,6 +131,20 @@ void SXAddl_SXCCache_SXDVer10Info::readFields(CFRecord& record)
record >> reserved2;
}
//----------------------------------------------------------------------------
BaseObjectPtr SXAddl_SXCCache_SXDVerUpdInv::clone()
{
return BaseObjectPtr(new SXAddl_SXCCache_SXDVerUpdInv(*this));
}
void SXAddl_SXCCache_SXDVerUpdInv::readFields(CFRecord& record)
{
m_SXAddlHdr.load(record);
record >> dwVersionInvalidates;
record.skipNunBytes(5);
}
//----------------------------------------------------------------------------
BaseObjectPtr SXAddl_SXCCache_SXDInfo12::clone()
{
return BaseObjectPtr(new SXAddl_SXCCache_SXDInfo12(*this));

View File

@ -147,7 +147,15 @@ public:
unsigned char dwVer;
};
class SXAddl_SXCCache_SXDVerUpdInv : public SXAddl {};
class SXAddl_SXCCache_SXDVerUpdInv : public SXAddl
{
public:
virtual void readFields(CFRecord& record);
virtual BaseObjectPtr clone();
unsigned char dwVersionInvalidates;
};
class SXAddl_SXCCacheField_SXDCaption : public SXAddl {};
class SXAddl_SXCCacheField_SXDEnd : public SXAddl {};
class SXAddl_SXCCacheField_SXDId : public SXAddl {};

View File

@ -52,7 +52,7 @@ BaseObjectPtr SXViewLink::clone()
void SXViewLink::readFields(CFRecord& record)
{
unsigned short unused, reserved;
unsigned short unused, reserved;
record >> rt >> unused >> reserved >> cch;

View File

@ -55,7 +55,8 @@ void ScenMan::readFields(CFRecord& record)
{
#pragma message("####################### ScenMan record is not implemented")
Log::error("ScenMan record is not implemented.");
//record >> some_value;
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
}
} // namespace XLS

View File

@ -68,7 +68,6 @@ void SortData::readFields(CFRecord& record)
std::list<CFRecordPtr>& recs = continue_records[rt_ContinueFrt12];
while(!recs.empty())
{
#pragma message("############################ frtRefHeader skipped here")
record.appendRawData(recs.front()->getData() + 12, recs.front()->getDataSize() - 12);
recs.pop_front();
}

View File

@ -53,9 +53,34 @@ BaseObjectPtr TxtQry::clone()
void TxtQry::readFields(CFRecord& record)
{
#pragma message("####################### TxtQry record is not implemented")
Log::error("TxtQry record is not implemented.");
//record >> some_value;
unsigned short reserved, flags1, unused1;
unsigned char unused2, flags2;
record >> rt >> flags1 >> unused1 >> rowStartAt >> flags2 >> chCustom >> unused2 >> itwf >> chDecimal >> chThousSep;
fFile = GETBIT(flags1, 0);
fDelimited = GETBIT(flags1, 1);
iCpid = GETBITS(flags1, 2, 3);
fPromptForFile = GETBIT(flags1, 4);
iCpidNew = GETBITS(flags1, 5, 14);
fUseNewiCpid = GETBIT(flags1, 15);
fTab = GETBIT(flags2, 0);
fSpace = GETBIT(flags2, 1);
fComma = GETBIT(flags2, 2);
fSemiColon = GETBIT(flags2, 3);
fCustom = GETBIT(flags2, 4);
fConsecutive = GETBIT(flags2, 5);
iTextDelm = GETBITS(flags1, 6, 7);
for (int i = 0 ; i < itwf; i++)
{
TxtWf val;
record >> val;
rgtxtwf.push_back(val);
}
record >> rgchFile;
}
} // namespace XLS

View File

@ -32,12 +32,12 @@
#pragma once
#include "BiffRecord.h"
#include "../Biff_structures/TxtWf.h"
#include "../Biff_structures/BiffString.h"
namespace XLS
{
// Logical representation of TxtQry record in BIFF8
class TxtQry: public BiffRecord
{
BIFF_RECORD_DEFINE_TYPE_INFO(TxtQry)
@ -50,9 +50,29 @@ public:
void readFields(CFRecord& record);
static const ElementType type = typeTxtQry;
static const ElementType type = typeTxtQry;
unsigned short rt;
bool fFile;
bool fDelimited;
unsigned char iCpid;
bool fPromptForFile;
unsigned char iCpidNew;
bool fUseNewiCpid;
_INT32 rowStartAt;
bool fTab;
bool fSpace;
bool fComma;
bool fSemiColon;
bool fCustom;
bool fConsecutive;
unsigned char iTextDelm;
unsigned short chCustom;
_INT32 itwf;
unsigned char chDecimal;
unsigned char chThousSep;
std::vector<TxtWf> rgtxtwf;
XLUnicodeString rgchFile;
};
} // namespace XLS

View File

@ -54,7 +54,8 @@ void WOpt::readFields(CFRecord& record)
{
#pragma message("####################### WOpt record is not implemented")
Log::error("WOpt record is not implemented.");
//record >> some_value;
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
}
} // namespace XLS

View File

@ -55,7 +55,7 @@ void WebPub::readFields(CFRecord& record)
#pragma message("####################### WebPub record is not implemented")
Log::error("WebPub record is not implemented.");
//record >> some_value;
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
}
} // namespace XLS

View File

@ -35,16 +35,6 @@
namespace XLS
{
YMult::YMult()
{
}
YMult::~YMult()
{
}
BaseObjectPtr YMult::clone()
{
return BaseObjectPtr(new YMult(*this));
@ -52,10 +42,12 @@ BaseObjectPtr YMult::clone()
void YMult::readFields(CFRecord& record)
{
#pragma message("####################### YMult record is not implemented")
Log::error("YMult record is not implemented.");
unsigned short flags;
record >> frtHeaderOld >> axmid >> numLabelMultiplier >> flags;
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
fAutoShowMultiplier = GETBIT(flags, 0);
fBeingEditted = GETBIT(flags, 1);
}
} // namespace XLS

View File

@ -32,26 +32,30 @@
#pragma once
#include "BiffRecord.h"
#include "../Biff_structures/FrtHeaderOld.h"
#include "../Biff_structures/Xnum.h"
namespace XLS
{
// Logical representation of YMult record in BIFF8
class YMult: public BiffRecord
{
BIFF_RECORD_DEFINE_TYPE_INFO(YMult)
BASE_OBJECT_DEFINE_CLASS_NAME(YMult)
public:
YMult();
~YMult();
YMult(){}
~YMult(){}
BaseObjectPtr clone();
void readFields(CFRecord& record);
static const ElementType type = typeYMult;
static const ElementType type = typeYMult;
FrtHeaderOld frtHeaderOld;
short axmid;
Xnum numLabelMultiplier;
bool fAutoShowMultiplier;
bool fBeingEditted;
};
} // namespace XLS

View File

@ -205,5 +205,31 @@ const bool BiffString::getWideRecommendation() const
}
return false;
}
//-----------------------------------------------------------------
BiffStructurePtr XLUnicodeStringSegmented::clone()
{
return BiffStructurePtr(new XLUnicodeStringSegmented(*this));
}
void XLUnicodeStringSegmented::load(CFRecord& record)
{
record >> cchTotal;
if (cchTotal < 1) return;
_UINT32 cchTotal_test = 0;
while(true)
{
if (record.isEOF())
break;
XLUnicodeString string;
record >> string;
cchTotal_test += string.value().length();
arStrings.push_back(string.value());
strTotal += string.value();
}
}
} // namespace XLS

View File

@ -211,60 +211,24 @@ CFRecord& operator>>(CFRecord& record, XLUnicodeString_T<cchType, det_id, cch_wh
return record;
}
//
//
//template<class cchType, AW_DETERMINATION det_id, CCH_SOURCE cch_where>
//CFRecord& operator<<(CFRecord& record, XLUnicodeString_T<cchType, det_id, cch_where>& val)
//{
// size_t struct_size = 0;
// bool is_wide = val.getWideRecommendation();
//
// switch(cch_where)
// {
// case cch_READ_FROM_RECORD:
// {
// cchType cch_l = static_cast<cchType>(val.getSize()); // Just to conform size write.
// if(aw_READ_FROM_CCH == det_id)
// {
// SETBIT(cch_l, ((sizeof(cchType) * 8) - 1), is_wide);
// }
// record << cch_l;
// struct_size += sizeof(cchType);
// break;
// }
// case cch_PASSED_AS_AN_ARGUMENT:
// // Means cch already stored outside
// break;
// }
//
// switch(det_id)
// {
// case aw_READ_FROM_RECORD_IF_CCH_NOT_ZERO:
// if(0 == val.getSize()) break;
// case aw_READ_FROM_RECORD:
// {
// unsigned char fHighByte = is_wide ? 1 : 0;
// record << fHighByte;
// struct_size += sizeof(fHighByte);
// break;
// }
// case aw_WIDE:
// is_wide = true;
// break;
// case aw_ANSI:
// is_wide = false;
// break;
// case aw_READ_FROM_CCH:
// // See cch_READ_FROM_RECORD case in the previous switch
// break;
// }
// struct_size += (val.getSize() << (is_wide ? 1 : 0));
// val.store(record, is_wide);
// val.setStructSize(struct_size); // The only usage is DXFFntD::load
// return record;
//}
//
//
class XLUnicodeStringSegmented : public BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(XLUnicodeStringSegmented)
public:
XLUnicodeStringSegmented(){}
~XLUnicodeStringSegmented(){}
BiffStructurePtr clone();
virtual void load(CFRecord& record);
static const ElementType type = typeStringSegmented;
_UINT32 cchTotal;
std::vector<std::wstring> arStrings;
std::wstring strTotal;
};
} // namespace XLS

View File

@ -89,7 +89,6 @@ struct PtgAttrSpaceType : public BiffStructure_NoVtbl
unsigned char cch;
};
struct RkNumber : public BiffStructure_NoVtbl
{
unsigned int fX100 : 1;
@ -354,22 +353,8 @@ struct CFrtId : public BiffStructure_NoVtbl
unsigned short rtLast;
};
} // namespace XLS
namespace CRYPTO
{
struct Version : public XLS::BiffStructure_NoVtbl
{
unsigned short vMajor;
unsigned short vMinor;
};
} // namespace CRYPTO
#pragma pack()

View File

@ -36,8 +36,6 @@
namespace XLS
{
class CFRecord;
class CFParsedFormula : public ParsedFormula
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(CFParsedFormula)

View File

@ -36,8 +36,6 @@
namespace XLS
{
class CFRecord;
class CFParsedFormulaNoCCE : public ParsedFormula
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(CFParsedFormulaNoCCE)

View File

@ -37,8 +37,6 @@
namespace XLS
{
class CFRecord;
class CFVO : public BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(CFVO)

View File

@ -36,8 +36,6 @@
namespace XLS
{
class CFRecord;
class CFVOParsedFormula : public ParsedFormula
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(CFVOParsedFormula)

View File

@ -51,8 +51,7 @@ public:
virtual void load(CFRecord& record);
static const ElementType type = typeCellXF;
static const ElementType type = typeCellXF;
GlobalWorkbookInfoPtr m_GlobalWorkbookInfo;

View File

@ -36,8 +36,6 @@
namespace XLS
{
class CFRecord;
class ChartNumNillable : public BiffAttribute
{
public:

View File

@ -37,8 +37,6 @@
namespace XLS
{
class CFRecord;
class ChartParsedFormula : public ParsedFormula
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(ChartParsedFormula)

View File

@ -37,8 +37,6 @@
namespace OSHARED
{
class CFRecord;
class CompositeMoniker : public XLS::BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(CompositeMoniker)

View File

@ -37,8 +37,6 @@
namespace XLS
{
class CFRecord;
class CondFmtStructure : public BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(CondFmtStructure)

View File

@ -0,0 +1,53 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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 Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* 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 "ConnGrbitDbtAdo.h"
namespace XLS
{
BiffStructurePtr ConnGrbitDbtAdo::clone()
{
return BiffStructurePtr(new ConnGrbitDbtAdo(*this));
}
void ConnGrbitDbtAdo::load(CFRecord& record)
{
unsigned short flags;
record >> flags;
fAdoRefreshable = GETBIT(flags, 1);
}
} // namespace XLS

View File

@ -0,0 +1,56 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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 Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* 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
*
*/
#pragma once
#include "BiffStructure.h"
namespace XLS
{
class ConnGrbitDbtAdo: public BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(ConnGrbitDbtAdo)
public:
BiffStructurePtr clone();
ConnGrbitDbtAdo(){}
~ConnGrbitDbtAdo(){}
static const ElementType type = typeConnGrbitDbtAdo;
virtual void load(CFRecord& record);
bool fAdoRefreshable;
};
} // namespace XLS

View File

@ -0,0 +1,61 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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 Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* 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 "ConnGrbitDbtOledb.h"
namespace XLS
{
BiffStructurePtr ConnGrbitDbtOledb::clone()
{
return BiffStructurePtr(new ConnGrbitDbtOledb(*this));
}
void ConnGrbitDbtOledb::load(CFRecord& record)
{
unsigned short flags;
record >> flags;
dbost = GETBITS(flags, 0, 2);
fLocalConn = GETBIT(flags, 3);
fNoRefreshCube = GETBIT(flags, 4);
fUseOfficeLcid = GETBIT(flags, 5);
fSrvFmtNum = GETBIT(flags, 6);
fSrvFmtBack = GETBIT(flags, 7);
fSrvFmtFore = GETBIT(flags, 8);
fSrvFmtFlags = GETBIT(flags, 9);
fSupportsLangCellProp = GETBIT(flags, 10);
fSrvSupportsClientCube = GETBIT(flags, 11);
}
} // namespace XLS

View File

@ -0,0 +1,64 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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 Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* 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
*
*/
#pragma once
#include "BiffStructure.h"
namespace XLS
{
class ConnGrbitDbtOledb: public BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(ConnGrbitDbtOledb)
public:
BiffStructurePtr clone();
ConnGrbitDbtOledb(){}
~ConnGrbitDbtOledb(){}
static const ElementType type = typeConnGrbitDbtOledb;
virtual void load(CFRecord& record);
unsigned char dbost;
bool fLocalConn;
bool fNoRefreshCube;
bool fUseOfficeLcid;
bool fSrvFmtNum;
bool fSrvFmtBack;
bool fSrvFmtFore;
bool fSrvFmtFlags;
bool fSupportsLangCellProp;
bool fSrvSupportsClientCube;
};
} // namespace XLS

View File

@ -0,0 +1,57 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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 Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* 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 "ConnGrbitDbtWeb.h"
namespace XLS
{
BiffStructurePtr ConnGrbitDbtWeb::clone()
{
return BiffStructurePtr(new ConnGrbitDbtWeb(*this));
}
void ConnGrbitDbtWeb::load(CFRecord& record)
{
unsigned short flags;
record >> flags;
fParsePreFormatted = GETBIT(flags, 0);
fConsecDelim = GETBIT(flags, 1);
fSameSettings = GETBIT(flags, 2);
fXL97Format = GETBIT(flags, 3);
fNoDateRecog = GETBIT(flags, 4);
fRefreshedInXl9 = GETBIT(flags, 5);
}
} // namespace XLS

View File

@ -0,0 +1,61 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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 Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* 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
*
*/
#pragma once
#include "BiffStructure.h"
namespace XLS
{
class ConnGrbitDbtWeb: public BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(ConnGrbitDbtWeb)
public:
BiffStructurePtr clone();
ConnGrbitDbtWeb(){}
~ConnGrbitDbtWeb(){}
static const ElementType type = typeConnGrbitDbtWeb;
virtual void load(CFRecord& record);
bool fParsePreFormatted;
bool fConsecDelim;
bool fSameSettings;
bool fXL97Format;
bool fNoDateRecog;
bool fRefreshedInXl9;
};
} // namespace XLS

View File

@ -31,14 +31,11 @@
*/
#pragma once
#include <Logic/Biff_records/BiffRecord.h>
#include <Logic/Biff_structures/BiffString.h>
#include "BiffString.h"
namespace XLS
{
class CFRecord;
class ControlInfo : public BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(ControlInfo)

View File

@ -0,0 +1,75 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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 Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* 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 "DConnConnectionOleDb.h"
#include "BiffString.h"
#include "../Biff_records/SXStreamID.h"
namespace XLS
{
BiffStructurePtr DConnConnectionOleDb::clone()
{
return BiffStructurePtr(new DConnConnectionOleDb(*this));
}
DConnConnectionOleDb::DConnConnectionOleDb()
{
}
DConnConnectionOleDb::~DConnConnectionOleDb()
{
}
void DConnConnectionOleDb::load(CFRecord& record)
{
record >> nDrillthroughRows >> cOleDb;
for (unsigned short i = 0; i < cOleDb; i++)
{
unsigned short val;
record >> val;
rgIOleDbValid.push_back(val);
}
int skip_unused = 2 * (4 - cOleDb) + 2;
record.skipNunBytes(skip_unused);
for (unsigned short i = 0; i < cOleDb; i++)
{
XLUnicodeStringSegmented val;
record >> val;
rgConn.push_back(val);
}}
} // namespace XLS

View File

@ -0,0 +1,60 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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 Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* 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
*
*/
#pragma once
#include "BiffString.h"
namespace XLS
{
class DConnConnectionOleDb: public BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(DConnConnectionOleDb)
public:
BiffStructurePtr clone();
DConnConnectionOleDb();
~DConnConnectionOleDb();
static const ElementType type = typeDConnConnectionOleDb;
virtual void load(CFRecord& record);
_UINT32 nDrillthroughRows;
unsigned short cOleDb;
std::vector<unsigned short> rgIOleDbValid;
//rgIOleDbInvalid; //size in bytes = 2 * (4 cOleDb)
std::vector<XLUnicodeStringSegmented> rgConn;
};
} // namespace XLS

View File

@ -0,0 +1,59 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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 Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* 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 "DConnConnectionWeb.h"
#include "BiffString.h"
#include "../Biff_records/SXStreamID.h"
namespace XLS
{
BiffStructurePtr DConnConnectionWeb::clone()
{
return BiffStructurePtr(new DConnConnectionWeb(*this));
}
DConnConnectionWeb::DConnConnectionWeb()
{
}
DConnConnectionWeb::~DConnConnectionWeb()
{
}
void DConnConnectionWeb::load(CFRecord& record)
{
record >> rgbURL >> rgbWebPost;
}
} // namespace XLS

View File

@ -0,0 +1,57 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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 Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* 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
*
*/
#pragma once
#include "DConnStringSequence.h"
namespace XLS
{
class DConnConnectionWeb: public BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(DConnConnectionWeb)
public:
BiffStructurePtr clone();
DConnConnectionWeb();
~DConnConnectionWeb();
static const ElementType type = typeDConnConnectionWeb;
virtual void load(CFRecord& record);
DConnStringSequence rgbURL;
DConnStringSequence rgbWebPost;
};
} // namespace XLS

View File

@ -0,0 +1,63 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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 Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* 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 "DConnId.h"
namespace XLS
{
BiffStructurePtr DConnId::clone()
{
return BiffStructurePtr(new DConnId(*this));
}
DConnId::DConnId()
{
}
DConnId::~DConnId()
{
}
void DConnId::load(CFRecord& record)
{
record >> bType;
switch(bType)
{
case 1: record >> string; break;
case 2: sxStreamID.readFields(record); break;
}
}
} // namespace XLS

View File

@ -0,0 +1,59 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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 Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* 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
*
*/
#pragma once
#include "BiffString.h"
#include "../Biff_records/SXStreamID.h"
namespace XLS
{
class DConnId: public BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(DConnId)
public:
BiffStructurePtr clone();
DConnId();
~DConnId();
static const ElementType type = typeDConnId;
virtual void load(CFRecord& record);
unsigned char bType;
XLUnicodeStringSegmented string;
SXStreamID sxStreamID;
};
} // namespace XLS

View File

@ -0,0 +1,90 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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 Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* 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 "DConnParamBindingValType.h"
#include "BiffString.h"
#include "Xnum.h"
namespace XLS
{
BiffStructurePtr DConnParamBindingValType::clone()
{
return BiffStructurePtr(new DConnParamBindingValType(*this));
}
void DConnParamBindingValType::load(CFRecord& record)
{
record >> wBindingValueGrbit;
switch(wBindingValueGrbit)
{
case 0x0001: rgbBindingValue.reset(new Xnum); break;
case 0x0002: rgbBindingValue.reset(new XLUnicodeStringSegmented); break;
case 0x0004: rgbBindingValue.reset(new DConnParamBindingValByte); break;
case 0x0800: rgbBindingValue.reset(new DConnParamBindingValInt); break;
}
if (rgbBindingValue)
{
record >> *rgbBindingValue;
}
}
//-----------------------------------------------------------------------------------
BiffStructurePtr DConnParamBindingValByte::clone()
{
return BiffStructurePtr(new DConnParamBindingValByte(*this));
}
void DConnParamBindingValByte::load(CFRecord& record)
{
unsigned char reserved1;
unsigned short reserved2;
_UINT32 reserved3;
record >> fVal >> reserved1 >> reserved2 >> reserved3;
}
//-----------------------------------------------------------------------------------
BiffStructurePtr DConnParamBindingValInt::clone()
{
return BiffStructurePtr(new DConnParamBindingValInt(*this));
}
void DConnParamBindingValInt::load(CFRecord& record)
{
_UINT32 reserved;
record >> val >> reserved;
}
} // namespace XLS

View File

@ -0,0 +1,88 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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 Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* 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
*
*/
#pragma once
#include "BiffStructure.h"
namespace XLS
{
class DConnParamBindingValType: public BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(DConnParamBindingValType)
public:
BiffStructurePtr clone();
DConnParamBindingValType(){}
~DConnParamBindingValType(){}
static const ElementType type = typeDConnParamBindingValType;
virtual void load(CFRecord& record);
unsigned short wBindingValueGrbit;
BiffStructurePtr rgbBindingValue;
};
class DConnParamBindingValByte: public BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(DConnParamBindingValByte)
public:
BiffStructurePtr clone();
DConnParamBindingValByte(){}
~DConnParamBindingValByte(){}
static const ElementType type = typeDConnParamBindingValByte;
virtual void load(CFRecord& record);
unsigned char fVal;
};
class DConnParamBindingValInt: public BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(DConnParamBindingValInt)
public:
BiffStructurePtr clone();
DConnParamBindingValInt(){}
~DConnParamBindingValInt(){}
static const ElementType type = typeDConnParamBindingValInt;
virtual void load(CFRecord& record);
_UINT32 val;
};
} // namespace XLS

View File

@ -0,0 +1,74 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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 Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* 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 "DConnParameter.h"
#include <Binary/CFRecord.h>
#include "DConnParamBindingValType.h"
namespace XLS
{
BiffStructurePtr DConnParameter::clone()
{
return BiffStructurePtr(new DConnParameter(*this));
}
DConnParameter::DConnParameter()
{
}
DConnParameter::~DConnParameter()
{
}
void DConnParameter::load(CFRecord& record)
{
unsigned short flags1, flags2;
record >> rgchName >> flags1 >> wTypeSql >> flags2;
pbt = GETBITS(flags1, 0, 2);
fDefaultName = GETBIT(flags2, 0);
switch(pbt)
{
case 0: paramBinding.reset(new XLUnicodeStringSegmented); break;
case 1: paramBinding.reset(new DConnParamBindingValType); break;
}
if (paramBinding)
{
record >> *paramBinding;
}
}
} // namespace XLS

View File

@ -0,0 +1,60 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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 Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* 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
*
*/
#pragma once
#include "BiffString.h"
namespace XLS
{
class DConnParameter: public BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(DConnParameter)
public:
BiffStructurePtr clone();
DConnParameter();
~DConnParameter();
static const ElementType type = typeDConnParameter;
virtual void load(CFRecord& record);
XLUnicodeStringSegmented rgchName;
unsigned char pbt;
short wTypeSql;// enum ODBCType
bool fDefaultName;
BiffStructurePtr paramBinding;
};
} // namespace XLS

View File

@ -0,0 +1,65 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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 Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* 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 "DConnStringSequence.h"
#include "BiffString.h"
namespace XLS
{
BiffStructurePtr DConnStringSequence::clone()
{
return BiffStructurePtr(new DConnStringSequence(*this));
}
DConnStringSequence::DConnStringSequence()
{
}
DConnStringSequence::~DConnStringSequence()
{
}
void DConnStringSequence::load(CFRecord& record)
{
record >> cst;
for (unsigned short i = 0; i < cst; i++)
{
XLUnicodeStringSegmented val;
record >> val;
rgString.push_back(val);
}
}
} // namespace XLS

View File

@ -0,0 +1,57 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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 Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* 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
*
*/
#pragma once
#include "BiffString.h"
namespace XLS
{
class DConnStringSequence: public BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(DConnStringSequence)
public:
BiffStructurePtr clone();
DConnStringSequence();
~DConnStringSequence();
static const ElementType type = typeDConnStringSequence;
virtual void load(CFRecord& record);
unsigned short cst;
std::vector<XLUnicodeStringSegmented> rgString;
};
} // namespace XLS

View File

@ -36,8 +36,6 @@
namespace XLS
{
class CFRecord;
class DVParsedFormula : public ParsedFormula
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(DVParsedFormula)

View File

@ -37,8 +37,6 @@
namespace CRYPTO
{
class CFRecord;
class EncryptionHeader : public XLS::BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(EncryptionHeader)

View File

@ -46,11 +46,7 @@ public:
ExtNameParsedFormula();
BiffStructurePtr clone();
void load(CFRecord& record);
private:
// stub to make the class non-abstract
private:
PtgPtr val;
};

View File

@ -32,8 +32,6 @@
#pragma once
#include "BiffAttribute.h"
//#include <Logic/Biff_structures/Phs.h>
//#include <Logic/Biff_structures/BiffString.h>
namespace XLS
{

View File

@ -0,0 +1,53 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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 Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* 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 "FontInfo.h"
#include <Binary/CFRecord.h>
namespace XLS
{
BiffStructurePtr FontInfo::clone()
{
return BiffStructurePtr(new FontInfo(*this));
}
void FontInfo::load(CFRecord& record)
{
unsigned short flags;
record >> flags >> ifnt;
fScaled = GETBIT(flags, 0);
}
} // namespace XLS

View File

@ -0,0 +1,56 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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 Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* 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
*
*/
#pragma once
#include "FontIndex.h"
namespace XLS
{
class FontInfo: public BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(FontInfo)
public:
BiffStructurePtr clone();
FontInfo(){}
~FontInfo(){}
static const ElementType type = typeFontInfo;
virtual void load(CFRecord& record);
bool fScaled;
FontIndex ifnt;
};
} // namespace XLS

View File

@ -0,0 +1,54 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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 Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* 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 "PBT.h"
namespace XLS
{
BiffStructurePtr PBT::clone()
{
return BiffStructurePtr(new PBT(*this));
}
void PBT::load(CFRecord& record)
{
unsigned short flags;
record >> flags;
pbt = GETBITS(flags, 0, 2);
fAutoRefresh = GETBIT(flags, 3);
fNeedRefresh = GETBIT(flags, 4);
}
} // namespace XLS

View File

@ -0,0 +1,57 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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 Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* 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
*
*/
#pragma once
#include "BiffStructure.h"
namespace XLS
{
class PBT: public BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(PBT)
public:
BiffStructurePtr clone();
PBT(){}
~PBT(){}
static const ElementType type = typePBT;
virtual void load(CFRecord& record);
unsigned char pbt;
bool fAutoRefresh;
bool fNeedRefresh;
};
} // namespace XLS

View File

@ -102,8 +102,7 @@ void PtgArea3d::assemble(AssemblerStack& ptg_stack, PtgQueue& extra_data, bool f
RevExternPtr tab_ids;
if(!extra_data.empty() && (tab_ids = boost::dynamic_pointer_cast<RevExtern>(extra_data.front())))
{
#pragma message("####################### PtgArea3d struct for revisions is not implemented")
Log::info("PtgArea3d struct for revisions is not implemented.");
Log::info("PtgArea3d struct for revisions is not assemble.");
ptg_stack.push(L"");
extra_data.pop();
return;

View File

@ -57,8 +57,7 @@ void PtgAreaErr3d::assemble(AssemblerStack& ptg_stack, PtgQueue& extra_data, boo
RevExternPtr tab_ids;
if(!extra_data.empty() && (tab_ids = boost::dynamic_pointer_cast<RevExtern>(extra_data.front())))
{
#pragma message("####################### PtgAreaErr3d struct for revisions is not implemented")
Log::info("PtgAreaErr3d struct for revisions is not implemented.");
Log::info("PtgAreaErr3d struct for revisions is not assemble.");
ptg_stack.push(L"");
extra_data.pop();
return;

View File

@ -77,9 +77,7 @@ void PtgName::assemble(AssemblerStack& ptg_stack, PtgQueue& extra_data, bool ful
RevNameTabidPtr tab_id;
if(!extra_data.empty() && (tab_id = boost::dynamic_pointer_cast<RevNameTabid>(extra_data.front())))
{
#pragma message("####################### PtgName struct for revisions is not checked")
Log::info("PtgName struct for revisions is not checked.");
Log::info("PtgName struct for revisions is not assemble.");
ptg_stack.push(tab_id->toString());
extra_data.pop();
return;

View File

@ -81,8 +81,7 @@ void PtgNameX::assemble(AssemblerStack& ptg_stack, PtgQueue& extra_data, bool fu
RevNamePtr tab_id;
if(!extra_data.empty() && (tab_id = boost::dynamic_pointer_cast<RevName>(extra_data.front())))
{
#pragma message("####################### PtgNameX struct for revisions is not implemented")
Log::error("PtgNameX struct for revisions is not implemented.");
Log::error("PtgNameX struct for revisions is not assemble.");
ptg_stack.push(L"#REF!");
extra_data.pop();
return;
@ -113,8 +112,7 @@ void PtgNameX::assemble(AssemblerStack& ptg_stack, PtgQueue& extra_data, bool fu
}
else
{
#pragma message("####################### PtgNameX struct is not implemented")
Log::warning("PtgNameX structure is not implemented.");
Log::warning("PtgNameX structure is not assemble.");
//ptg_stack.push(L"#UNDEFINED_EXTERN_NAME(" + STR::int2wstr(nameindex) + L")!");
ptg_stack.push(L""); // This would let us to continue without an error
}

View File

@ -96,8 +96,8 @@ void PtgRef3d::assemble(AssemblerStack& ptg_stack, PtgQueue& extra_data, bool fu
RevExternPtr tab_ids;
if(!extra_data.empty() && (tab_ids = boost::dynamic_pointer_cast<RevExtern>(extra_data.front())))
{
#pragma message("####################### PtgRef3d struct for revisions is not implemented")
Log::info("PtgRef3d struct for revisions is not implemented.");
Log::info("PtgRef3d struct for revisions is not assemble.");
ptg_stack.push(L"");
extra_data.pop();
return;

View File

@ -68,8 +68,8 @@ void PtgRefErr3d::assemble(AssemblerStack& ptg_stack, PtgQueue& extra_data, bool
RevExternPtr tab_ids;
if(!extra_data.empty() && (tab_ids = boost::dynamic_pointer_cast<RevExtern>(extra_data.front())))
{
#pragma message("####################### PtgRefErr3d struct for revisions is not implemented")
Log::info("PtgRefErr3d struct for revisions is not implemented.");
Log::info("PtgRefErr3d struct for revisions is not assemble.");
ptg_stack.push(L"");
extra_data.pop();
return;

View File

@ -47,11 +47,10 @@ void PtgSxName::loadFields(CFRecord& record)
record >> sxIndex;
}
void PtgSxName::assemble(AssemblerStack& ptg_stack, PtgQueue& extra_data, bool full_ref)
{
#pragma message("####################### PtgSxName struct is not implemented")
Log::info("PtgSxName structure is not implemented.");
Log::info("PtgSxName structure is not assemble.");
ptg_stack.push(L"#REF!");
}

View File

@ -36,7 +36,6 @@
namespace CRYPTO
{
XLS::BiffStructurePtr RC4CryptoAPIEncryptionHeader::clone()
{
return XLS::BiffStructurePtr(new RC4CryptoAPIEncryptionHeader(*this));

View File

@ -31,17 +31,14 @@
*/
#pragma once
#include "BiffStructure.h"
#include "EncryptionHeaderFlags.h"
#include "EncryptionHeader.h"
#include "EncryptionVerifier.h"
#include <Logic/Biff_structures/BitMarkedStructs.h>
#include "RC4EncryptionHeader.h"
namespace CRYPTO
{
class CFRecord;
class RC4CryptoAPIEncryptionHeader : public XLS::BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(RC4CryptoAPIEncryptionHeader)

View File

@ -32,11 +32,16 @@
#pragma once
#include "BiffStructure.h"
#include <Logic/Biff_structures/BitMarkedStructs.h>
#include "BitMarkedStructs.h"
#include "../../Crypt/RC4Crypt.h"
namespace CRYPTO
{
struct Version : public XLS::BiffStructure_NoVtbl
{
unsigned short vMajor;
unsigned short vMinor;
};
class RC4EncryptionHeader : public XLS::BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(RC4EncryptionHeader)

View File

@ -0,0 +1,50 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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 Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* 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 "TxtWf.h"
#include <Binary/CFRecord.h>
namespace XLS
{
BiffStructurePtr TxtWf::clone()
{
return BiffStructurePtr(new TxtWf(*this));
}
void TxtWf::load(CFRecord& record)
{
record >> fieldType >> fieldStart;
}
} // namespace XLS

View File

@ -0,0 +1,56 @@
/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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 Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* 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
*
*/
#pragma once
#include "BiffStructure.h"
namespace XLS
{
class TxtWf: public BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(TxORuns)
public:
BiffStructurePtr clone();
TxtWf(){}
~TxtWf(){}
static const ElementType type = typeTxtWf;
virtual void load(CFRecord& record);
_UINT32 fieldType;
_UINT32 fieldStart;
};
} // namespace XLS

View File

@ -32,14 +32,10 @@
#pragma once
#include "BiffStructure.h"
//#include <Logic/Biff_structures/Phs.h>
//#include <Logic/Biff_structures/BiffString.h>
namespace OSHARED
{
class CFRecord;
class URICreateFlags : public XLS::BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(URICreateFlags)
@ -52,7 +48,6 @@ public:
virtual void load(XLS::CFRecord& record);
bool createAllowRelative;
bool createAllowImplicitWildcardScheme;
bool createAllowImplicitFileScheme;

View File

@ -32,7 +32,7 @@
#pragma once
#include "BiffStructure.h"
#include <Logic/Biff_structures/XFProp.h>
#include "../Biff_structures/XFProp.h"
namespace XLS
{

Some files were not shown because too many files have changed in this diff Show More