incubator-ooo-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From er...@apache.org
Subject svn commit: r1167634 [1/2] - in /incubator/ooo/trunk/main/filter: inc/filter/msfilter/ source/msfilter/
Date Sat, 10 Sep 2011 22:47:57 GMT
Author: erack
Date: Sat Sep 10 22:47:55 2011
New Revision: 1167634

URL: http://svn.apache.org/viewvc?rev=1167634&view=rev
Log:
impress212: DffPropSet -> minor code improvements, removing table

# User sj <sj@openoffice.org>

Added:
    incubator/ooo/trunk/main/filter/inc/filter/msfilter/dffpropset.hxx   (with props)
    incubator/ooo/trunk/main/filter/inc/filter/msfilter/dffrecordheader.hxx   (with props)
    incubator/ooo/trunk/main/filter/source/msfilter/dffpropset.cxx   (with props)
    incubator/ooo/trunk/main/filter/source/msfilter/dffrecordheader.cxx   (with props)
Modified:
    incubator/ooo/trunk/main/filter/inc/filter/msfilter/msdffimp.hxx
    incubator/ooo/trunk/main/filter/source/msfilter/makefile.mk
    incubator/ooo/trunk/main/filter/source/msfilter/msdffimp.cxx
    incubator/ooo/trunk/main/filter/source/msfilter/viscache.hxx

Added: incubator/ooo/trunk/main/filter/inc/filter/msfilter/dffpropset.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/filter/inc/filter/msfilter/dffpropset.hxx?rev=1167634&view=auto
==============================================================================
--- incubator/ooo/trunk/main/filter/inc/filter/msfilter/dffpropset.hxx (added)
+++ incubator/ooo/trunk/main/filter/inc/filter/msfilter/dffpropset.hxx Sat Sep 10 22:47:55 2011
@@ -0,0 +1,84 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * 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 _DFFPROPSET_HXX
+#define _DFFPROPSET_HXX
+
+#include <tools/solar.h>
+#include <filter/msfilter/msfilterdllapi.h>
+#include <filter/msfilter/dffrecordheader.hxx> 
+#include <tools/stream.hxx>
+#include <vector>
+#include <tools/table.hxx>
+
+struct DffPropFlags
+{
+	sal_uInt16	bSet		: 1;
+	sal_uInt16	bComplex	: 1;
+	sal_uInt16	bBlip		: 1;
+	sal_uInt16	bSoftAttr	: 1;
+};
+
+struct DffPropSetEntry
+{
+	DffPropFlags	aFlags;	
+	sal_uInt16		nComplexIndexOrFlagsHAttr;
+	sal_uInt32		nContent;
+};
+
+class MSFILTER_DLLPUBLIC DffPropSet
+{
+	private :
+
+		DffPropSetEntry*			mpPropSetEntries;
+		std::vector< sal_uInt32 >	maOffsets;
+
+		void ReadPropSet( SvStream&, bool );
+
+	public :
+
+		explicit DffPropSet();
+		~DffPropSet();
+
+		inline sal_Bool	IsProperty( sal_uInt32 nRecType ) const { return ( mpPropSetEntries[ nRecType & 0x3ff ].aFlags.bSet ); };
+		sal_Bool		IsHardAttribute( sal_uInt32 nId ) const;
+		sal_uInt32		GetPropertyValue( sal_uInt32 nId, sal_uInt32 nDefault = 0 ) const;
+        /** Returns a boolean property by its real identifier. */
+        bool        GetPropertyBool( sal_uInt32 nId, bool bDefault = false ) const;
+        /** Returns a string property. */
+        ::rtl::OUString GetPropertyString( sal_uInt32 nId, SvStream& rStrm ) const;
+		void		SetPropertyValue( sal_uInt32 nId, sal_uInt32 nValue ) const;
+		sal_Bool		SeekToContent( sal_uInt32 nRecType, SvStream& rSt ) const;
+		void		InitializePropSet( sal_uInt16 nPropSetType ) const;
+
+		friend SvStream& operator>>( SvStream& rIn, DffPropSet& rPropSet );
+		friend SvStream& operator|=( SvStream& rIn, DffPropSet& rPropSet );
+};
+
+#endif
+
+

