diff options
author | Kurt Zenker <kz@openoffice.org> | 2010-05-21 16:13:20 +0200 |
---|---|---|
committer | Kurt Zenker <kz@openoffice.org> | 2010-05-21 16:13:20 +0200 |
commit | f98601b66a4bdfea70771cac44eb8f45faf70e33 (patch) | |
tree | 0bcef7751aea4e47f3106a0981cee6b2cc421540 /oox/inc/oox/dump/oledumper.hxx | |
parent | e12896d4e2571451e2453d3b14a7e24f7371a4a4 (diff) | |
parent | 83354fbd6ef66db25643b1fe9ab30c45550a5a58 (diff) |
CWS-TOOLING: integrate CWS npower13_objectmodules
Notes
split repo tag: filters_ooo/DEV300_m79
Diffstat (limited to 'oox/inc/oox/dump/oledumper.hxx')
-rw-r--r-- | oox/inc/oox/dump/oledumper.hxx | 418 |
1 files changed, 293 insertions, 125 deletions
diff --git a/oox/inc/oox/dump/oledumper.hxx b/oox/inc/oox/dump/oledumper.hxx index 539ca2a412d1..a0e9cd55e337 100644 --- a/oox/inc/oox/dump/oledumper.hxx +++ b/oox/inc/oox/dump/oledumper.hxx @@ -43,7 +43,26 @@ namespace dump { // ============================================================================ // ============================================================================ -class StdFontObject : public InputObjectBase +class OleInputObjectBase : public InputObjectBase +{ +protected: + inline explicit OleInputObjectBase() {} + + ::rtl::OUString dumpAnsiString32( const String& rName ); + ::rtl::OUString dumpUniString32( const String& rName ); + + sal_Int32 dumpStdClipboardFormat( const String& rName = EMPTY_STRING ); + ::rtl::OUString dumpAnsiString32OrStdClip( const String& rName ); + ::rtl::OUString dumpUniString32OrStdClip( const String& rName ); + + void writeOleColorItem( const String& rName, sal_uInt32 nColor ); + sal_uInt32 dumpOleColor( const String& rName ); +}; + +// ============================================================================ +// ============================================================================ + +class StdFontObject : public OleInputObjectBase { public: explicit StdFontObject( const InputObjectBase& rParent ); @@ -54,7 +73,7 @@ protected: // ============================================================================ -class StdPicObject : public InputObjectBase +class StdPicObject : public OleInputObjectBase { public: explicit StdPicObject( const InputObjectBase& rParent ); @@ -65,7 +84,7 @@ protected: // ============================================================================ -class StdHlinkObject : public InputObjectBase +class StdHlinkObject : public OleInputObjectBase { public: explicit StdHlinkObject( const InputObjectBase& rParent ); @@ -87,7 +106,27 @@ private: // ============================================================================ // ============================================================================ -class OlePropertyStreamObject : public BinaryStreamObject +class OleStreamObject : public OleInputObjectBase +{ +public: + explicit OleStreamObject( const ObjectBase& rParent, const BinaryInputStreamRef& rxStrm, const ::rtl::OUString& rSysFileName ); +}; + +// ============================================================================ + +class OleCompObjObject : public OleStreamObject +{ +public: + explicit OleCompObjObject( const ObjectBase& rParent, const BinaryInputStreamRef& rxStrm, const ::rtl::OUString& rSysFileName ); + +protected: + virtual void implDump(); +}; + +// ============================================================================ +// ============================================================================ + +class OlePropertyStreamObject : public InputObjectBase { public: explicit OlePropertyStreamObject( const ObjectBase& rParent, const BinaryInputStreamRef& rxStrm, const ::rtl::OUString& rSysFileName ); @@ -146,35 +185,140 @@ protected: // ============================================================================ // ============================================================================ -struct OcxFormSiteInfo +class ComCtlObjectBase : public OleInputObjectBase { - ::rtl::OUString maProgId; - sal_Int32 mnId; - sal_uInt32 mnLength; - bool mbInStream; +protected: + explicit ComCtlObjectBase( + const InputObjectBase& rParent, + sal_uInt32 nDataId5, sal_uInt32 nDataId6, sal_uInt16 nVersion, + bool bCommonPart, bool bComplexPart ); + + virtual void implDump(); + virtual void implDumpProperties() = 0; + virtual void implDumpCommonExtra( sal_Int64 nEndPos ); + virtual void implDumpCommonTrailing(); + +private: + bool dumpComCtlHeader( sal_uInt32 nExpId, sal_uInt16 nExpMajor = SAL_MAX_UINT16, sal_uInt16 nExpMinor = SAL_MAX_UINT16 ); + bool dumpComCtlSize(); + bool dumpComCtlData( sal_uInt32& ornCommonPartSize ); + bool dumpComCtlCommon( sal_uInt32 nPartSize ); + bool dumpComCtlComplex(); - inline explicit OcxFormSiteInfo() : mnId( 0 ), mnLength( 0 ), mbInStream( false ) {} +protected: + sal_uInt32 mnDataId5; + sal_uInt32 mnDataId6; + sal_uInt16 mnVersion; + bool mbCommonPart; + bool mbComplexPart; }; -typedef ::std::vector< OcxFormSiteInfo > OcxFormSiteInfoVector; +// ============================================================================ -// ---------------------------------------------------------------------------- +class ComCtlScrollBarObject : public ComCtlObjectBase +{ +public: + explicit ComCtlScrollBarObject( const InputObjectBase& rParent, sal_uInt16 nVersion ); -struct OcxFormSharedData +protected: + virtual void implDumpProperties(); +}; + +// ============================================================================ + +class ComCtlProgressBarObject : public ComCtlObjectBase { - OUStringVector maClassInfoProgIds; - OcxFormSiteInfoVector maSiteInfos; +public: + explicit ComCtlProgressBarObject( const InputObjectBase& rParent, sal_uInt16 nVersion ); + +protected: + virtual void implDumpProperties(); +}; + +// ============================================================================ + +class ComCtlSliderObject : public ComCtlObjectBase +{ +public: + explicit ComCtlSliderObject( const InputObjectBase& rParent, sal_uInt16 nVersion ); + +protected: + virtual void implDumpProperties(); }; // ============================================================================ + +class ComCtlUpDownObject : public ComCtlObjectBase +{ +public: + explicit ComCtlUpDownObject( const InputObjectBase& rParent, sal_uInt16 nVersion ); + +protected: + virtual void implDumpProperties(); +}; + // ============================================================================ -class OcxPropertyObjectBase : public InputObjectBase +class ComCtlImageListObject : public ComCtlObjectBase { +public: + explicit ComCtlImageListObject( const InputObjectBase& rParent, sal_uInt16 nVersion ); + protected: - inline explicit OcxPropertyObjectBase() {} + virtual void implDumpProperties(); + virtual void implDumpCommonExtra( sal_Int64 nEndPos ); + virtual void implDumpCommonTrailing(); +}; + +// ============================================================================ + +class ComCtlTabStripObject : public ComCtlObjectBase +{ +public: + explicit ComCtlTabStripObject( const InputObjectBase& rParent, sal_uInt16 nVersion ); + +protected: + virtual void implDumpProperties(); + virtual void implDumpCommonExtra( sal_Int64 nEndPos ); +}; + +// ============================================================================ + +class ComCtlTreeViewObject : public ComCtlObjectBase +{ +public: + explicit ComCtlTreeViewObject( const InputObjectBase& rParent, sal_uInt16 nVersion ); + +protected: + virtual void implDumpProperties(); + virtual void implDumpCommonExtra( sal_Int64 nEndPos ); + +private: + sal_uInt32 mnStringFlags; +}; + +// ============================================================================ + +class ComCtlStatusBarObject : public ComCtlObjectBase +{ +public: + explicit ComCtlStatusBarObject( const InputObjectBase& rParent, sal_uInt16 nVersion ); + +protected: + virtual void implDumpProperties(); + virtual void implDumpCommonExtra( sal_Int64 nEndPos ); + virtual void implDumpCommonTrailing(); +}; - using InputObjectBase::construct; +// ============================================================================ +// ============================================================================ + +class AxPropertyObjectBase : public OleInputObjectBase +{ +protected: + inline explicit AxPropertyObjectBase() {} + + using OleInputObjectBase::construct; void construct( const ObjectBase& rParent, const BinaryInputStreamRef& rxStrm, @@ -213,19 +357,19 @@ protected: inline bool dumpBoolProperty() { return startNextProperty(); } inline sal_Int32 dumpHmmProperty() { return dumpDecProperty< sal_Int32 >( 0, "CONV-HMM-TO-CM" ); } - inline sal_uInt8 dumpMousePtrProperty() { return dumpDecProperty< sal_uInt8 >( 0, "OCX-MOUSEPTR" ); } + inline sal_uInt8 dumpMousePtrProperty() { return dumpDecProperty< sal_uInt8 >( 0, "OLE-MOUSEPTR" ); } template< typename Type > - inline Type dumpBorderStyleProperty( Type nDefault ) { return dumpDecProperty< Type >( nDefault, "OCX-BORDERSTYLE" ); } + inline Type dumpBorderStyleProperty( Type nDefault ) { return dumpDecProperty< Type >( nDefault, "AX-BORDERSTYLE" ); } template< typename Type > - inline Type dumpSpecialEffectProperty( Type nDefault ) { return dumpDecProperty< Type >( nDefault, "OCX-SPECIALEFFECT" ); } - inline sal_uInt32 dumpEnabledProperty() { return dumpDecProperty< sal_uInt32 >( 1, "OCX-ENABLED" ); } - inline sal_Int32 dumpOrientationProperty() { return dumpDecProperty< sal_Int32 >( -1, "OCX-ORIENTATION" ); } - inline sal_Int32 dumpDelayProperty() { return dumpDecProperty< sal_Int32 >( 50, "OCX-CONV-MS" ); } - inline sal_uInt32 dumpImagePosProperty() { return dumpHexProperty< sal_uInt32 >( 0x00070001, "OCX-IMAGEPOS" ); } - inline sal_uInt8 dumpImageSizeModeProperty() { return dumpDecProperty< sal_uInt8 >( 0, "OCX-IMAGESIZEMODE" ); } - inline sal_uInt8 dumpImageAlignProperty() { return dumpDecProperty< sal_uInt8 >( 2, "OCX-IMAGEALIGN" ); } - - sal_uInt32 dumpFlagsProperty( sal_uInt32 nDefault, const sal_Char* pcNameList = "OCX-FLAGS" ); + inline Type dumpSpecialEffectProperty( Type nDefault ) { return dumpDecProperty< Type >( nDefault, "AX-SPECIALEFFECT" ); } + inline sal_uInt32 dumpEnabledProperty() { return dumpDecProperty< sal_uInt32 >( 1, "AX-ENABLED" ); } + inline sal_Int32 dumpOrientationProperty() { return dumpDecProperty< sal_Int32 >( -1, "AX-ORIENTATION" ); } + inline sal_Int32 dumpDelayProperty() { return dumpDecProperty< sal_Int32 >( 50, "AX-CONV-MS" ); } + inline sal_uInt32 dumpImagePosProperty() { return dumpHexProperty< sal_uInt32 >( 0x00070001, "AX-IMAGEPOS" ); } + inline sal_uInt8 dumpImageSizeModeProperty() { return dumpDecProperty< sal_uInt8 >( 0, "AX-IMAGESIZEMODE" ); } + inline sal_uInt8 dumpImageAlignProperty() { return dumpDecProperty< sal_uInt8 >( 2, "AX-IMAGEALIGN" ); } + + sal_uInt32 dumpFlagsProperty( sal_uInt32 nDefault, const sal_Char* pcNameList = "AX-FLAGS" ); sal_uInt32 dumpColorProperty( sal_uInt32 nDefault ); sal_Unicode dumpUnicodeProperty(); void dumpUnknownProperty(); @@ -241,7 +385,7 @@ protected: void dumpToPosition( sal_Int64 nPos ); private: - void constructOcxPropObj( const String& rPropNameList, bool b64BitPropFlags ); + void constructAxPropObj( const String& rPropNameList, bool b64BitPropFlags ); void dumpVersion(); ::rtl::OUString dumpString( const String& rName, sal_uInt32 nSize, bool bArray ); @@ -285,13 +429,13 @@ private: // ---------------------------------------------------------------------------- template< typename Type > -void OcxPropertyObjectBase::alignInput() +void AxPropertyObjectBase::alignInput() { - in().skip( (sizeof( Type ) - ((in().tell() - mnPropertiesStart) % sizeof( Type ))) % sizeof( Type ) ); + mxStrm->skip( (sizeof( Type ) - ((mxStrm->tell() - mnPropertiesStart) % sizeof( Type ))) % sizeof( Type ) ); } template< typename Type > -Type OcxPropertyObjectBase::dumpDecProperty( Type nDefault, const NameListWrapper& rListWrp ) +Type AxPropertyObjectBase::dumpDecProperty( Type nDefault, const NameListWrapper& rListWrp ) { if( startNextProperty() ) { @@ -302,7 +446,7 @@ Type OcxPropertyObjectBase::dumpDecProperty( Type nDefault, const NameListWrappe } template< typename Type > -Type OcxPropertyObjectBase::dumpHexProperty( Type nDefault, const NameListWrapper& rListWrp ) +Type AxPropertyObjectBase::dumpHexProperty( Type nDefault, const NameListWrapper& rListWrp ) { if( startNextProperty() ) { @@ -314,10 +458,10 @@ Type OcxPropertyObjectBase::dumpHexProperty( Type nDefault, const NameListWrappe // ============================================================================ -class OcxCFontNewObject : public OcxPropertyObjectBase +class AxCFontNewObject : public AxPropertyObjectBase { public: - explicit OcxCFontNewObject( const InputObjectBase& rParent ); + explicit AxCFontNewObject( const InputObjectBase& rParent ); protected: virtual void implDumpShortProperties(); @@ -325,10 +469,10 @@ protected: // ============================================================================ -class OcxColumnInfoObject : public OcxPropertyObjectBase +class AxColumnInfoObject : public AxPropertyObjectBase { public: - explicit OcxColumnInfoObject( const InputObjectBase& rParent ); + explicit AxColumnInfoObject( const InputObjectBase& rParent ); protected: virtual void implDumpShortProperties(); @@ -336,10 +480,10 @@ protected: // ============================================================================ -class OcxCommandButtonObject : public OcxPropertyObjectBase +class AxCommandButtonObject : public AxPropertyObjectBase { public: - explicit OcxCommandButtonObject( const InputObjectBase& rParent ); + explicit AxCommandButtonObject( const InputObjectBase& rParent ); protected: virtual void implDumpShortProperties(); @@ -348,10 +492,10 @@ protected: // ============================================================================ -class OcxMorphControlObject : public OcxPropertyObjectBase +class AxMorphControlObject : public AxPropertyObjectBase { public: - explicit OcxMorphControlObject( const InputObjectBase& rParent ); + explicit AxMorphControlObject( const InputObjectBase& rParent ); protected: virtual void implDumpShortProperties(); @@ -367,10 +511,10 @@ private: // ============================================================================ -class OcxLabelObject : public OcxPropertyObjectBase +class AxLabelObject : public AxPropertyObjectBase { public: - explicit OcxLabelObject( const InputObjectBase& rParent ); + explicit AxLabelObject( const InputObjectBase& rParent ); protected: virtual void implDumpShortProperties(); @@ -379,10 +523,10 @@ protected: // ============================================================================ -class OcxImageObject : public OcxPropertyObjectBase +class AxImageObject : public AxPropertyObjectBase { public: - explicit OcxImageObject( const InputObjectBase& rParent ); + explicit AxImageObject( const InputObjectBase& rParent ); protected: virtual void implDumpShortProperties(); @@ -390,10 +534,10 @@ protected: // ============================================================================ -class OcxScrollBarObject : public OcxPropertyObjectBase +class AxScrollBarObject : public AxPropertyObjectBase { public: - explicit OcxScrollBarObject( const InputObjectBase& rParent ); + explicit AxScrollBarObject( const InputObjectBase& rParent ); protected: virtual void implDumpShortProperties(); @@ -401,10 +545,10 @@ protected: // ============================================================================ -class OcxSpinButtonObject : public OcxPropertyObjectBase +class AxSpinButtonObject : public AxPropertyObjectBase { public: - explicit OcxSpinButtonObject( const InputObjectBase& rParent ); + explicit AxSpinButtonObject( const InputObjectBase& rParent ); protected: virtual void implDumpShortProperties(); @@ -412,10 +556,10 @@ protected: // ============================================================================ -class OcxTabStripObject : public OcxPropertyObjectBase +class AxTabStripObject : public AxPropertyObjectBase { public: - explicit OcxTabStripObject( const InputObjectBase& rParent ); + explicit AxTabStripObject( const InputObjectBase& rParent ); protected: virtual void implDumpShortProperties(); @@ -426,181 +570,188 @@ private: }; // ============================================================================ +// ============================================================================ -class OcxControlObject : public InputObjectBase +class FormControlStreamObject : public OleInputObjectBase { public: - explicit OcxControlObject( - const InputObjectBase& rParent, - const ::rtl::OUString& rProgId, - sal_Int64 nLength ); + explicit FormControlStreamObject( + const ObjectBase& rParent, + const BinaryInputStreamRef& rxStrm, + const ::rtl::OUString& rSysFileName, + const ::rtl::OUString* pProgId = 0 ); + explicit FormControlStreamObject( + const OutputObjectBase& rParent, + const BinaryInputStreamRef& rxStrm, + const ::rtl::OUString* pProgId = 0 ); protected: virtual void implDump(); private: + void constructFormCtrlStrmObj( const ::rtl::OUString* pProgId ); + +private: ::rtl::OUString maProgId; - sal_Int64 mnLength; + bool mbReadGuid; }; // ============================================================================ +// ============================================================================ -class OcxGuidControlObject : public InputObjectBase +struct VbaFormSiteInfo { -public: - explicit OcxGuidControlObject( - const InputObjectBase& rParent, - sal_Int64 nLength ); - explicit OcxGuidControlObject( - const OutputObjectBase& rParent, - const BinaryInputStreamRef& rxStrm ); - explicit OcxGuidControlObject( - const ObjectBase& rParent, - const BinaryInputStreamRef& rxStrm, - const ::rtl::OUString& rSysFileName ); + ::rtl::OUString maProgId; + sal_Int32 mnId; + sal_uInt32 mnLength; + bool mbInStream; -protected: - virtual void implDump(); + inline explicit VbaFormSiteInfo() : mnId( 0 ), mnLength( 0 ), mbInStream( false ) {} +}; -private: - sal_Int64 mnLength; +typedef ::std::vector< VbaFormSiteInfo > VbaFormSiteInfoVector; + +// ============================================================================ + +struct VbaFormSharedData +{ + OUStringVector maClassInfoProgIds; + VbaFormSiteInfoVector maSiteInfos; }; // ============================================================================ -class OcxControlsStreamObject : public InputObjectBase +class VbaFormClassInfoObject : public AxPropertyObjectBase { public: - explicit OcxControlsStreamObject( - const ObjectBase& rParent, - const BinaryInputStreamRef& rxStrm, - const ::rtl::OUString& rSysFileName, - OcxFormSharedData& rFormData ); + explicit VbaFormClassInfoObject( const InputObjectBase& rParent, VbaFormSharedData& rFormData ); protected: - virtual void implDump(); + virtual void implDumpShortProperties(); private: - OcxFormSharedData& mrFormData; + VbaFormSharedData& mrFormData; }; // ============================================================================ -// ============================================================================ -class OcxPageObject : public OcxPropertyObjectBase +class VbaFormSiteObject : public AxPropertyObjectBase { public: - explicit OcxPageObject( const InputObjectBase& rParent ); + explicit VbaFormSiteObject( const InputObjectBase& rParent, VbaFormSharedData& rFormData ); protected: virtual void implDumpShortProperties(); + +private: + VbaFormSharedData& mrFormData; }; // ============================================================================ -class OcxMultiPageObject : public OcxPropertyObjectBase +class VbaFormDesignExtObject : public AxPropertyObjectBase { public: - explicit OcxMultiPageObject( const InputObjectBase& rParent ); + explicit VbaFormDesignExtObject( const InputObjectBase& rParent ); protected: virtual void implDumpShortProperties(); - virtual void implDumpExtended(); - -private: - sal_Int32 mnPageCount; }; // ============================================================================ -class OcxMultiPageStreamObject : public InputObjectBase +class VbaFStreamObject : public AxPropertyObjectBase { public: - explicit OcxMultiPageStreamObject( + explicit VbaFStreamObject( const ObjectBase& rParent, const BinaryInputStreamRef& rxStrm, const ::rtl::OUString& rSysFileName, - OcxFormSharedData& rFormData ); + VbaFormSharedData& rFormData ); protected: - virtual void implDump(); + virtual void implDumpShortProperties(); + virtual void implDumpExtended(); + +private: + void dumpClassInfos(); + void dumpFormSites( sal_uInt32 nCount ); + void dumpSiteData(); + void dumpDesignExtender(); private: - OcxFormSharedData& mrFormData; + VbaFormSharedData& mrFormData; + sal_uInt32 mnFlags; }; // ============================================================================ -// ============================================================================ -class OcxFormClassInfoObject : public OcxPropertyObjectBase +class VbaOStreamObject : public OleInputObjectBase { public: - explicit OcxFormClassInfoObject( const InputObjectBase& rParent, OcxFormSharedData& rFormData ); + explicit VbaOStreamObject( + const ObjectBase& rParent, + const BinaryInputStreamRef& rxStrm, + const ::rtl::OUString& rSysFileName, + VbaFormSharedData& rFormData ); protected: - virtual void implDumpShortProperties(); + virtual void implDump(); private: - OcxFormSharedData& mrFormData; + VbaFormSharedData& mrFormData; }; // ============================================================================ -class OcxFormSiteObject : public OcxPropertyObjectBase +class VbaPageObject : public AxPropertyObjectBase { public: - explicit OcxFormSiteObject( const InputObjectBase& rParent, OcxFormSharedData& rFormData ); + explicit VbaPageObject( const InputObjectBase& rParent ); protected: virtual void implDumpShortProperties(); - -private: - OcxFormSharedData& mrFormData; }; // ============================================================================ -class OcxFormDesignExtObject : public OcxPropertyObjectBase +class VbaMultiPageObject : public AxPropertyObjectBase { public: - explicit OcxFormDesignExtObject( const InputObjectBase& rParent ); + explicit VbaMultiPageObject( const InputObjectBase& rParent ); protected: virtual void implDumpShortProperties(); + virtual void implDumpExtended(); + +private: + sal_Int32 mnPageCount; }; // ============================================================================ -class OcxFormObject : public OcxPropertyObjectBase +class VbaXStreamObject : public InputObjectBase { public: - explicit OcxFormObject( + explicit VbaXStreamObject( const ObjectBase& rParent, const BinaryInputStreamRef& rxStrm, const ::rtl::OUString& rSysFileName, - OcxFormSharedData& rFormData ); + VbaFormSharedData& rFormData ); protected: - virtual void implDumpShortProperties(); - virtual void implDumpExtended(); - -private: - void dumpClassInfos(); - void dumpFormSites( sal_uInt32 nCount ); - void dumpSiteData(); - void dumpDesignExtender(); + virtual void implDump(); private: - OcxFormSharedData& mrFormData; - sal_uInt32 mnFlags; + VbaFormSharedData& mrFormData; }; // ============================================================================ -class OcxFormStorageObject : public OleStorageObject +class VbaContainerStorageObject : public OleStorageObject { public: - explicit OcxFormStorageObject( + explicit VbaContainerStorageObject( const ObjectBase& rParent, const StorageRef& rxStrg, const ::rtl::OUString& rSysPath ); @@ -621,7 +772,7 @@ private: bool isFormStorage( const ::rtl::OUString& rStrgPath ) const; private: - OcxFormSharedData maFormData; + VbaFormSharedData maFormData; }; // ============================================================================ @@ -713,7 +864,7 @@ private: // ============================================================================ -class VbaFormStorageObject : public OcxFormStorageObject +class VbaFormStorageObject : public VbaContainerStorageObject { public: explicit VbaFormStorageObject( @@ -759,6 +910,23 @@ private: // ============================================================================ // ============================================================================ +class ActiveXStorageObject : public VbaContainerStorageObject +{ +public: + explicit ActiveXStorageObject( + const ObjectBase& rParent, + const StorageRef& rxStrg, + const ::rtl::OUString& rSysPath ); + +protected: + virtual void implDumpBaseStream( + const BinaryInputStreamRef& rxStrm, + const ::rtl::OUString& rSysFileName ); +}; + +// ============================================================================ +// ============================================================================ + } // namespace dump } // namespace oox |