XlsFile2 bug 24441

git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@63909 954022d7-b5bf-4e40-9824-e11837661b57
This commit is contained in:
Elen.Subbotina
2015-08-06 09:44:23 +00:00
committed by Alexander Trofimov
parent 3777a01821
commit 4357aba883
5 changed files with 20 additions and 10 deletions

View File

@ -37,6 +37,8 @@ CFRecordPtr CFStreamCacheReader::getNextRecord(const CFRecordType::TypeId desira
{
CFRecordType::TypeString rec_name = records_cache.front()->getTypeString();
//Log::warning(rec_name);
if (desirable_type == rt_MsoDrawingGroup) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> rt_MsoDrawingGroup + rt_Continue <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
{
if (checkNextRecord(desirable_type, 1))

View File

@ -101,7 +101,9 @@ CFStreamPtr CompoundFile::getNamedStream(const std::string& name)
{
if(!streams[name])
{
streams[name].reset(new CFStream(openStream(name.c_str())));
POLE::Stream * pStream = openStream(name.c_str());
if (pStream)
streams[name].reset(new CFStream(pStream));
}
return streams[name];
}
@ -111,7 +113,9 @@ CFStreamPtr CompoundFile::createNamedStream(const std::string& name)
{
if(!streams[name])
{
streams[name].reset(new CFStream(createStream(name.c_str())));
POLE::Stream * pStream = createStream(name.c_str());
if (pStream)
streams[name].reset(new CFStream(pStream));
}
return streams[name];
}
@ -131,7 +135,9 @@ POLE::Stream* CompoundFile::openStream(const std::string & stream_name)
{
throw;// EXCEPT::RT::CompoundFileFormatError(std::string("Error opening \"") + static_cast<char*>(stream_name) + "\" stream", hres);
}
return pStream;
if ((pStream) && (pStream->size() > 0))
return pStream;
else return NULL;
}

View File

@ -1,6 +1,5 @@
#include "HLink.h"
//#include <Exception/AttributeDataWrong.h>
namespace XLS
{;

View File

@ -9,14 +9,14 @@ namespace OLEPS
PropertySetStream::PropertySetStream(XLS::CFStreamPtr stream)
{
unsigned short ByteOrder;
unsigned short Version;
unsigned int SystemIdentifier;
unsigned int NumPropertySets;
_GUID_ Clsid;
unsigned short ByteOrder=0;
unsigned short Version=0;
unsigned int SystemIdentifier=0;
unsigned int NumPropertySets=0;
_GUID_ Clsid={};
*stream >> ByteOrder >> Version >> SystemIdentifier >> Clsid >> NumPropertySets;
std::vector<unsigned int> property_sets_offsets;
for(unsigned int i = 0; i < NumPropertySets; ++i)
{

View File

@ -153,6 +153,9 @@ const bool WorksheetSubstream::loadContent(BinProcessor& proc)
proc.repeated<PIVOTVIEW>(0, 0);
proc.optional<DCON>();
proc.repeated<WINDOW>(1, 0);
proc.optional<SheetExt>(); //BulletinSearch.xls ??? <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
proc.repeated<CUSTOMVIEW>(0, 0);
proc.repeated<SORT>(0, 2);
proc.optional<DxGCol>();