Propchange: incubator/ooo/trunk/main/filter/inc/filter/msfilter/dffpropset.hxx
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/ooo/trunk/main/filter/inc/filter/msfilter/dffrecordheader.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/filter/inc/filter/msfilter/dffrecordheader.hxx?rev=1167634&view=auto
==============================================================================
--- incubator/ooo/trunk/main/filter/inc/filter/msfilter/dffrecordheader.hxx (added)
+++ incubator/ooo/trunk/main/filter/inc/filter/msfilter/dffrecordheader.hxx Sat Sep 10 22:47:55 2011
@@ -0,0 +1,59 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * 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 _DFFRECORDHEADER_HXX
+#define _DFFRECORDHEADER_HXX
+
+#include <tools/solar.h>
+#include <tools/stream.hxx>
+#include <filter/msfilter/msfilterdllapi.h>
+#include <svx/msdffdef.hxx>
+
+class MSFILTER_DLLPUBLIC DffRecordHeader
+{
+
+public:
+	sal_uInt8    nRecVer; // may be DFF_PSFLAG_CONTAINER
+	sal_uInt16  nRecInstance;
+	sal_uInt16  nImpVerInst;
+	sal_uInt16  nRecType;
+	sal_uInt32  nRecLen;
+	sal_uLong	nFilePos;
+public:
+	DffRecordHeader() : nRecVer(0), nRecInstance(0), nImpVerInst(0), nRecType(0), nRecLen(0), nFilePos(0) {}
+	FASTBOOL IsContainer() const { return nRecVer == DFF_PSFLAG_CONTAINER; }
+	sal_uLong    GetRecBegFilePos() const { return nFilePos; }
+	sal_uLong    GetRecEndFilePos() const { return nFilePos + DFF_COMMON_RECORD_HEADER_SIZE + nRecLen; }
+	void SeekToEndOfRecord(SvStream& rIn) const { rIn.Seek(nFilePos + DFF_COMMON_RECORD_HEADER_SIZE + nRecLen ); }
+	void SeekToContent(    SvStream& rIn) const { rIn.Seek(nFilePos + DFF_COMMON_RECORD_HEADER_SIZE ); }
+	void SeekToBegOfRecord(SvStream& rIn) const { rIn.Seek( nFilePos ); }
+
+	MSFILTER_DLLPUBLIC friend SvStream& operator>>(SvStream& rIn, DffRecordHeader& rRec);
+
+};
+
+#endif
\ No newline at end of file

Propchange: incubator/ooo/trunk/main/filter/inc/filter/msfilter/dffrecordheader.hxx
------------------------------------------------------------------------------
    svn:executable = *

Modified: incubator/ooo/trunk/main/filter/inc/filter/msfilter/msdffimp.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/filter/inc/filter/msfilter/msdffimp.hxx?rev=1167634&r1=1167633&r2=1167634&view=diff
==============================================================================
--- incubator/ooo/trunk/main/filter/inc/filter/msfilter/msdffimp.hxx (original)
+++ incubator/ooo/trunk/main/filter/inc/filter/msfilter/msdffimp.hxx Sat Sep 10 22:47:55 2011
@@ -36,6 +36,8 @@
 #include <tools/gen.hxx>
 #include <tools/table.hxx>
 #include <svx/msdffdef.hxx>
+#include <filter/msfilter/dffpropset.hxx>
+#include <filter/msfilter/dffrecordheader.hxx>
 #include <filter/msfilter/msfiltertracer.hxx>
 #include <vcl/graph.hxx>
 #include <string.h>
@@ -61,65 +63,8 @@ struct SvxMSDffBLIPInfo;
 struct SvxMSDffShapeInfo;
 struct SvxMSDffShapeOrder;
 
