Commit 4357aba8 authored by Elen.Subbotina's avatar Elen.Subbotina Committed by Alexander Trofimov

XlsFile2 bug 24441

git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@63909 954022d7-b5bf-4e40-9824-e11837661b57
parent 3777a018
......@@ -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) // rt_MsoDrawingGroup + rt_Continue
{
if (checkNextRecord(desirable_type, 1))
......
......@@ -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;
}
......
#include "HLink.h"
//#include <Exception/AttributeDataWrong.h>
namespace XLS
{;
......
......@@ -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)
{
......
......@@ -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 ???
proc.repeated<CUSTOMVIEW>(0, 0);
proc.repeated<SORT>(0, 2);
proc.optional<DxGCol>();
......
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