WPSOLEParser Class Reference

a class used to parse some basic oles Tries to read the different ole parts and stores their contents in form of picture. More...

#include <WPSOLEParser.h>

Public Member Functions

 WPSOLEParser (const std::string &mainName, libwps_tools_win::Font::Type fontType, std::function< int(std::string const &)> const &dirToIdFunc=getIdFromDirectory)
 constructor
 ~WPSOLEParser ()
 destructor
bool parse (RVNGInputStreamPtr fileInput)
 tries to parse basic OLE (excepted mainName)
void updateMetaData (librevenge::RVNGPropertyList &metaData) const
 update the meta data, using information find in SummaryInformation
std::vector< std::string > const & getNotParse () const
 returns the list of unknown ole
std::map< int, WPSEmbeddedObject > const & getObjectsMap () const
 returns the list of data positions which have been read

Protected Member Functions

bool readSummaryInformation (RVNGInputStreamPtr input, std::string const &oleName, librevenge::RVNGPropertyList &pList, libwps::DebugFile &ascii) const
 the summary information and the doc summary information
bool readSummaryProperty (RVNGInputStreamPtr input, long endPos, int type, libwps::DebugFile &ascii, libwps::DebugStream &f) const
 try to read a summary property
bool readSummaryPropertyString (RVNGInputStreamPtr input, long endPos, int type, librevenge::RVNGString &string, libwps::DebugStream &f) const
 try to read a summary property: type 1e
bool readCompObj (RVNGInputStreamPtr &ip, std::string const &oleName, libwps::DebugFile &ascii)
 the "CompObj" contains : UserType,ClipName,ProgIdName

Static Protected Member Functions

static bool readSummaryPropertyLong (RVNGInputStreamPtr input, long endPos, int type, long &value, libwps::DebugStream &f)
 try to read a summary property: type 2,3,9,12,
static bool readOle (RVNGInputStreamPtr &ip, std::string const &oleName, libwps::DebugFile &ascii)
 the "Ole" small structure : unknown contain
static bool readMM (RVNGInputStreamPtr &input, std::string const &oleName, libwps::DebugFile &ascii)
 the "MM" small structure : seems to contain the file versions
static bool readObjInfo (RVNGInputStreamPtr &input, std::string const &oleName, libwps::DebugFile &ascii)
 the "ObjInfo" small structure : seems to contain 3 ints=0,3,4
static bool isOlePres (RVNGInputStreamPtr &ip, std::string const &oleName)
 the OlePres001 seems to contain standart picture file and size
static bool readOlePres (RVNGInputStreamPtr &ip, WPSEmbeddedObject &obj, libwps::DebugFile &ascii)
 extracts the picture of OlePres001 if it is possible
static bool isOle10Native (RVNGInputStreamPtr &ip, std::string const &oleName)
 theOle10Native : basic Windows' picture, with no size
static bool readOle10Native (RVNGInputStreamPtr &ip, WPSEmbeddedObject &obj, libwps::DebugFile &ascii)
 extracts the picture if it is possible
static bool readContents (RVNGInputStreamPtr &input, std::string const &oleName, WPSEmbeddedObject &obj, libwps::DebugFile &ascii)
 the Contents : in general a picture : a PNG, an JPEG, a basic metafile, I find also a Word art picture, which are not sucefully read
static bool readCONTENTS (RVNGInputStreamPtr &input, std::string const &oleName, WPSEmbeddedObject &obj, libwps::DebugFile &ascii)
 the CONTENTS : seems to store a header size, the header and then a object in EMF (with the same header)...
static bool readMN0AndCheckWKS (RVNGInputStreamPtr &input, std::string const &oleName, WPSEmbeddedObject &obj, libwps::DebugFile &ascii)
 the "MN0" small structure : can contains a WKS file...
static int getIdFromDirectory (std::string const &dirName)
 the default function which uses the last integer of dirName to return the final id, ie.

Protected Attributes

std::string m_avoidOLE
 if filled, does not parse content with this name
std::shared_ptr< WPSOLEParserInternal::Statem_state
 the main state

Detailed Description

a class used to parse some basic oles Tries to read the different ole parts and stores their contents in form of picture.

Constructor & Destructor Documentation

◆ WPSOLEParser()

WPSOLEParser::WPSOLEParser ( const std::string & mainName,
libwps_tools_win::Font::Type fontType,
std::function< int(std::string const &)> const & dirToIdFunc = getIdFromDirectory )

constructor

Parameters
mainNamename of the main ole, we must avoid to parse

◆ ~WPSOLEParser()

WPSOLEParser::~WPSOLEParser ( )

destructor

Member Function Documentation

◆ getIdFromDirectory()

int WPSOLEParser::getIdFromDirectory ( std::string const & dirName)
staticprotected

the default function which uses the last integer of dirName to return the final id, ie.

it converts "MatOST/MatadorObject1", "Object 1" in 1

◆ getNotParse()

std::vector< std::string > const & WPSOLEParser::getNotParse ( ) const

returns the list of unknown ole

Referenced by WPS4Parser::createOLEStructures(), and WPS8Parser::createOLEStructures().

◆ getObjectsMap()

std::map< int, WPSEmbeddedObject > const & WPSOLEParser::getObjectsMap ( ) const

returns the list of data positions which have been read

Referenced by WPS4Parser::createOLEStructures(), and WPS8Parser::createOLEStructures().

◆ isOle10Native()

bool WPSOLEParser::isOle10Native ( RVNGInputStreamPtr & ip,
std::string const & oleName )
staticprotected

theOle10Native : basic Windows' picture, with no size

Referenced by parse(), and readOle10Native().

◆ isOlePres()

bool WPSOLEParser::isOlePres ( RVNGInputStreamPtr & ip,
std::string const & oleName )
staticprotected

the OlePres001 seems to contain standart picture file and size

Referenced by parse(), and readOlePres().

◆ parse()

bool WPSOLEParser::parse ( RVNGInputStreamPtr fileInput)

tries to parse basic OLE (excepted mainName)

Returns
false if fileInput is not an Ole file

Referenced by WPS4Parser::createOLEStructures(), WPS8Parser::createOLEStructures(), Quattro9Parser::parseOLEStream(), and QuattroParser::parseOLEStream().

◆ readCompObj()

bool WPSOLEParser::readCompObj ( RVNGInputStreamPtr & ip,
std::string const & oleName,
libwps::DebugFile & ascii )
protected

the "CompObj" contains : UserType,ClipName,ProgIdName

Referenced by parse().

◆ readCONTENTS()

bool WPSOLEParser::readCONTENTS ( RVNGInputStreamPtr & input,
std::string const & oleName,
WPSEmbeddedObject & obj,
libwps::DebugFile & ascii )
staticprotected

the CONTENTS : seems to store a header size, the header and then a object in EMF (with the same header)...

Note
I only find such lib in 2 files, so the parsing may be incomplete and many such Ole rejected

Referenced by parse().

◆ readContents()

bool WPSOLEParser::readContents ( RVNGInputStreamPtr & input,
std::string const & oleName,
WPSEmbeddedObject & obj,
libwps::DebugFile & ascii )
staticprotected

the Contents : in general a picture : a PNG, an JPEG, a basic metafile, I find also a Word art picture, which are not sucefully read

Referenced by parse().

◆ readMM()

bool WPSOLEParser::readMM ( RVNGInputStreamPtr & input,
std::string const & oleName,
libwps::DebugFile & ascii )
staticprotected

the "MM" small structure : seems to contain the file versions

Referenced by parse().

◆ readMN0AndCheckWKS()

bool WPSOLEParser::readMN0AndCheckWKS ( RVNGInputStreamPtr & input,
std::string const & oleName,
WPSEmbeddedObject & obj,
libwps::DebugFile & ascii )
staticprotected

the "MN0" small structure : can contains a WKS file...

Referenced by parse().

◆ readObjInfo()

bool WPSOLEParser::readObjInfo ( RVNGInputStreamPtr & input,
std::string const & oleName,
libwps::DebugFile & ascii )
staticprotected

the "ObjInfo" small structure : seems to contain 3 ints=0,3,4

Referenced by parse().

◆ readOle()

bool WPSOLEParser::readOle ( RVNGInputStreamPtr & ip,
std::string const & oleName,
libwps::DebugFile & ascii )
staticprotected

the "Ole" small structure : unknown contain

Referenced by parse().

◆ readOle10Native()

bool WPSOLEParser::readOle10Native ( RVNGInputStreamPtr & ip,
WPSEmbeddedObject & obj,
libwps::DebugFile & ascii )
staticprotected

extracts the picture if it is possible

Referenced by parse().

◆ readOlePres()

bool WPSOLEParser::readOlePres ( RVNGInputStreamPtr & ip,
WPSEmbeddedObject & obj,
libwps::DebugFile & ascii )
staticprotected

extracts the picture of OlePres001 if it is possible

Referenced by parse().

◆ readSummaryInformation()

bool WPSOLEParser::readSummaryInformation ( RVNGInputStreamPtr input,
std::string const & oleName,
librevenge::RVNGPropertyList & pList,
libwps::DebugFile & ascii ) const
protected

the summary information and the doc summary information

Referenced by parse().

◆ readSummaryProperty()

bool WPSOLEParser::readSummaryProperty ( RVNGInputStreamPtr input,
long endPos,
int type,
libwps::DebugFile & ascii,
libwps::DebugStream & f ) const
protected

try to read a summary property

Referenced by readSummaryInformation(), and readSummaryProperty().

◆ readSummaryPropertyLong()

bool WPSOLEParser::readSummaryPropertyLong ( RVNGInputStreamPtr input,
long endPos,
int type,
long & value,
libwps::DebugStream & f )
staticprotected

try to read a summary property: type 2,3,9,12,

Referenced by readSummaryInformation().

◆ readSummaryPropertyString()

bool WPSOLEParser::readSummaryPropertyString ( RVNGInputStreamPtr input,
long endPos,
int type,
librevenge::RVNGString & string,
libwps::DebugStream & f ) const
protected

try to read a summary property: type 1e

Referenced by readSummaryInformation(), and readSummaryProperty().

◆ updateMetaData()

void WPSOLEParser::updateMetaData ( librevenge::RVNGPropertyList & metaData) const

update the meta data, using information find in SummaryInformation

Member Data Documentation

◆ m_avoidOLE

std::string WPSOLEParser::m_avoidOLE
protected

if filled, does not parse content with this name

Referenced by parse(), and WPSOLEParser().

◆ m_state

std::shared_ptr<WPSOLEParserInternal::State> WPSOLEParser::m_state
protected

The documentation for this class was generated from the following files:

Generated on Sat Jul 19 2025 05:24:40 for libwps by doxygen 1.14.0