-class MSFILTER_DLLPUBLIC DffRecordHeader
-{
-
-public:
-	sal_uInt8    nRecVer; // may be DFF_PSFLAG_CONTAINER
-	sal_uInt16  nRecInstance;
-	sal_uInt16  nImpVerInst;
-	sal_uInt16  nRecType;
-	sal_uInt32  nRecLen;
-	sal_uLong	nFilePos;
-public:
-	DffRecordHeader() : nRecVer(0), nRecInstance(0), nImpVerInst(0), nRecType(0), nRecLen(0), nFilePos(0) {}
-	FASTBOOL IsContainer() const { return nRecVer == DFF_PSFLAG_CONTAINER; }
-	sal_uLong    GetRecBegFilePos() const { return nFilePos; }
-	sal_uLong    GetRecEndFilePos() const { return nFilePos + DFF_COMMON_RECORD_HEADER_SIZE + nRecLen; }
-	void SeekToEndOfRecord(SvStream& rIn) const { rIn.Seek(nFilePos + DFF_COMMON_RECORD_HEADER_SIZE + nRecLen ); }
-	void SeekToContent(    SvStream& rIn) const { rIn.Seek(nFilePos + DFF_COMMON_RECORD_HEADER_SIZE ); }
-	void SeekToBegOfRecord(SvStream& rIn) const { rIn.Seek( nFilePos ); }
-
-	MSFILTER_DLLPUBLIC friend SvStream& operator>>(SvStream& rIn, DffRecordHeader& rRec);
-
-};
-
-struct DffPropFlags
-{
-	sal_uInt8	bSet		: 1;
-	sal_uInt8	bComplex	: 1;
-	sal_uInt8	bBlip		: 1;
-	sal_uInt8	bSoftAttr	: 1;
-};
-
 class SvxMSDffManager;
 
-class MSFILTER_DLLPUBLIC DffPropSet : public Table
-{
-	protected :
-
-		sal_uInt32			mpContents[ 1024 ];
-		DffPropFlags	mpFlags[ 1024 ];
-
-	public :
-
-		DffPropSet( sal_Bool bInitialize = sal_False ){ if ( bInitialize )
-												memset( mpFlags, 0, 0x400 * sizeof( DffPropFlags ) ); };
-
-		inline sal_Bool	IsProperty( sal_uInt32 nRecType ) const { return ( mpFlags[ nRecType & 0x3ff ].bSet ); };
-		sal_Bool		IsHardAttribute( sal_uInt32 nId ) const;
-		sal_uInt32		GetPropertyValue( sal_uInt32 nId, sal_uInt32 nDefault = 0 ) const;
-        /** Returns a boolean property by its real identifier. */
-        bool        GetPropertyBool( sal_uInt32 nId, bool bDefault = false ) const;
-        /** Returns a string property. */
-        ::rtl::OUString GetPropertyString( sal_uInt32 nId, SvStream& rStrm ) const;
-		void		SetPropertyValue( sal_uInt32 nId, sal_uInt32 nValue ) const;
-		sal_Bool		SeekToContent( sal_uInt32 nRecType, SvStream& rSt ) const;
-		void		Merge( DffPropSet& rMasterPropSet ) const;
-		void		InitializePropSet() const;
-		friend SvStream& operator>>( SvStream& rIn, DffPropSet& rPropSet );
-};
-
 class SfxItemSet;
 class SdrObject;
 struct DffObjData;
@@ -529,11 +474,6 @@ protected :
 	virtual sal_uLong Calc_nBLIPPos( sal_uLong nOrgVal, sal_uLong nStreamPos ) const;
 	virtual FASTBOOL GetColorFromPalette(sal_uInt16 nNum, Color& rColor) const;
 
-	// -----------------------------------------------------------------------
-
-	FASTBOOL ReadDffString(SvStream& rSt, String& rTxt) const;
-	FASTBOOL ReadObjText(SvStream& rSt, SdrObject* pObj) const;
-
 	// SJ: New implementation of ReadObjText is used by Fontwork objects, because
 	// the old one does not properly import multiple paragraphs
 	void ReadObjText( const String& rText, SdrObject* pObj ) const;

