update credits
[LibreOffice.git] / include / oox / dump / oledumper.hxx
blobb58500ef8f3c334f494baf26ff2570f6e9767dd6
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #ifndef OOX_DUMP_OLEDUMPER_HXX
21 #define OOX_DUMP_OLEDUMPER_HXX
23 #include "oox/helper/storagebase.hxx"
24 #include "oox/dump/dumperbase.hxx"
26 #if OOX_INCLUDE_DUMPER
28 namespace com { namespace sun { namespace star {
29 namespace io { class XInputStream; }
30 } } }
32 namespace oox {
33 namespace dump {
35 // ============================================================================
36 // ============================================================================
38 class OleInputObjectBase : public InputObjectBase
40 protected:
41 inline explicit OleInputObjectBase() {}
43 OUString dumpAnsiString32( const String& rName );
44 OUString dumpUniString32( const String& rName );
46 sal_Int32 dumpStdClipboardFormat( const String& rName = EMPTY_STRING );
47 OUString dumpAnsiString32OrStdClip( const String& rName );
48 OUString dumpUniString32OrStdClip( const String& rName );
50 void writeOleColorItem( const String& rName, sal_uInt32 nColor );
51 sal_uInt32 dumpOleColor( const String& rName );
54 // ============================================================================
55 // ============================================================================
57 class StdFontObject : public OleInputObjectBase
59 public:
60 explicit StdFontObject( const InputObjectBase& rParent );
62 protected:
63 virtual void implDump();
66 // ============================================================================
68 class StdPicObject : public OleInputObjectBase
70 public:
71 explicit StdPicObject( const InputObjectBase& rParent );
73 protected:
74 virtual void implDump();
77 // ============================================================================
78 // ============================================================================
80 class OleStreamObject : public OleInputObjectBase
82 public:
83 explicit OleStreamObject( const ObjectBase& rParent, const BinaryInputStreamRef& rxStrm, const OUString& rSysFileName );
86 // ============================================================================
88 class OleCompObjObject : public OleStreamObject
90 public:
91 explicit OleCompObjObject( const ObjectBase& rParent, const BinaryInputStreamRef& rxStrm, const OUString& rSysFileName );
93 protected:
94 virtual void implDump();
97 // ============================================================================
98 // ============================================================================
100 class OlePropertyStreamObject : public InputObjectBase
102 public:
103 explicit OlePropertyStreamObject( const ObjectBase& rParent, const BinaryInputStreamRef& rxStrm, const OUString& rSysFileName );
105 protected:
106 virtual void implDump();
108 private:
109 void dumpSection( const OUString& rGuid, sal_uInt32 nStartPos );
111 void dumpProperty( sal_Int32 nPropId, sal_uInt32 nStartPos );
112 void dumpCodePageProperty( sal_uInt32 nStartPos );
113 void dumpDictionaryProperty( sal_uInt32 nStartPos );
115 sal_uInt16 dumpPropertyContents( sal_Int32 nPropId );
116 void dumpPropertyValue( sal_Int32 nPropId, sal_uInt16 nBaseType );
117 void dumpPropertyVector( sal_Int32 nPropId, sal_uInt16 nBaseType );
118 void dumpPropertyArray( sal_Int32 nPropId, sal_uInt16 nBaseType );
120 sal_uInt16 dumpPropertyType();
121 void dumpBlob( sal_Int32 nPropId, const String& rName );
122 OUString dumpString8( const String& rName );
123 OUString dumpCharArray8( const String& rName, sal_Int32 nLen );
124 OUString dumpString16( const String& rName );
125 OUString dumpCharArray16( const String& rName, sal_Int32 nLen );
126 bool dumpTypedProperty( const String& rName, sal_uInt16 nExpectedType );
127 void dumpHlinks( sal_Int32 nSize );
129 bool startElement( sal_uInt32 nStartPos );
130 void writeSectionHeader( const OUString& rGuid, sal_uInt32 nStartPos );
131 void writePropertyHeader( sal_Int32 nPropId, sal_uInt32 nStartPos );
133 private:
134 NameListRef mxPropIds;
135 rtl_TextEncoding meTextEnc;
136 bool mbIsUnicode;
139 // ============================================================================
141 class OleStorageObject : public StorageObjectBase
143 public:
144 explicit OleStorageObject( const ObjectBase& rParent, const StorageRef& rxStrg, const OUString& rSysPath );
146 protected:
147 inline explicit OleStorageObject() {}
149 using StorageObjectBase::construct;
150 void construct( const ObjectBase& rParent, const StorageRef& rxStrg, const OUString& rSysPath );
152 virtual void implDumpStream(
153 const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& rxStrm,
154 const OUString& rStrgPath,
155 const OUString& rStrmName,
156 const OUString& rSysFileName );
159 // ============================================================================
160 // ============================================================================
162 class ComCtlObjectBase : public OleInputObjectBase
164 protected:
165 explicit ComCtlObjectBase(
166 const InputObjectBase& rParent,
167 sal_uInt32 nDataId5, sal_uInt32 nDataId6, sal_uInt16 nVersion,
168 bool bCommonPart, bool bComplexPart );
170 virtual void implDump();
171 virtual void implDumpProperties() = 0;
172 virtual void implDumpCommonExtra( sal_Int64 nEndPos );
173 virtual void implDumpCommonTrailing();
175 private:
176 bool dumpComCtlHeader( sal_uInt32 nExpId, sal_uInt16 nExpMajor = SAL_MAX_UINT16, sal_uInt16 nExpMinor = SAL_MAX_UINT16 );
177 bool dumpComCtlSize();
178 bool dumpComCtlData( sal_uInt32& ornCommonPartSize );
179 bool dumpComCtlCommon( sal_uInt32 nPartSize );
180 bool dumpComCtlComplex();
182 protected:
183 sal_uInt32 mnDataId5;
184 sal_uInt32 mnDataId6;
185 sal_uInt16 mnVersion;
186 bool mbCommonPart;
187 bool mbComplexPart;
190 // ============================================================================
192 class ComCtlScrollBarObject : public ComCtlObjectBase
194 public:
195 explicit ComCtlScrollBarObject( const InputObjectBase& rParent, sal_uInt16 nVersion );
197 protected:
198 virtual void implDumpProperties();
201 // ============================================================================
203 class ComCtlProgressBarObject : public ComCtlObjectBase
205 public:
206 explicit ComCtlProgressBarObject( const InputObjectBase& rParent, sal_uInt16 nVersion );
208 protected:
209 virtual void implDumpProperties();
212 // ============================================================================
214 class ComCtlSliderObject : public ComCtlObjectBase
216 public:
217 explicit ComCtlSliderObject( const InputObjectBase& rParent, sal_uInt16 nVersion );
219 protected:
220 virtual void implDumpProperties();
223 // ============================================================================
225 class ComCtlUpDownObject : public ComCtlObjectBase
227 public:
228 explicit ComCtlUpDownObject( const InputObjectBase& rParent, sal_uInt16 nVersion );
230 protected:
231 virtual void implDumpProperties();
234 // ============================================================================
236 class ComCtlImageListObject : public ComCtlObjectBase
238 public:
239 explicit ComCtlImageListObject( const InputObjectBase& rParent, sal_uInt16 nVersion );
241 protected:
242 virtual void implDumpProperties();
243 virtual void implDumpCommonExtra( sal_Int64 nEndPos );
244 virtual void implDumpCommonTrailing();
247 // ============================================================================
249 class ComCtlTabStripObject : public ComCtlObjectBase
251 public:
252 explicit ComCtlTabStripObject( const InputObjectBase& rParent, sal_uInt16 nVersion );
254 protected:
255 virtual void implDumpProperties();
256 virtual void implDumpCommonExtra( sal_Int64 nEndPos );
259 // ============================================================================
261 class ComCtlTreeViewObject : public ComCtlObjectBase
263 public:
264 explicit ComCtlTreeViewObject( const InputObjectBase& rParent, sal_uInt16 nVersion );
266 protected:
267 virtual void implDumpProperties();
268 virtual void implDumpCommonExtra( sal_Int64 nEndPos );
270 private:
271 sal_uInt32 mnStringFlags;
274 // ============================================================================
276 class ComCtlStatusBarObject : public ComCtlObjectBase
278 public:
279 explicit ComCtlStatusBarObject( const InputObjectBase& rParent, sal_uInt16 nVersion );
281 protected:
282 virtual void implDumpProperties();
283 virtual void implDumpCommonExtra( sal_Int64 nEndPos );
284 virtual void implDumpCommonTrailing();
287 // ============================================================================
288 // ============================================================================
290 class AxPropertyObjectBase : public OleInputObjectBase
292 protected:
293 inline explicit AxPropertyObjectBase() {}
295 using OleInputObjectBase::construct;
296 void construct(
297 const ObjectBase& rParent,
298 const BinaryInputStreamRef& rxStrm,
299 const OUString& rSysFileName,
300 const String& rPropNameList,
301 bool b64BitPropFlags = false );
302 void construct(
303 const InputObjectBase& rParent,
304 const String& rPropNameList,
305 bool b64BitPropFlags = false );
307 virtual bool implIsValid() const;
308 virtual void implDump();
310 virtual void implDumpShortProperties();
311 virtual void implDumpExtended();
313 bool ensureValid( bool bCondition = true );
315 template< typename Type >
316 void alignInput();
318 void setAlignAnchor();
319 bool startNextProperty();
320 OUString getPropertyName() const;
322 template< typename Type >
323 Type dumpDecProperty( Type nDefault, const NameListWrapper& rListWrp = NO_LIST );
324 template< typename Type >
325 Type dumpHexProperty( Type nDefault, const NameListWrapper& rListWrp = NO_LIST );
327 inline bool dumpBoolProperty() { return startNextProperty(); }
328 inline sal_Int32 dumpHmmProperty() { return dumpDecProperty< sal_Int32 >( 0, "CONV-HMM-TO-CM" ); }
329 inline sal_uInt8 dumpMousePtrProperty() { return dumpDecProperty< sal_uInt8 >( 0, "OLE-MOUSEPTR" ); }
330 template< typename Type >
331 inline Type dumpBorderStyleProperty( Type nDefault ) { return dumpDecProperty< Type >( nDefault, "AX-BORDERSTYLE" ); }
332 template< typename Type >
333 inline Type dumpSpecialEffectProperty( Type nDefault ) { return dumpDecProperty< Type >( nDefault, "AX-SPECIALEFFECT" ); }
334 inline sal_uInt32 dumpEnabledProperty() { return dumpDecProperty< sal_uInt32 >( 1, "AX-ENABLED" ); }
335 inline sal_Int32 dumpOrientationProperty() { return dumpDecProperty< sal_Int32 >( -1, "AX-ORIENTATION" ); }
336 inline sal_Int32 dumpDelayProperty() { return dumpDecProperty< sal_Int32 >( 50, "AX-CONV-MS" ); }
337 inline sal_uInt32 dumpImagePosProperty() { return dumpHexProperty< sal_uInt32 >( 0x00070001, "AX-IMAGEPOS" ); }
338 inline sal_uInt8 dumpImageSizeModeProperty() { return dumpDecProperty< sal_uInt8 >( 0, "AX-IMAGESIZEMODE" ); }
339 inline sal_uInt8 dumpImageAlignProperty() { return dumpDecProperty< sal_uInt8 >( 2, "AX-IMAGEALIGN" ); }
341 sal_uInt32 dumpFlagsProperty( sal_uInt32 nDefault, const sal_Char* pcNameList = "AX-FLAGS" );
342 sal_uInt32 dumpColorProperty( sal_uInt32 nDefault );
343 sal_Unicode dumpUnicodeProperty();
344 void dumpUnknownProperty();
346 void dumpPosProperty();
347 void dumpSizeProperty();
348 void dumpGuidProperty( OUString* pValue = 0 );
349 void dumpStringProperty( OUString* pValue = 0 );
350 void dumpStringArrayProperty();
351 void dumpStreamProperty();
353 void dumpEmbeddedFont();
354 void dumpToPosition( sal_Int64 nPos );
356 private:
357 void constructAxPropObj( const String& rPropNameList, bool b64BitPropFlags );
359 void dumpVersion();
360 OUString dumpString( const String& rName, sal_uInt32 nSize, bool bArray );
361 void dumpShortProperties();
362 void dumpLargeProperties();
364 private:
365 struct LargeProperty
367 enum LargePropertyType { PROPTYPE_POS, PROPTYPE_SIZE, PROPTYPE_GUID, PROPTYPE_STRING, PROPTYPE_STRINGARRAY };
369 LargePropertyType mePropType;
370 OUString maItemName;
371 sal_uInt32 mnDataSize;
372 OUString* mpItemValue;
373 inline explicit LargeProperty( LargePropertyType ePropType, const String& rItemName, sal_uInt32 nDataSize, OUString* pItemValue = 0 ) :
374 mePropType( ePropType ), maItemName( rItemName ), mnDataSize( nDataSize ), mpItemValue( pItemValue ) {}
376 typedef ::std::vector< LargeProperty > LargePropertyVector;
378 struct StreamProperty
380 OUString maItemName;
381 sal_uInt16 mnData;
382 inline explicit StreamProperty( const String& rItemName, sal_uInt16 nData ) :
383 maItemName( rItemName ), mnData( nData ) {}
385 typedef ::std::vector< StreamProperty > StreamPropertyVector;
387 LargePropertyVector maLargeProps;
388 StreamPropertyVector maStreamProps;
389 NameListRef mxPropNames;
390 sal_Int64 mnPropertiesStart;
391 sal_Int64 mnPropertiesEnd;
392 sal_Int64 mnPropFlags;
393 sal_Int64 mnCurrProp;
394 bool mb64BitPropFlags;
395 bool mbValid;
398 // ----------------------------------------------------------------------------
400 template< typename Type >
401 void AxPropertyObjectBase::alignInput()
403 mxStrm->skip( (sizeof( Type ) - ((mxStrm->tell() - mnPropertiesStart) % sizeof( Type ))) % sizeof( Type ) );
406 template< typename Type >
407 Type AxPropertyObjectBase::dumpDecProperty( Type nDefault, const NameListWrapper& rListWrp )
409 if( startNextProperty() )
411 alignInput< Type >();
412 return dumpDec< Type >( getPropertyName(), rListWrp );
414 return nDefault;
417 template< typename Type >
418 Type AxPropertyObjectBase::dumpHexProperty( Type nDefault, const NameListWrapper& rListWrp )
420 if( startNextProperty() )
422 alignInput< Type >();
423 return dumpHex< Type >( getPropertyName(), rListWrp );
425 return nDefault;
428 // ============================================================================
430 class AxCFontNewObject : public AxPropertyObjectBase
432 public:
433 explicit AxCFontNewObject( const InputObjectBase& rParent );
435 protected:
436 virtual void implDumpShortProperties();
439 // ============================================================================
441 class AxColumnInfoObject : public AxPropertyObjectBase
443 public:
444 explicit AxColumnInfoObject( const InputObjectBase& rParent );
446 protected:
447 virtual void implDumpShortProperties();
450 // ============================================================================
452 class AxCommandButtonObject : public AxPropertyObjectBase
454 public:
455 explicit AxCommandButtonObject( const InputObjectBase& rParent );
457 protected:
458 virtual void implDumpShortProperties();
459 virtual void implDumpExtended();
462 // ============================================================================
464 class AxMorphControlObject : public AxPropertyObjectBase
466 public:
467 explicit AxMorphControlObject( const InputObjectBase& rParent );
469 protected:
470 virtual void implDumpShortProperties();
471 virtual void implDumpExtended();
473 private:
474 void dumpColumnInfos();
476 private:
477 sal_uInt16 mnColInfoCount;
478 sal_uInt8 mnCtrlType;
481 // ============================================================================
483 class AxLabelObject : public AxPropertyObjectBase
485 public:
486 explicit AxLabelObject( const InputObjectBase& rParent );
488 protected:
489 virtual void implDumpShortProperties();
490 virtual void implDumpExtended();
493 // ============================================================================
495 class AxImageObject : public AxPropertyObjectBase
497 public:
498 explicit AxImageObject( const InputObjectBase& rParent );
500 protected:
501 virtual void implDumpShortProperties();
504 // ============================================================================
506 class AxScrollBarObject : public AxPropertyObjectBase
508 public:
509 explicit AxScrollBarObject( const InputObjectBase& rParent );
511 protected:
512 virtual void implDumpShortProperties();
515 // ============================================================================
517 class AxSpinButtonObject : public AxPropertyObjectBase
519 public:
520 explicit AxSpinButtonObject( const InputObjectBase& rParent );
522 protected:
523 virtual void implDumpShortProperties();
526 // ============================================================================
528 class AxTabStripObject : public AxPropertyObjectBase
530 public:
531 explicit AxTabStripObject( const InputObjectBase& rParent );
533 protected:
534 virtual void implDumpShortProperties();
535 virtual void implDumpExtended();
537 private:
538 sal_Int32 mnTabFlagCount;
541 // ============================================================================
542 // ============================================================================
544 class FormControlStreamObject : public OleInputObjectBase
546 public:
547 explicit FormControlStreamObject(
548 const ObjectBase& rParent,
549 const BinaryInputStreamRef& rxStrm,
550 const OUString& rSysFileName,
551 const OUString* pProgId = 0 );
552 explicit FormControlStreamObject(
553 const OutputObjectBase& rParent,
554 const BinaryInputStreamRef& rxStrm,
555 const OUString* pProgId = 0 );
557 protected:
558 virtual void implDump();
560 private:
561 void constructFormCtrlStrmObj( const OUString* pProgId );
563 private:
564 OUString maProgId;
565 bool mbReadGuid;
568 // ============================================================================
569 // ============================================================================
571 struct VbaFormSiteInfo
573 OUString maProgId;
574 sal_Int32 mnId;
575 sal_uInt32 mnLength;
576 bool mbInStream;
578 inline explicit VbaFormSiteInfo() : mnId( 0 ), mnLength( 0 ), mbInStream( false ) {}
581 typedef ::std::vector< VbaFormSiteInfo > VbaFormSiteInfoVector;
583 // ============================================================================
585 struct VbaFormSharedData
587 OUStringVector maClassInfoProgIds;
588 VbaFormSiteInfoVector maSiteInfos;
591 // ============================================================================
593 class VbaFormClassInfoObject : public AxPropertyObjectBase
595 public:
596 explicit VbaFormClassInfoObject( const InputObjectBase& rParent, VbaFormSharedData& rFormData );
598 protected:
599 virtual void implDumpShortProperties();
601 private:
602 VbaFormSharedData& mrFormData;
605 // ============================================================================
607 class VbaFormSiteObject : public AxPropertyObjectBase
609 public:
610 explicit VbaFormSiteObject( const InputObjectBase& rParent, VbaFormSharedData& rFormData );
612 protected:
613 virtual void implDumpShortProperties();
615 private:
616 VbaFormSharedData& mrFormData;
619 // ============================================================================
621 class VbaFormDesignExtObject : public AxPropertyObjectBase
623 public:
624 explicit VbaFormDesignExtObject( const InputObjectBase& rParent );
626 protected:
627 virtual void implDumpShortProperties();
630 // ============================================================================
632 class VbaFStreamObject : public AxPropertyObjectBase
634 public:
635 explicit VbaFStreamObject(
636 const ObjectBase& rParent,
637 const BinaryInputStreamRef& rxStrm,
638 const OUString& rSysFileName,
639 VbaFormSharedData& rFormData );
641 protected:
642 virtual void implDumpShortProperties();
643 virtual void implDumpExtended();
645 private:
646 void dumpClassInfos();
647 void dumpFormSites( sal_uInt32 nCount );
648 void dumpSiteData();
649 void dumpDesignExtender();
651 private:
652 VbaFormSharedData& mrFormData;
653 sal_uInt32 mnFlags;
656 // ============================================================================
658 class VbaOStreamObject : public OleInputObjectBase
660 public:
661 explicit VbaOStreamObject(
662 const ObjectBase& rParent,
663 const BinaryInputStreamRef& rxStrm,
664 const OUString& rSysFileName,
665 VbaFormSharedData& rFormData );
667 protected:
668 virtual void implDump();
670 private:
671 VbaFormSharedData& mrFormData;
674 // ============================================================================
676 class VbaPageObject : public AxPropertyObjectBase
678 public:
679 explicit VbaPageObject( const InputObjectBase& rParent );
681 protected:
682 virtual void implDumpShortProperties();
685 // ============================================================================
687 class VbaMultiPageObject : public AxPropertyObjectBase
689 public:
690 explicit VbaMultiPageObject( const InputObjectBase& rParent );
692 protected:
693 virtual void implDumpShortProperties();
694 virtual void implDumpExtended();
696 private:
697 sal_Int32 mnPageCount;
700 // ============================================================================
702 class VbaXStreamObject : public InputObjectBase
704 public:
705 explicit VbaXStreamObject(
706 const ObjectBase& rParent,
707 const BinaryInputStreamRef& rxStrm,
708 const OUString& rSysFileName,
709 VbaFormSharedData& rFormData );
711 protected:
712 virtual void implDump();
714 private:
715 VbaFormSharedData& mrFormData;
718 // ============================================================================
720 class VbaContainerStorageObject : public OleStorageObject
722 public:
723 explicit VbaContainerStorageObject(
724 const ObjectBase& rParent,
725 const StorageRef& rxStrg,
726 const OUString& rSysPath );
728 protected:
729 virtual void implDumpStream(
730 const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& rxStrm,
731 const OUString& rStrgPath,
732 const OUString& rStrmName,
733 const OUString& rSysFileName );
735 virtual void implDumpStorage(
736 const StorageRef& rxStrg,
737 const OUString& rStrgPath,
738 const OUString& rSysPath );
740 private:
741 bool isFormStorage( const OUString& rStrgPath ) const;
743 private:
744 VbaFormSharedData maFormData;
747 // ============================================================================
748 // ============================================================================
750 struct VbaSharedData
752 typedef ::std::map< OUString, sal_Int32 > StreamOffsetMap;
754 StreamOffsetMap maStrmOffsets;
755 rtl_TextEncoding meTextEnc;
757 explicit VbaSharedData();
759 bool isModuleStream( const OUString& rStrmName ) const;
760 sal_Int32 getStreamOffset( const OUString& rStrmName ) const;
763 // ============================================================================
765 class VbaDirStreamObject : public SequenceRecordObjectBase
767 public:
768 explicit VbaDirStreamObject(
769 const ObjectBase& rParent,
770 const BinaryInputStreamRef& rxStrm,
771 const OUString& rSysFileName,
772 VbaSharedData& rVbaData );
774 protected:
775 virtual bool implIsValid() const;
776 virtual bool implReadRecordHeader( BinaryInputStream& rBaseStrm, sal_Int64& ornRecId, sal_Int64& ornRecSize );
777 virtual void implDumpRecordBody();
779 private:
780 OUString dumpByteString( const String& rName = EMPTY_STRING );
781 OUString dumpUniString( const String& rName = EMPTY_STRING );
783 OUString dumpByteStringWithLength( const String& rName = EMPTY_STRING );
785 private:
786 VbaSharedData& mrVbaData;
787 BinaryInputStreamRef mxInStrm;
788 OUString maCurrStream;
789 sal_Int32 mnCurrOffset;
792 // ============================================================================
794 class VbaModuleStreamObject : public InputObjectBase
796 public:
797 explicit VbaModuleStreamObject(
798 const ObjectBase& rParent,
799 const BinaryInputStreamRef& rxStrm,
800 const OUString& rSysFileName,
801 VbaSharedData& rVbaData,
802 sal_Int32 nStrmOffset );
804 protected:
805 virtual void implDump();
807 private:
808 VbaSharedData& mrVbaData;
809 sal_Int32 mnStrmOffset;
812 // ============================================================================
814 class VbaStorageObject : public OleStorageObject
816 public:
817 explicit VbaStorageObject(
818 const ObjectBase& rParent,
819 const StorageRef& rxStrg,
820 const OUString& rSysPath,
821 VbaSharedData& rVbaData );
823 protected:
824 virtual void implDumpStream(
825 const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& rxStrm,
826 const OUString& rStrgPath,
827 const OUString& rStrmName,
828 const OUString& rSysFileName );
830 private:
831 VbaSharedData& mrVbaData;
834 // ============================================================================
836 class VbaFormStorageObject : public VbaContainerStorageObject
838 public:
839 explicit VbaFormStorageObject(
840 const ObjectBase& rParent,
841 const StorageRef& rxStrg,
842 const OUString& rSysPath,
843 VbaSharedData& rVbaData );
845 protected:
846 virtual void implDumpStream(
847 const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& rxStrm,
848 const OUString& rStrgPath,
849 const OUString& rStrmName,
850 const OUString& rSysFileName );
852 private:
853 VbaSharedData& mrVbaData;
856 // ============================================================================
858 class VbaProjectStorageObject : public OleStorageObject
860 public:
861 explicit VbaProjectStorageObject( const ObjectBase& rParent, const StorageRef& rxStrg, const OUString& rSysPath );
863 protected:
864 virtual void implDumpStream(
865 const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& rxStrm,
866 const OUString& rStrgPath,
867 const OUString& rStrmName,
868 const OUString& rSysFileName );
870 virtual void implDumpStorage(
871 const StorageRef& rxStrg,
872 const OUString& rStrgPath,
873 const OUString& rSysPath );
875 private:
876 VbaSharedData maVbaData;
879 // ============================================================================
880 // ============================================================================
882 class ActiveXStorageObject : public VbaContainerStorageObject
884 public:
885 explicit ActiveXStorageObject(
886 const ObjectBase& rParent,
887 const StorageRef& rxStrg,
888 const OUString& rSysPath );
890 protected:
891 virtual void implDumpBaseStream(
892 const BinaryInputStreamRef& rxStrm,
893 const OUString& rSysFileName );
896 // ============================================================================
897 // ============================================================================
899 } // namespace dump
900 } // namespace oox
902 #endif
903 #endif
905 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */