diff options
Diffstat (limited to 'oox/inc/oox')
-rw-r--r-- | oox/inc/oox/dump/biffdumper.hxx | 13 | ||||
-rw-r--r-- | oox/inc/oox/dump/dumperbase.hxx | 13 | ||||
-rw-r--r-- | oox/inc/oox/dump/xlsbdumper.hxx | 1 | ||||
-rwxr-xr-x | oox/inc/oox/ole/axbinaryreader.hxx | 188 | ||||
-rw-r--r-- | oox/inc/oox/ole/axcontrol.hxx | 34 | ||||
-rw-r--r-- | oox/inc/oox/ole/axcontrolfragment.hxx | 4 | ||||
-rw-r--r-- | oox/inc/oox/xls/biffhelper.hxx | 27 | ||||
-rw-r--r-- | oox/inc/oox/xls/worksheetfragment.hxx | 2 |
8 files changed, 257 insertions, 25 deletions
diff --git a/oox/inc/oox/dump/biffdumper.hxx b/oox/inc/oox/dump/biffdumper.hxx index a7f021ed5244..5b772d4a13f1 100644 --- a/oox/inc/oox/dump/biffdumper.hxx +++ b/oox/inc/oox/dump/biffdumper.hxx @@ -415,12 +415,25 @@ private: sal_uInt16 dumpFormatIdx( const String& rName = EMPTY_STRING ); sal_uInt16 dumpXfIdx( const String& rName = EMPTY_STRING, bool bBiff2Style = false ); + template< typename Type > + inline Type dumpExtColorType() { return dumpDec< Type >( "color-type", "EXTCOLOR-TYPE" ); } + void dumpExtColorValue( sal_uInt32 nColorType ); + void dumpExtColor( const String& rName = EMPTY_STRING ); + void dumpExtCfColor( const String& rName = EMPTY_STRING ); + void dumpExtGradientHead(); + ::rtl::OUString dumpPivotString( const String& rName, sal_uInt16 nStrLen ); ::rtl::OUString dumpPivotString( const String& rName ); sal_uInt16 dumpCellHeader( bool bBiff2Style = false ); void dumpBoolErr(); + void dumpCfRuleProp(); + void dumpXfExtProp(); + void dumpDxfProp(); + void dumpDxf12Prop(); + void dumpCfRule12Param( sal_uInt16 nSubType ); + void dumpFontRec(); void dumpFormatRec(); void dumpXfRec(); diff --git a/oox/inc/oox/dump/dumperbase.hxx b/oox/inc/oox/dump/dumperbase.hxx index 9a791942ce4e..28cc42ab8604 100644 --- a/oox/inc/oox/dump/dumperbase.hxx +++ b/oox/inc/oox/dump/dumperbase.hxx @@ -1901,19 +1901,6 @@ protected: const ObjectBase& rParent, const BinaryInputStreamRef& rxBaseStrm, const ::rtl::OUString& rSysFileName, - const BinaryInputStreamRef& rxRecStrm, - const String& rRecNames, - const String& rSimpleRecs = EMPTY_STRING ); - void construct( - const OutputObjectBase& rParent, - const BinaryInputStreamRef& rxBaseStrm, - const BinaryInputStreamRef& rxRecStrm, - const String& rRecNames, - const String& rSimpleRecs = EMPTY_STRING ); - void construct( - const ObjectBase& rParent, - const BinaryInputStreamRef& rxBaseStrm, - const ::rtl::OUString& rSysFileName, const String& rRecNames, const String& rSimpleRecs = EMPTY_STRING ); void construct( diff --git a/oox/inc/oox/dump/xlsbdumper.hxx b/oox/inc/oox/dump/xlsbdumper.hxx index dafa3901ea6e..6575606fcfb5 100644 --- a/oox/inc/oox/dump/xlsbdumper.hxx +++ b/oox/inc/oox/dump/xlsbdumper.hxx @@ -211,6 +211,7 @@ protected: virtual void implDumpRecordBody(); private: + void dumpGradientHead(); void dumpCellHeader( bool bWithColumn ); private: diff --git a/oox/inc/oox/ole/axbinaryreader.hxx b/oox/inc/oox/ole/axbinaryreader.hxx new file mode 100755 index 000000000000..6bd8a085e783 --- /dev/null +++ b/oox/inc/oox/ole/axbinaryreader.hxx @@ -0,0 +1,188 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2008 by Sun Microsystems, Inc. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: axbinaryreader.hxx,v $ + * $Revision: 1.1 $ + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef OOX_OLE_AXBINARYREADER_HXX +#define OOX_OLE_AXBINARYREADER_HXX + +#include "oox/helper/binaryinputstream.hxx" +#include "oox/helper/containerhelper.hxx" + +namespace oox { +namespace ole { + +// ============================================================================ + +/** A wrapper for an unseekable binary input stream. */ +class AxAlignedInputStream : public BinaryInputStream +{ +public: + explicit AxAlignedInputStream( BinaryInputStream& rInStrm ); + + /** Return the current stream position (relative to position at construction time). */ + virtual sal_Int64 tell() const; + /** Seeks the stream to the passed position, if it is behind the current position. */ + virtual void seek( sal_Int64 nPos ); + + /** Reads nBytes bytes to the passed sequence. + @return Number of bytes really read. */ + virtual sal_Int32 readData( StreamDataSequence& orData, sal_Int32 nBytes ); + /** Reads nBytes bytes to the (existing) buffer opMem. + @return Number of bytes really read. */ + virtual sal_Int32 readMemory( void* opMem, sal_Int32 nBytes ); + /** Seeks the stream forward by the passed number of bytes. */ + virtual void skip( sal_Int32 nBytes ); + + /** Aligns the stream to a multiple of the passed size. */ + void align( size_t nSize ); + + /** Aligns the stream according to the passed type and reads an atomar value. */ + template< typename Type > + inline Type readAligned() { align( sizeof( Type ) ); return readValue< Type >(); } + /** Aligns the stream according to the passed type and skips the size of the type. */ + template< typename Type > + inline void skipAligned() { align( sizeof( Type ) ); skip( sizeof( Type ) ); } + +private: + BinaryInputStream& mrInStrm; /// The wrapped input stream. + sal_Int64 mnStrmPos; /// Tracks relative position in the stream. +}; + +// ============================================================================ + +/** Import helper to read simple and complex ActiveX form control properties + from a binary input stream. */ +class AxBinaryPropertyReader +{ +public: + explicit AxBinaryPropertyReader( BinaryInputStream& rInStrm, bool b64BitPropFlags = false ); + + /** Reads the next integer property value from the stream, if the + respective flag in the property mask is set. */ + template< typename StreamType, typename DataType > + inline void readIntProperty( DataType& ornValue ) + { if( startNextProperty() ) ornValue = maInStrm.readAligned< StreamType >(); } + /** Reads the next boolean property value from the stream, if the + respective flag in the property mask is set. */ + void readBoolProperty( bool& orbValue, bool bReverse = false ); + /** Reads the next pair property from the stream, if the respective flag in + the property mask is set. */ + void readPairProperty( sal_Int32& ornValue1, sal_Int32& ornValue2 ); + /** Reads the next string property from the stream, if the respective flag + in the property mask is set. */ + void readStringProperty( ::rtl::OUString& orValue ); + /** Reads the next picture property from the stream, if the respective flag + in the property mask is set. */ + void readPictureProperty( StreamDataSequence& orPicData ); + + /** Skips the next integer property value in the stream, if the respective + flag in the property mask is set. */ + template< typename StreamType > + inline void skipIntProperty() { if( startNextProperty() ) maInStrm.skipAligned< StreamType >(); } + /** Skips the next boolean property value in the stream, if the respective + flag in the property mask is set. */ + inline void skipBoolProperty() { startNextProperty(); } + /** Skips the next string property in the stream, if the respective flag in + the property mask is set. */ + inline void skipStringProperty() { readStringProperty( maDummyString ); } + /** Skips the next picture property in the stream, if the respective flag + in the property mask is set. */ + inline void skipPictureProperty() { readPictureProperty( maDummyPicData ); } + /** Has to be called for undefined properties. If the respective flag in + the mask is set, the property import cannot be finished successfully. */ + inline void skipUndefinedProperty() { ensureValid( !startNextProperty() ); } + + /** Final processing, reads contents of all complex properties. */ + bool finalizeImport(); + +private: + bool ensureValid( bool bCondition = true ); + bool startNextProperty(); + +private: + /** Base class for complex properties such as string, point, size, GUID, picture. */ + struct ComplexProperty + { + virtual ~ComplexProperty(); + virtual bool readProperty( AxAlignedInputStream& rInStrm ) = 0; + }; + + /** Complex property for a 32-bit value pair, e.g. point or size. */ + struct PairProperty : public ComplexProperty + { + sal_Int32& mrnValue1; + sal_Int32& mrnValue2; + + inline explicit PairProperty( sal_Int32& rnValue1, sal_Int32& rnValue2 ) : + mrnValue1( rnValue1 ), mrnValue2( rnValue2 ) {} + virtual bool readProperty( AxAlignedInputStream& rInStrm ); + }; + + /** Complex property for a string value. */ + struct StringProperty : public ComplexProperty + { + ::rtl::OUString& mrValue; + sal_uInt32 mnSize; + + inline explicit StringProperty( ::rtl::OUString& rValue, sal_uInt32 nSize ) : + mrValue( rValue ), mnSize( nSize ) {} + virtual bool readProperty( AxAlignedInputStream& rInStrm ); + }; + + /** Stream property for a picture or mouse icon. */ + struct PictureProperty : public ComplexProperty + { + StreamDataSequence& mrPicData; + + inline explicit PictureProperty( StreamDataSequence& rPicData ) : + mrPicData( rPicData ) {} + virtual bool readProperty( AxAlignedInputStream& rInStrm ); + }; + + typedef RefVector< ComplexProperty > ComplexPropVector; + +private: + AxAlignedInputStream maInStrm; /// The input stream to read from. + ComplexPropVector maLargeProps; /// Stores info for all used large properties. + ComplexPropVector maStreamProps; /// Stores info for all used stream data properties. + StreamDataSequence maDummyPicData; /// Dummy picture for unsupported properties. + ::rtl::OUString maDummyString; /// Dummy string for unsupported properties. + sal_Int64 mnPropFlags; /// Flags specifying existing properties. + sal_Int64 mnNextProp; /// Next property to read. + sal_Int64 mnPropsEnd; /// End position of simple/large properties. + bool mbValid; /// True = stream still valid. +}; + +// ============================================================================ + +} // namespace ole +} // namespace oox + +#endif + diff --git a/oox/inc/oox/ole/axcontrol.hxx b/oox/inc/oox/ole/axcontrol.hxx index 4c34b5447bff..538e8aee961d 100644 --- a/oox/inc/oox/ole/axcontrol.hxx +++ b/oox/inc/oox/ole/axcontrol.hxx @@ -32,15 +32,16 @@ #define OOX_OLE_AXCONTROL_HXX #include <memory> -#include <rtl/ustring.hxx> -#include <com/sun/star/uno/Reference.hxx> #include "oox/helper/binarystreambase.hxx" namespace com { namespace sun { namespace star { namespace awt { class XControlModel; } } } } -namespace oox { class PropertyMap; } +namespace oox { + class BinaryInputStream; + class PropertyMap; +} namespace oox { namespace ole { @@ -58,7 +59,9 @@ public: /** Derived classes set specific OOXML properties at the model structure. */ virtual void importProperty( sal_Int32 nPropId, const ::rtl::OUString& rValue ); /** Derived classes set binary data (picture, mouse icon) at the model structure. */ - virtual void importPictureData( sal_Int32 nPropId, const StreamDataSequence& rDataSeq ); + virtual void importPictureData( sal_Int32 nPropId, BinaryInputStream& rInStrm ); + /** Derived classes import a form control model from the passed input stream. */ + virtual void importBinaryModel( BinaryInputStream& rInStrm ); /** Derived classes return the UNO service name used to construct the control component. */ virtual ::rtl::OUString getServiceName() const = 0; @@ -81,6 +84,7 @@ public: explicit AxFontDataModel(); virtual void importProperty( sal_Int32 nPropId, const ::rtl::OUString& rValue ); + virtual void importBinaryModel( BinaryInputStream& rInStrm ); virtual void convertProperties( AxControlHelper& rHelper, PropertyMap& rPropMap ) const; private: @@ -100,7 +104,8 @@ public: virtual ::rtl::OUString getServiceName() const; virtual void importProperty( sal_Int32 nPropId, const ::rtl::OUString& rValue ); - virtual void importPictureData( sal_Int32 nPropId, const StreamDataSequence& rDataSeq ); + virtual void importPictureData( sal_Int32 nPropId, BinaryInputStream& rInStrm ); + virtual void importBinaryModel( BinaryInputStream& rInStrm ); virtual void convertProperties( AxControlHelper& rHelper, PropertyMap& rPropMap ) const; private: @@ -122,6 +127,7 @@ public: virtual ::rtl::OUString getServiceName() const; virtual void importProperty( sal_Int32 nPropId, const ::rtl::OUString& rValue ); + virtual void importBinaryModel( BinaryInputStream& rInStrm ); virtual void convertProperties( AxControlHelper& rHelper, PropertyMap& rPropMap ) const; private: @@ -143,7 +149,8 @@ public: virtual ::rtl::OUString getServiceName() const; virtual void importProperty( sal_Int32 nPropId, const ::rtl::OUString& rValue ); - virtual void importPictureData( sal_Int32 nPropId, const StreamDataSequence& rDataSeq ); + virtual void importPictureData( sal_Int32 nPropId, BinaryInputStream& rInStrm ); + virtual void importBinaryModel( BinaryInputStream& rInStrm ); virtual void convertProperties( AxControlHelper& rHelper, PropertyMap& rPropMap ) const; private: @@ -166,7 +173,8 @@ public: explicit AxMorphDataModel(); virtual void importProperty( sal_Int32 nPropId, const ::rtl::OUString& rValue ); - virtual void importPictureData( sal_Int32 nPropId, const StreamDataSequence& rDataSeq ); + virtual void importPictureData( sal_Int32 nPropId, BinaryInputStream& rInStrm ); + virtual void importBinaryModel( BinaryInputStream& rInStrm ); virtual void convertProperties( AxControlHelper& rHelper, PropertyMap& rPropMap ) const; protected: @@ -266,6 +274,7 @@ public: virtual ::rtl::OUString getServiceName() const; virtual void importProperty( sal_Int32 nPropId, const ::rtl::OUString& rValue ); + virtual void importBinaryModel( BinaryInputStream& rInStrm ); virtual void convertProperties( AxControlHelper& rHelper, PropertyMap& rPropMap ) const; private: @@ -289,6 +298,7 @@ public: virtual ::rtl::OUString getServiceName() const; virtual void importProperty( sal_Int32 nPropId, const ::rtl::OUString& rValue ); + virtual void importBinaryModel( BinaryInputStream& rInStrm ); virtual void convertProperties( AxControlHelper& rHelper, PropertyMap& rPropMap ) const; private: @@ -317,6 +327,13 @@ public: /** Creates and returns the internal control model according to the passed MS class identifier. */ AxControlModelBase* createModel( const ::rtl::OUString& rClassId ); + /** Imports a form control model from the passed input stream. */ + void importBinaryModel( BinaryInputStream& rInStrm ); + + /** Returns the internal control model. */ + inline const AxControlModelBase* getModel() const { return mxModel.get(); } + /** Returns the MS class identifier used to create the internal control model. */ + inline const ::rtl::OUString& getClassId() const { return maClassId; } /** Creates and returns the UNO form component object for this control and inserts it into the form wrapped by the passed helper. */ @@ -325,7 +342,8 @@ public: private: ::std::auto_ptr< AxControlModelBase > mxModel; - ::rtl::OUString maName; + ::rtl::OUString maClassId; /// Class identifier of the control model. + ::rtl::OUString maName; /// Name of the control. }; // ============================================================================ diff --git a/oox/inc/oox/ole/axcontrolfragment.hxx b/oox/inc/oox/ole/axcontrolfragment.hxx index d97691e67d64..a99e8b79caed 100644 --- a/oox/inc/oox/ole/axcontrolfragment.hxx +++ b/oox/inc/oox/ole/axcontrolfragment.hxx @@ -45,7 +45,9 @@ class AxControlModelBase; class AxControlPropertyContext : public ::oox::core::ContextHandler2 { public: - explicit AxControlPropertyContext( ::oox::core::FragmentHandler2& rFragment, AxControlModelBase& rModel ); + explicit AxControlPropertyContext( + ::oox::core::FragmentHandler2& rFragment, + AxControlModelBase& rModel ); virtual ::oox::core::ContextHandlerRef onCreateContext( sal_Int32 nElement, const AttributeList& rAttribs ); diff --git a/oox/inc/oox/xls/biffhelper.hxx b/oox/inc/oox/xls/biffhelper.hxx index 60efb9e856a6..c013240647a9 100644 --- a/oox/inc/oox/xls/biffhelper.hxx +++ b/oox/inc/oox/xls/biffhelper.hxx @@ -269,11 +269,16 @@ const sal_uInt16 BIFF3_ID_BOF = 0x0209; const sal_uInt16 BIFF4_ID_BOF = 0x0409; const sal_uInt16 BIFF5_ID_BOF = 0x0809; const sal_uInt16 BIFF_ID_BOOKBOOL = 0x00DA; +const sal_uInt16 BIFF_ID_BOOKEXT = 0x0863; const sal_uInt16 BIFF2_ID_BOOLERR = 0x0005; const sal_uInt16 BIFF3_ID_BOOLERR = 0x0205; const sal_uInt16 BIFF_ID_BOTTOMMARGIN = 0x0029; const sal_uInt16 BIFF_ID_CALCCOUNT = 0x000C; const sal_uInt16 BIFF_ID_CALCMODE = 0x000D; +const sal_uInt16 BIFF_ID_CFHEADER = 0x01B0; +const sal_uInt16 BIFF_ID_CFRULE = 0x01B1; +const sal_uInt16 BIFF_ID_CFRULE12 = 0x087A; +const sal_uInt16 BIFF_ID_CFRULEEXT = 0x087B; const sal_uInt16 BIFF_ID_CH3DDATAFORMAT = 0x105F; const sal_uInt16 BIFF_ID_CHAREA = 0x101A; const sal_uInt16 BIFF_ID_CHAREAFORMAT = 0x100A; @@ -289,6 +294,7 @@ const sal_uInt16 BIFF_ID_CHCHARTLINE = 0x101C; const sal_uInt16 BIFF_ID_CHDATAFORMAT = 0x1006; const sal_uInt16 BIFF_ID_CHDEFAULTTEXT = 0x1024; const sal_uInt16 BIFF_ID_CHDROPBAR = 0x103D; +const sal_uInt16 BIFF_ID_CHECKCOMPAT = 0x088C; const sal_uInt16 BIFF_ID_CHEND = 0x1034; const sal_uInt16 BIFF_ID_CHESCHERFORMAT = 0x1066; const sal_uInt16 BIFF_ID_CHFONT = 0x1026; @@ -335,15 +341,15 @@ const sal_uInt16 BIFF_ID_CHTEXT = 0x1025; const sal_uInt16 BIFF_ID_CHTICK = 0x101E; const sal_uInt16 BIFF_ID_CHTYPEGROUP = 0x1014; const sal_uInt16 BIFF_ID_CHVALUERANGE = 0x101F; -const sal_uInt16 BIFF_ID_CFHEADER = 0x01B0; -const sal_uInt16 BIFF_ID_CFRULE = 0x01B1; const sal_uInt16 BIFF_ID_CODENAME = 0x01BA; const sal_uInt16 BIFF_ID_CODEPAGE = 0x0042; const sal_uInt16 BIFF_ID_COLINFO = 0x007D; const sal_uInt16 BIFF_ID_COLUMNDEFAULT = 0x0020; const sal_uInt16 BIFF_ID_COLWIDTH = 0x0024; +const sal_uInt16 BIFF_ID_COMPRESSPICS = 0x089B; const sal_uInt16 BIFF_ID_CONT = 0x003C; const sal_uInt16 BIFF_ID_COORDLIST = 0x00A9; +const sal_uInt16 BIFF_ID_COUNTRY = 0x008C; const sal_uInt16 BIFF_ID_CRN = 0x005A; const sal_uInt16 BIFF2_ID_DATATABLE = 0x0036; const sal_uInt16 BIFF3_ID_DATATABLE = 0x0236; @@ -351,6 +357,7 @@ const sal_uInt16 BIFF2_ID_DATATABLE2 = 0x0037; const sal_uInt16 BIFF_ID_DATAVALIDATION = 0x01BE; const sal_uInt16 BIFF_ID_DATAVALIDATIONS = 0x01B2; const sal_uInt16 BIFF_ID_DATEMODE = 0x0022; +const sal_uInt16 BIFF_ID_DBCELL = 0x00D7; const sal_uInt16 BIFF_ID_DCONBINAME = 0x01B5; const sal_uInt16 BIFF_ID_DCONNAME = 0x0052; const sal_uInt16 BIFF_ID_DCONREF = 0x0051; @@ -363,6 +370,7 @@ const sal_uInt16 BIFF3_ID_DEFROWHEIGHT = 0x0225; const sal_uInt16 BIFF_ID_DELTA = 0x0010; const sal_uInt16 BIFF2_ID_DIMENSION = 0x0000; const sal_uInt16 BIFF3_ID_DIMENSION = 0x0200; +const sal_uInt16 BIFF_ID_DXF = 0x088D; const sal_uInt16 BIFF_ID_EOF = 0x000A; const sal_uInt16 BIFF_ID_EXTERNALBOOK = 0x01AE; const sal_uInt16 BIFF2_ID_EXTERNALNAME = 0x0023; @@ -377,19 +385,24 @@ const sal_uInt16 BIFF3_ID_FONT = 0x0231; const sal_uInt16 BIFF5_ID_FONT = 0x0031; const sal_uInt16 BIFF_ID_FONTCOLOR = 0x0045; const sal_uInt16 BIFF_ID_FOOTER = 0x0015; +const sal_uInt16 BIFF_ID_FORCEFULLCALC = 0x08A3; const sal_uInt16 BIFF2_ID_FORMAT = 0x001E; const sal_uInt16 BIFF4_ID_FORMAT = 0x041E; const sal_uInt16 BIFF2_ID_FORMULA = 0x0006; const sal_uInt16 BIFF3_ID_FORMULA = 0x0206; const sal_uInt16 BIFF4_ID_FORMULA = 0x0406; const sal_uInt16 BIFF5_ID_FORMULA = 0x0006; +const sal_uInt16 BIFF_ID_GUTS = 0x0080; const sal_uInt16 BIFF_ID_HCENTER = 0x0083; const sal_uInt16 BIFF_ID_HEADER = 0x0014; +const sal_uInt16 BIFF_ID_HEADERFOOTER = 0x089C; const sal_uInt16 BIFF_ID_HIDEOBJ = 0x008D; const sal_uInt16 BIFF_ID_HORPAGEBREAKS = 0x001B; const sal_uInt16 BIFF_ID_HYPERLINK = 0x01B8; const sal_uInt16 BIFF3_ID_IMGDATA = 0x007F; const sal_uInt16 BIFF8_ID_IMGDATA = 0x00E9; +const sal_uInt16 BIFF2_ID_INDEX = 0x000B; +const sal_uInt16 BIFF3_ID_INDEX = 0x020B; const sal_uInt16 BIFF2_ID_INTEGER = 0x0002; const sal_uInt16 BIFF_ID_INTERFACEHDR = 0x00E1; const sal_uInt16 BIFF_ID_ITERATION = 0x0011; @@ -403,6 +416,7 @@ const sal_uInt16 BIFF_ID_MERGEDCELLS = 0x00E5; const sal_uInt16 BIFF_ID_MSODRAWING = 0x00EC; const sal_uInt16 BIFF_ID_MSODRAWINGGROUP = 0x00EB; const sal_uInt16 BIFF_ID_MSODRAWINGSEL = 0x00ED; +const sal_uInt16 BIFF_ID_MTHREADSETTINGS = 0x089A; const sal_uInt16 BIFF_ID_MULTBLANK = 0x00BE; const sal_uInt16 BIFF_ID_MULTRK = 0x00BD; const sal_uInt16 BIFF_ID_NOTE = 0x001C; @@ -410,6 +424,7 @@ const sal_uInt16 BIFF2_ID_NUMBER = 0x0003; const sal_uInt16 BIFF3_ID_NUMBER = 0x0203; const sal_uInt16 BIFF_ID_OBJ = 0x005D; const sal_uInt16 BIFF_ID_OBJECTPROTECT = 0x0063; +const sal_uInt16 BIFF_ID_PAGELAYOUTVIEW = 0x088B; const sal_uInt16 BIFF_ID_PAGESETUP = 0x00A1; const sal_uInt16 BIFF_ID_PALETTE = 0x0092; const sal_uInt16 BIFF_ID_PANE = 0x0041; @@ -448,6 +463,7 @@ const sal_uInt16 BIFF_ID_PTFITEM = 0x00B2; const sal_uInt16 BIFF_ID_PTPAGEFIELDS = 0x00B6; const sal_uInt16 BIFF_ID_PTROWCOLFIELDS = 0x00B4; const sal_uInt16 BIFF_ID_PTROWCOLITEMS = 0x00B5; +const sal_uInt16 BIFF_ID_RECALCID = 0x01C1; const sal_uInt16 BIFF_ID_REFMODE = 0x000F; const sal_uInt16 BIFF_ID_RIGHTMARGIN = 0x0027; const sal_uInt16 BIFF_ID_RK = 0x027E; @@ -461,11 +477,12 @@ const sal_uInt16 BIFF_ID_SCL = 0x00A0; const sal_uInt16 BIFF_ID_SCENPROTECT = 0x00DD; const sal_uInt16 BIFF_ID_SCREENTIP = 0x0800; const sal_uInt16 BIFF_ID_SELECTION = 0x001D; +const sal_uInt16 BIFF_ID_SHAREDFEATHEAD = 0x0867; const sal_uInt16 BIFF_ID_SHAREDFMLA = 0x04BC; const sal_uInt16 BIFF_ID_SHEET = 0x0085; +const sal_uInt16 BIFF_ID_SHEETEXT = 0x0862; const sal_uInt16 BIFF_ID_SHEETHEADER = 0x008F; const sal_uInt16 BIFF_ID_SHEETPR = 0x0081; -const sal_uInt16 BIFF_ID_SHEETPROTECTION = 0x0867; const sal_uInt16 BIFF_ID_SST = 0x00FC; const sal_uInt16 BIFF_ID_STANDARDWIDTH = 0x0099; const sal_uInt16 BIFF2_ID_STRING = 0x0007; @@ -473,6 +490,8 @@ const sal_uInt16 BIFF3_ID_STRING = 0x0207; const sal_uInt16 BIFF_ID_STYLE = 0x0293; const sal_uInt16 BIFF_ID_STYLEEXT = 0x0892; const sal_uInt16 BIFF_ID_SXEXT = 0x00DC; +const sal_uInt16 BIFF_ID_TABLESTYLES = 0x088E; +const sal_uInt16 BIFF_ID_THEME = 0x0896; const sal_uInt16 BIFF_ID_TOPMARGIN = 0x0028; const sal_uInt16 BIFF_ID_TXO = 0x01B6; const sal_uInt16 BIFF_ID_UNCALCED = 0x005E; @@ -488,6 +507,8 @@ const sal_uInt16 BIFF2_ID_XF = 0x0043; const sal_uInt16 BIFF3_ID_XF = 0x0243; const sal_uInt16 BIFF4_ID_XF = 0x0443; const sal_uInt16 BIFF5_ID_XF = 0x00E0; +const sal_uInt16 BIFF_ID_XFCRC = 0x087C; +const sal_uInt16 BIFF_ID_XFEXT = 0x087D; const sal_uInt16 BIFF_ID_UNKNOWN = SAL_MAX_UINT16; diff --git a/oox/inc/oox/xls/worksheetfragment.hxx b/oox/inc/oox/xls/worksheetfragment.hxx index 110851ea9521..91250146f2ae 100644 --- a/oox/inc/oox/xls/worksheetfragment.hxx +++ b/oox/inc/oox/xls/worksheetfragment.hxx @@ -182,6 +182,8 @@ private: void importPTDefinition(); /** Imports the SCENARIOS record and the following scenarios. */ void importScenarios(); + /** Imports the SHAREDFEATHEAD record. */ + void importSharedFeatHead(); /** Imports the STANDARDWIDTH record and sets standard column width. */ void importStandardWidth(); |