Added: incubator/ooo/trunk/main/filter/source/msfilter/dffpropset.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/filter/source/msfilter/dffpropset.cxx?rev=1167634&view=auto
==============================================================================
--- incubator/ooo/trunk/main/filter/source/msfilter/dffpropset.cxx (added)
+++ incubator/ooo/trunk/main/filter/source/msfilter/dffpropset.cxx Sat Sep 10 22:47:55 2011
@@ -0,0 +1,1352 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * 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.
+ *
+ ************************************************************************/
+
+#include "precompiled_filter.hxx"
+
+#include <filter/msfilter/dffpropset.hxx> 
+#include <rtl/ustrbuf.hxx>
+
+static const DffPropSetEntry mso_PropSetDefaults[] = { 
+
+// 0
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+
+// 64
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ {  true, false, false,  true }, 0, 0 },			// DFF_Prop_LockAgainstGrouping
+
+// 128
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ {  true, false, false,  true }, 0, 0x0010 },		// DFF_Prop_FitTextToShape
+
+// 192
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ {  true, false, false,  true }, 0, 0 },			// DFF_Prop_gtextFStrikethrough
+
+//256
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ {  true, false, false,  true }, 0, 0 },			// DFF_Prop_pictureActive
+
+// 320
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ {  true, false, false,  true }, 0, 0x0039 },		// DFF_Prop_fFillOK
+
+// 384
+{ { false, false, false, false }, 0, 0 },
+{ {  true, false, false,  true }, 0, 0xffffff },	// DFF_Prop_fillColor
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ {  true, false, false,  true }, 0, 0x001c },		// DFF_Prop_fNoFillHitTest
+
+// 448
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ {  true, false, false,  true }, 0, 0x001e },		// DFF_Prop_fNoLineDrawDash
+
+// 512
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ {  true, false, false,  true }, 0, 0 },			// DFF_Prop_fshadowObscured
+
+// 576
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ {  true, false, false,  true }, 0, 0 },			// DFF_Prop_fPerspective
+
+// 640
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ {  true, false, false,  true }, 0, 0x0001 },		// DFF_Prop_fc3DLightFace
+
+// 704
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ {  true, false, false,  true }, 0, 0x0016 },		// DFF_Prop_fc3DFillHarsh
+
+// 768
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ {  true, false, false,  true }, 0, 0 },			// DFF_Prop_fBackground
+
+// 832
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ {  true, false, false,  true }, 0, 0x0010 },		// DFF_Prop_fCalloutLengthSpecified
+
+// 896
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ {  true, false, false,  true }, 0, 0x0001 },		// DFF_Prop_fPrint
+
+// 960
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 },
+{ { false, false, false, false }, 0, 0 }
+
+};
+
+DffPropSet::DffPropSet()
+{
+	mpPropSetEntries = reinterpret_cast< DffPropSetEntry* >( new sal_uInt8[ 1024 * sizeof( DffPropSetEntry ) ] );
+}
+
+DffPropSet::~DffPropSet()
+{
+	delete[] reinterpret_cast< sal_uInt8* >( mpPropSetEntries );
+}
+
+void DffPropSet::ReadPropSet( SvStream& rIn, bool bSetUninitializedOnly )
+{
+	DffRecordHeader aHd;
+	rIn >> aHd;
+
+	if ( !bSetUninitializedOnly )
+	{
+		InitializePropSet( aHd.nRecType );
+		maOffsets.clear();
+	}
+
+	sal_uInt32 nPropCount = aHd.nRecInstance;
+
+	// FilePos der ComplexData merken
+	sal_uInt32 nComplexDataFilePos = rIn.Tell() + ( nPropCount * 6 );
+
+	for( sal_uInt32 nPropNum = 0; nPropNum < nPropCount; nPropNum++ )
+	{
+		sal_uInt16 nTmp;
+		sal_uInt32 nRecType, nContent;
+		rIn >> nTmp
+			>> nContent;
+
+		nRecType = nTmp & 0x3fff;
+
+		if ( nRecType > 0x3ff )
+			break;
+		if ( ( nRecType & 0x3f ) == 0x3f )
+		{	
+			if ( bSetUninitializedOnly )
+			{
+				sal_uInt32 nCurrentFlags = mpPropSetEntries[ nRecType ].nContent;
+				sal_uInt32 nMergeFlags = nContent;
+
+				nMergeFlags &=  ( nMergeFlags >> 16 ) | 0xffff0000;				// clearing low word
+				nMergeFlags &= ( ( nCurrentFlags & 0xffff0000 )					// remove allready hard set
+								| ( nCurrentFlags >> 16 ) ) ^ 0xffffffff;		// attributes from mergeflags
+				nCurrentFlags &= ( ( nMergeFlags & 0xffff0000 )					// apply zero master bits
+								| ( nMergeFlags >> 16 ) ) ^ 0xffffffff;
+				nCurrentFlags |= (sal_uInt16)nMergeFlags;						// apply filled master bits
+				mpPropSetEntries[ nRecType ].nContent = nCurrentFlags;
+				mpPropSetEntries[ nRecType ].nComplexIndexOrFlagsHAttr |= static_cast< sal_uInt16 >( nContent >> 16 );
+			}
+			else
+			{
+				// clear flags that have to be cleared
+				mpPropSetEntries[ nRecType ].nContent &= ( ( nContent >> 16 ) ^ 0xffffffff );
+				// set flags that have to be set
+				mpPropSetEntries[ nRecType ].nContent |= nContent;
+				mpPropSetEntries[ nRecType ].nComplexIndexOrFlagsHAttr = static_cast< sal_uInt16 >( nContent >> 16 );
+			}
+		}
+		else
+		{
+
+			bool bSetProperty = !bSetUninitializedOnly || ( !IsProperty( nRecType ) || !IsHardAttribute( nRecType ) );
+
+			DffPropFlags aPropFlag = { 1, 0, 0, 0 };
+			if ( nTmp & 0x4000 )
+				aPropFlag.bBlip = sal_True;
+			if ( nTmp & 0x8000 )
+				aPropFlag.bComplex = sal_True;
+			if ( aPropFlag.bComplex && nContent && ( nComplexDataFilePos < aHd.GetRecEndFilePos() ) )
+            {
+                // normally nContent is the complete size of the complex property,
+                // but this is not always true for IMsoArrays ( what the hell is a IMsoArray ? )
+
+                // I love special threatments :-(
+				if ( ( nRecType == DFF_Prop_pVertices ) || ( nRecType == DFF_Prop_pSegmentInfo )
+                    || ( nRecType == DFF_Prop_fillShadeColors ) || ( nRecType == DFF_Prop_lineDashStyle )
+                        || ( nRecType == DFF_Prop_pWrapPolygonVertices ) || ( nRecType == DFF_Prop_connectorPoints )
+							|| ( nRecType == DFF_Prop_Handles ) || ( nRecType == DFF_Prop_pFormulas )
+								|| ( nRecType == DFF_Prop_textRectangles ) )
+				{
+                    // now check if the current content size is possible, or 6 bytes too small
+					sal_uInt32  nOldPos = rIn.Tell();
+					sal_Int16   nNumElem, nNumElemReserved, nSize;
+
+                    rIn.Seek( nComplexDataFilePos );
+					rIn >>  nNumElem >> nNumElemReserved >> nSize;
+                    if ( nNumElemReserved >= nNumElem )
+                    {
+                        // the size of these array elements is nowhere defined,
+                        // what if the size is negative ?
+                        // ok, we will make it positive and shift it.
+                        // for -16 this works
+						if ( nSize < 0 )
+							nSize = ( -nSize ) >> 2;
+                        sal_uInt32 nDataSize = (sal_uInt32)( nSize * nNumElem );
+
+                        // sometimes the content size is 6 bytes too small (array header information is missing )
+                        if ( nDataSize == nContent )
+                            nContent += 6;
+
+                        // check if array fits into the PropertyContainer
+                        if ( ( nComplexDataFilePos + nContent ) > aHd.GetRecEndFilePos() )
+                            nContent = 0;
+                    }
+                    else
+                        nContent = 0;
+					rIn.Seek( nOldPos );
+				}
+                if ( nContent )
+                {
+					if ( bSetProperty )
+					{
+						mpPropSetEntries[ nRecType ].nComplexIndexOrFlagsHAttr = static_cast< sal_uInt16 >( maOffsets.size() );
+						maOffsets.push_back( nComplexDataFilePos );		// insert the filepos of this property;			
+					}
+					nComplexDataFilePos += nContent;				// store filepos, that is used for the next complex property
+                }
+                else                                    // a complex property needs content
+                    aPropFlag.bSet = sal_False;         // otherwise something is wrong
+			}
+			if ( bSetProperty )
+			{
+				mpPropSetEntries[ nRecType ].nContent = nContent;
+				mpPropSetEntries[ nRecType ].aFlags = aPropFlag;
+			}
+		}
+	}
+	aHd.SeekToEndOfRecord( rIn );
+}
+
+SvStream& operator>>( SvStream& rIn, DffPropSet& rRec )
+{
+	rRec.ReadPropSet( rIn, false );
+	return rIn;
+}
+
+SvStream& operator|=( SvStream& rIn, DffPropSet& rRec )
+{
+	rRec.ReadPropSet( rIn, true );
+	return rIn;
+}
+
+void DffPropSet::InitializePropSet( sal_uInt16 nPropSetType ) const
+{
+    /*
+    cmc:
+    " Boolean properties are grouped in bitfields by property set; note that
+    the Boolean properties in each property set are contiguous. They are saved
+    under the property ID of the last Boolean property in the set, and are
+    placed in the value field in reverse order starting with the last property
+    in the low bit. "
+
+    e.g.
+
+    fEditedWrap
+    fBehindDocument
+    fOnDblClickNotify
+    fIsButton
+    fOneD
+    fHidden
+    fPrint
+
+    are all part of a group and all are by default false except for fPrint,
+    which equates to a default bit sequence for the group of 0000001 -> 0x1
+
+    If at a later stage word sets fBehindDocument away from the default it
+    will be done by having a property named fPrint whose bitsequence will have
+    the fBehindDocument bit set. e.g. a DFF_Prop_fPrint with value 0x200020
+    has set bit 6 on so as to enable fBehindDocument (as well as disabling
+    everything else)
+    */
+	if ( nPropSetType == DFF_msofbtOPT )
+	{
+		memcpy( mpPropSetEntries, mso_PropSetDefaults, 0x400 * sizeof( DffPropSetEntry ) );
+	}
+	else
+	{
+		memset( mpPropSetEntries, 0, 0x400 * sizeof( DffPropSetEntry ) );
+	}
+}
+
+sal_Bool DffPropSet::IsHardAttribute( sal_uInt32 nId ) const
+{
+	sal_Bool bRetValue = sal_True;
+	nId &= 0x3ff;
+	if ( ( nId & 0x3f ) >= 48 )	// is this a flag id
+		bRetValue = ( mpPropSetEntries[ nId ].nComplexIndexOrFlagsHAttr & ( 1 << ( 0xf - ( nId & 0xf ) ) ) ) != 0;
+	else
+		bRetValue = ( mpPropSetEntries[ nId ].aFlags.bSoftAttr == 0 );
+	return bRetValue;
+};
+
+sal_uInt32 DffPropSet::GetPropertyValue( sal_uInt32 nId, sal_uInt32 nDefault ) const
+{
+	nId &= 0x3ff;
+	return ( mpPropSetEntries[ nId ].aFlags.bSet ) ? mpPropSetEntries[ nId ].nContent : nDefault;
+};
+
+bool DffPropSet::GetPropertyBool( sal_uInt32 nId, bool bDefault ) const
+{
+    sal_uInt32 nBaseId = nId | 31;              // base ID to get the sal_uInt32 property value
+    sal_uInt32 nMask = 1 << (nBaseId - nId);    // bit mask of the boolean property
+
+    sal_uInt32 nPropValue = GetPropertyValue( nBaseId, bDefault ? nMask : 0 );
+    return (nPropValue & nMask) != 0;
+}
+
+::rtl::OUString DffPropSet::GetPropertyString( sal_uInt32 nId, SvStream& rStrm ) const
+{
+    sal_Size nOldPos = rStrm.Tell();
+    ::rtl::OUStringBuffer aBuffer;
+    sal_uInt32 nBufferSize = GetPropertyValue( nId );
+    if( (nBufferSize > 0) && SeekToContent( nId, rStrm ) )
+    {
+        sal_Int32 nStrLen = static_cast< sal_Int32 >( nBufferSize / 2 );
+        aBuffer.ensureCapacity( nStrLen );
+        for( sal_Int32 nCharIdx = 0; nCharIdx < nStrLen; ++nCharIdx )
+        {
+            sal_uInt16 nChar = 0;
+            rStrm >> nChar;
+            if( nChar > 0 )
+                aBuffer.append( static_cast< sal_Unicode >( nChar ) );
+            else
+                break;
+        }
+    }
+    rStrm.Seek( nOldPos );
+    return aBuffer.makeStringAndClear();
+}
+
+void DffPropSet::SetPropertyValue( sal_uInt32 nId, sal_uInt32 nValue ) const
+{
+	nId &= 0x3ff;
+	mpPropSetEntries[ nId ].aFlags.bSet = true;
+	mpPropSetEntries[ nId ].nContent = nValue;
+};
+
+sal_Bool DffPropSet::SeekToContent( sal_uInt32 nRecType, SvStream& rStrm ) const
+{
+	nRecType &= 0x3ff;
+	if ( mpPropSetEntries[ nRecType ].aFlags.bSet )
+	{
+		if ( mpPropSetEntries[ nRecType ].aFlags.bComplex )
+		{
+			sal_uInt16 nIndex = mpPropSetEntries[ nRecType ].nComplexIndexOrFlagsHAttr;
+			if ( nIndex < maOffsets.size() )
+			{
+				rStrm.Seek( maOffsets[ nIndex ] );
+				return sal_True;
+			}
+		}
+	}
+	return sal_False;
+}
+
+/* vi:set tabstop=4 shiftwidth=4 expandtab: */

Propchange: incubator/ooo/trunk/main/filter/source/msfilter/dffpropset.cxx
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/ooo/trunk/main/filter/source/msfilter/dffrecordheader.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/filter/source/msfilter/dffrecordheader.cxx?rev=1167634&view=auto
==============================================================================
--- incubator/ooo/trunk/main/filter/source/msfilter/dffrecordheader.cxx (added)
+++ incubator/ooo/trunk/main/filter/source/msfilter/dffrecordheader.cxx Sat Sep 10 22:47:55 2011
@@ -0,0 +1,45 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * 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.
+ *
+ ************************************************************************/
+
+#include "precompiled_filter.hxx"
+
+#include <filter/msfilter/dffrecordheader.hxx> 
+
+SvStream& operator>>( SvStream& rIn, DffRecordHeader& rRec )
+{
+	rRec.nFilePos = rIn.Tell();
+	sal_uInt16 nTmp(0);
+	rIn >> nTmp;
+	rRec.nImpVerInst = nTmp;
+	rRec.nRecVer = sal::static_int_cast< sal_uInt8 >(nTmp & 0x000F);
+	rRec.nRecInstance = nTmp >> 4;
+	rIn >> rRec.nRecType;
+	rIn >> rRec.nRecLen;
+	return rIn;
+}
+
+/* vi:set tabstop=4 shiftwidth=4 expandtab: */

Propchange: incubator/ooo/trunk/main/filter/source/msfilter/dffrecordheader.cxx
------------------------------------------------------------------------------
    svn:executable = *

Modified: incubator/ooo/trunk/main/filter/source/msfilter/makefile.mk
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/filter/source/msfilter/makefile.mk?rev=1167634&r1=1167633&r2=1167634&view=diff
==============================================================================
--- incubator/ooo/trunk/main/filter/source/msfilter/makefile.mk (original)
+++ incubator/ooo/trunk/main/filter/source/msfilter/makefile.mk Sat Sep 10 22:47:55 2011
@@ -41,19 +41,21 @@ LIBTARGET=NO
 # --- Files --------------------------------------------------------
 
 SLOFILES= \
-	$(SLO)$/countryid.obj	\
-	$(SLO)$/escherex.obj	\
-	$(SLO)$/eschesdo.obj    \
-	$(SLO)$/mscodec.obj		\
-	$(SLO)$/msdffimp.obj	\
-	$(SLO)$/msfiltertracer.obj \
-	$(SLO)$/msocximex.obj	\
-	$(SLO)$/msoleexp.obj	\
-	$(SLO)$/msvbahelper.obj \
-	$(SLO)$/msvbasic.obj	\
-	$(SLO)$/services.obj	\
-	$(SLO)$/svdfppt.obj		\
-	$(SLO)$/svxmsbas.obj	\
+	$(SLO)$/countryid.obj		\
+	$(SLO)$/escherex.obj		\
+	$(SLO)$/eschesdo.obj		\
+	$(SLO)$/dffrecordheader.obj \
+	$(SLO)$/dffpropset.obj		\
+	$(SLO)$/mscodec.obj			\
+	$(SLO)$/msdffimp.obj		\
+	$(SLO)$/msfiltertracer.obj	\
+	$(SLO)$/msocximex.obj		\
+	$(SLO)$/msoleexp.obj		\
+	$(SLO)$/msvbahelper.obj		\
+	$(SLO)$/msvbasic.obj		\
+	$(SLO)$/services.obj		\
+	$(SLO)$/svdfppt.obj			\
+	$(SLO)$/svxmsbas.obj		\
 	$(SLO)$/svxmsbas2.obj
 
 SHL1TARGET= msfilter$(DLLPOSTFIX)



Mime
View raw message