Version 5.4.3.2, tag libreoffice-5.4.3.2
[LibreOffice.git] / include / oox / dump / oledumper.hxx
blobef18258da217e76c794c1a6aa0252e7638e79a99
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 INCLUDED_OOX_DUMP_OLEDUMPER_HXX
21 #define INCLUDED_OOX_DUMP_OLEDUMPER_HXX
23 #include <map>
24 #include <memory>
25 #include <vector>
27 #include <com/sun/star/uno/Reference.hxx>
28 #include <oox/dump/dumperbase.hxx>
29 #include <oox/helper/binaryinputstream.hxx>
30 #include <oox/helper/storagebase.hxx>
31 #include <rtl/textenc.h>
32 #include <rtl/ustring.hxx>
33 #include <sal/types.h>
35 #if OOX_INCLUDE_DUMPER
37 namespace com { namespace sun { namespace star {
38 namespace io { class XInputStream; }
39 } } }
41 namespace oox {
42 namespace dump {
45 class OleInputObjectBase : public InputObjectBase
47 protected:
48 OleInputObjectBase() {}
50 OUString dumpAnsiString32( const String& rName );
51 OUString dumpUniString32( const String& rName );
53 sal_Int32 dumpStdClipboardFormat( const String& rName );
54 OUString dumpAnsiString32OrStdClip( const String& rName );
55 OUString dumpUniString32OrStdClip( const String& rName );
57 void writeOleColorItem( const String& rName, sal_uInt32 nColor );
58 sal_uInt32 dumpOleColor( const String& rName );
62 class StdFontObject : public OleInputObjectBase
64 public:
65 explicit StdFontObject( const InputObjectBase& rParent );
67 protected:
68 virtual void implDump() override;
72 class StdPicObject : public OleInputObjectBase
74 public:
75 explicit StdPicObject( const InputObjectBase& rParent );
77 protected:
78 virtual void implDump() override;
82 class OleStreamObject : public OleInputObjectBase
84 public:
85 explicit OleStreamObject( const ObjectBase& rParent, const BinaryInputStreamRef& rxStrm, const OUString& rSysFileName );
89 class OleCompObjObject : public OleStreamObject
91 public:
92 explicit OleCompObjObject( const ObjectBase& rParent, const BinaryInputStreamRef& rxStrm, const OUString& rSysFileName );
94 protected:
95 virtual void implDump() override;
99 class OlePropertyStreamObject : public InputObjectBase
101 public:
102 explicit OlePropertyStreamObject( const ObjectBase& rParent, const BinaryInputStreamRef& rxStrm, const OUString& rSysFileName );
104 protected:
105 virtual void implDump() override;
107 private:
108 void dumpSection( const OUString& rGuid, sal_uInt32 nStartPos );
110 void dumpProperty( sal_Int32 nPropId, sal_uInt32 nStartPos );
111 void dumpCodePageProperty( sal_uInt32 nStartPos );
112 void dumpDictionaryProperty( sal_uInt32 nStartPos );
114 sal_uInt16 dumpPropertyContents( sal_Int32 nPropId );
115 void dumpPropertyValue( sal_Int32 nPropId, sal_uInt16 nBaseType );
116 void dumpPropertyVector( sal_Int32 nPropId, sal_uInt16 nBaseType );
118 sal_uInt16 dumpPropertyType();
119 void dumpBlob( sal_Int32 nPropId, const String& rName );
120 OUString dumpString8( const String& rName );
121 OUString dumpCharArray8( const String& rName, sal_Int32 nLen );
122 OUString dumpString16( const String& rName );
123 OUString dumpCharArray16( const String& rName, sal_Int32 nLen );
124 bool dumpTypedProperty( const String& rName, sal_uInt16 nExpectedType );
125 void dumpHlinks( sal_Int32 nSize );
127 bool startElement( sal_uInt32 nStartPos );
128 void writeSectionHeader( const OUString& rGuid, sal_uInt32 nStartPos );
129 void writePropertyHeader( sal_Int32 nPropId, sal_uInt32 nStartPos );
131 private:
132 NameListRef mxPropIds;
133 rtl_TextEncoding meTextEnc;
134 bool mbIsUnicode;
138 class OleStorageObject : public StorageObjectBase
140 public:
141 explicit OleStorageObject( const ObjectBase& rParent, const StorageRef& rxStrg, const OUString& rSysPath );
143 protected:
144 OleStorageObject() {}
146 using StorageObjectBase::construct;
148 virtual void implDumpStream(
149 const css::uno::Reference< css::io::XInputStream >& rxStrm,
150 const OUString& rStrgPath,
151 const OUString& rStrmName,
152 const OUString& rSysFileName ) override;
156 class ComCtlObjectBase : public OleInputObjectBase
158 protected:
159 explicit ComCtlObjectBase(
160 const InputObjectBase& rParent,
161 sal_uInt32 nDataId5, sal_uInt32 nDataId6, sal_uInt16 nVersion,
162 bool bCommonPart, bool bComplexPart );
164 virtual void implDump() override;
165 virtual void implDumpProperties() = 0;
166 virtual void implDumpCommonExtra( sal_Int64 nEndPos );
167 virtual void implDumpCommonTrailing();
169 private:
170 bool dumpComCtlHeader( sal_uInt32 nExpId, sal_uInt16 nExpMajor = SAL_MAX_UINT16, sal_uInt16 nExpMinor = SAL_MAX_UINT16 );
171 bool dumpComCtlSize();
172 bool dumpComCtlData( sal_uInt32& ornCommonPartSize );
173 bool dumpComCtlCommon( sal_uInt32 nPartSize );
174 bool dumpComCtlComplex();
176 protected:
177 sal_uInt32 mnDataId5;
178 sal_uInt32 mnDataId6;
179 sal_uInt16 mnVersion;
180 bool mbCommonPart;
181 bool mbComplexPart;
185 class ComCtlScrollBarObject : public ComCtlObjectBase
187 public:
188 explicit ComCtlScrollBarObject( const InputObjectBase& rParent, sal_uInt16 nVersion );
190 protected:
191 virtual void implDumpProperties() override;
195 class ComCtlProgressBarObject : public ComCtlObjectBase
197 public:
198 explicit ComCtlProgressBarObject( const InputObjectBase& rParent, sal_uInt16 nVersion );
200 protected:
201 virtual void implDumpProperties() override;
205 class ComCtlSliderObject : public ComCtlObjectBase
207 public:
208 explicit ComCtlSliderObject( const InputObjectBase& rParent, sal_uInt16 nVersion );
210 protected:
211 virtual void implDumpProperties() override;
215 class ComCtlUpDownObject : public ComCtlObjectBase
217 public:
218 explicit ComCtlUpDownObject( const InputObjectBase& rParent, sal_uInt16 nVersion );
220 protected:
221 virtual void implDumpProperties() override;
225 class ComCtlImageListObject : public ComCtlObjectBase
227 public:
228 explicit ComCtlImageListObject( const InputObjectBase& rParent, sal_uInt16 nVersion );
230 protected:
231 virtual void implDumpProperties() override;
232 virtual void implDumpCommonExtra( sal_Int64 nEndPos ) override;
233 virtual void implDumpCommonTrailing() override;
237 class ComCtlTabStripObject : public ComCtlObjectBase
239 public:
240 explicit ComCtlTabStripObject( const InputObjectBase& rParent, sal_uInt16 nVersion );
242 protected:
243 virtual void implDumpProperties() override;
244 virtual void implDumpCommonExtra( sal_Int64 nEndPos ) override;
248 class ComCtlTreeViewObject : public ComCtlObjectBase
250 public:
251 explicit ComCtlTreeViewObject( const InputObjectBase& rParent, sal_uInt16 nVersion );
253 protected:
254 virtual void implDumpProperties() override;
255 virtual void implDumpCommonExtra( sal_Int64 nEndPos ) override;
257 private:
258 sal_uInt32 mnStringFlags;
262 class ComCtlStatusBarObject : public ComCtlObjectBase
264 public:
265 explicit ComCtlStatusBarObject( const InputObjectBase& rParent, sal_uInt16 nVersion );
267 protected:
268 virtual void implDumpProperties() override;
269 virtual void implDumpCommonExtra( sal_Int64 nEndPos ) override;
270 virtual void implDumpCommonTrailing() override;
274 class AxPropertyObjectBase : public OleInputObjectBase
276 protected:
277 AxPropertyObjectBase() {}
279 using OleInputObjectBase::construct;
280 void construct(
281 const ObjectBase& rParent,
282 const BinaryInputStreamRef& rxStrm,
283 const OUString& rSysFileName,
284 const String& rPropNameList,
285 bool b64BitPropFlags = false );
286 void construct(
287 const InputObjectBase& rParent,
288 const String& rPropNameList,
289 bool b64BitPropFlags = false );
291 virtual bool implIsValid() const override;
292 virtual void implDump() override;
294 virtual void implDumpShortProperties();
295 virtual void implDumpExtended();
297 bool ensureValid( bool bCondition = true );
299 template< typename Type >
300 void alignInput();
302 void setAlignAnchor();
303 bool startNextProperty();
304 OUString getPropertyName() const;
306 template< typename Type >
307 Type dumpDecProperty( Type nDefault, const NameListWrapper& rListWrp = NO_LIST );
308 template< typename Type >
309 Type dumpHexProperty( Type nDefault, const NameListWrapper& rListWrp = NO_LIST );
311 bool dumpBoolProperty() { return startNextProperty(); }
312 sal_Int32 dumpHmmProperty() { return dumpDecProperty< sal_Int32 >( 0, "CONV-HMM-TO-CM" ); }
313 sal_uInt8 dumpMousePtrProperty() { return dumpDecProperty< sal_uInt8 >( 0, "OLE-MOUSEPTR" ); }
314 template< typename Type >
315 Type dumpBorderStyleProperty( Type nDefault ) { return dumpDecProperty< Type >( nDefault, "AX-BORDERSTYLE" ); }
316 template< typename Type >
317 Type dumpSpecialEffectProperty( Type nDefault ) { return dumpDecProperty< Type >( nDefault, "AX-SPECIALEFFECT" ); }
318 sal_uInt32 dumpEnabledProperty() { return dumpDecProperty< sal_uInt32 >( 1, "AX-ENABLED" ); }
319 sal_Int32 dumpOrientationProperty() { return dumpDecProperty< sal_Int32 >( -1, "AX-ORIENTATION" ); }
320 sal_Int32 dumpDelayProperty() { return dumpDecProperty< sal_Int32 >( 50, "AX-CONV-MS" ); }
321 sal_uInt32 dumpImagePosProperty() { return dumpHexProperty< sal_uInt32 >( 0x00070001, "AX-IMAGEPOS" ); }
322 sal_uInt8 dumpImageSizeModeProperty() { return dumpDecProperty< sal_uInt8 >( 0, "AX-IMAGESIZEMODE" ); }
323 sal_uInt8 dumpImageAlignProperty() { return dumpDecProperty< sal_uInt8 >( 2, "AX-IMAGEALIGN" ); }
325 sal_uInt32 dumpFlagsProperty( sal_uInt32 nDefault, const sal_Char* pcNameList = "AX-FLAGS" );
326 sal_uInt32 dumpColorProperty( sal_uInt32 nDefault );
327 sal_Unicode dumpUnicodeProperty();
328 void dumpUnknownProperty();
330 void dumpPosProperty();
331 void dumpSizeProperty();
332 void dumpGuidProperty( OUString* pValue = nullptr );
333 void dumpStringProperty( OUString* pValue = nullptr );
334 void dumpStringArrayProperty();
335 void dumpStreamProperty();
337 void dumpEmbeddedFont();
338 void dumpToPosition( sal_Int64 nPos );
340 private:
341 void constructAxPropObj( const String& rPropNameList, bool b64BitPropFlags );
343 void dumpVersion();
344 OUString dumpString( const String& rName, sal_uInt32 nSize, bool bArray );
345 void dumpShortProperties();
346 void dumpLargeProperties();
348 private:
349 struct LargeProperty
351 enum LargePropertyType { PROPTYPE_POS, PROPTYPE_SIZE, PROPTYPE_GUID, PROPTYPE_STRING, PROPTYPE_STRINGARRAY };
353 LargePropertyType mePropType;
354 OUString maItemName;
355 sal_uInt32 mnDataSize;
356 OUString* mpItemValue;
357 explicit LargeProperty( LargePropertyType ePropType, const String& rItemName, sal_uInt32 nDataSize, OUString* pItemValue = nullptr ) :
358 mePropType( ePropType ), maItemName( rItemName ), mnDataSize( nDataSize ), mpItemValue( pItemValue ) {}
360 typedef ::std::vector< LargeProperty > LargePropertyVector;
362 struct StreamProperty
364 OUString maItemName;
365 sal_uInt16 mnData;
366 explicit StreamProperty( const String& rItemName, sal_uInt16 nData ) :
367 maItemName( rItemName ), mnData( nData ) {}
369 typedef ::std::vector< StreamProperty > StreamPropertyVector;
371 LargePropertyVector maLargeProps;
372 StreamPropertyVector maStreamProps;
373 NameListRef mxPropNames;
374 sal_Int64 mnPropertiesStart;
375 sal_Int64 mnPropertiesEnd;
376 sal_Int64 mnPropFlags;
377 sal_Int64 mnCurrProp;
378 bool mb64BitPropFlags;
379 bool mbValid;
383 template< typename Type >
384 void AxPropertyObjectBase::alignInput()
386 mxStrm->skip( (sizeof( Type ) - ((mxStrm->tell() - mnPropertiesStart) % sizeof( Type ))) % sizeof( Type ) );
389 template< typename Type >
390 Type AxPropertyObjectBase::dumpDecProperty( Type nDefault, const NameListWrapper& rListWrp )
392 if( startNextProperty() )
394 alignInput< Type >();
395 return dumpDec< Type >( getPropertyName(), rListWrp );
397 return nDefault;
400 template< typename Type >
401 Type AxPropertyObjectBase::dumpHexProperty( Type nDefault, const NameListWrapper& rListWrp )
403 if( startNextProperty() )
405 alignInput< Type >();
406 return dumpHex< Type >( getPropertyName(), rListWrp );
408 return nDefault;
412 class AxCFontNewObject : public AxPropertyObjectBase
414 public:
415 explicit AxCFontNewObject( const InputObjectBase& rParent );
417 protected:
418 virtual void implDumpShortProperties() override;
422 class AxColumnInfoObject : public AxPropertyObjectBase
424 public:
425 explicit AxColumnInfoObject( const InputObjectBase& rParent );
427 protected:
428 virtual void implDumpShortProperties() override;
432 class AxCommandButtonObject : public AxPropertyObjectBase
434 public:
435 explicit AxCommandButtonObject( const InputObjectBase& rParent );
437 protected:
438 virtual void implDumpShortProperties() override;
439 virtual void implDumpExtended() override;
443 class AxMorphControlObject : public AxPropertyObjectBase
445 public:
446 explicit AxMorphControlObject( const InputObjectBase& rParent );
448 protected:
449 virtual void implDumpShortProperties() override;
450 virtual void implDumpExtended() override;
452 private:
453 void dumpColumnInfos();
455 private:
456 sal_uInt16 mnColInfoCount;
457 sal_uInt8 mnCtrlType;
461 class AxLabelObject : public AxPropertyObjectBase
463 public:
464 explicit AxLabelObject( const InputObjectBase& rParent );
466 protected:
467 virtual void implDumpShortProperties() override;
468 virtual void implDumpExtended() override;
472 class AxImageObject : public AxPropertyObjectBase
474 public:
475 explicit AxImageObject( const InputObjectBase& rParent );
477 protected:
478 virtual void implDumpShortProperties() override;
482 class AxScrollBarObject : public AxPropertyObjectBase
484 public:
485 explicit AxScrollBarObject( const InputObjectBase& rParent );
487 protected:
488 virtual void implDumpShortProperties() override;
492 class AxSpinButtonObject : public AxPropertyObjectBase
494 public:
495 explicit AxSpinButtonObject( const InputObjectBase& rParent );
497 protected:
498 virtual void implDumpShortProperties() override;
502 class AxTabStripObject : public AxPropertyObjectBase
504 public:
505 explicit AxTabStripObject( const InputObjectBase& rParent );
507 protected:
508 virtual void implDumpShortProperties() override;
509 virtual void implDumpExtended() override;
511 private:
512 sal_Int32 mnTabFlagCount;
516 class FormControlStreamObject : public OleInputObjectBase
518 public:
519 explicit FormControlStreamObject(
520 const ObjectBase& rParent,
521 const BinaryInputStreamRef& rxStrm,
522 const OUString& rSysFileName,
523 const OUString* pProgId = nullptr );
524 explicit FormControlStreamObject(
525 const OutputObjectBase& rParent,
526 const BinaryInputStreamRef& rxStrm,
527 const OUString* pProgId = nullptr );
529 protected:
530 virtual void implDump() override;
532 private:
533 void constructFormCtrlStrmObj( const OUString* pProgId );
535 private:
536 OUString maProgId;
537 bool mbReadGuid;
541 struct VbaFormSiteInfo
543 OUString maProgId;
544 sal_Int32 mnId;
545 sal_uInt32 mnLength;
546 bool mbInStream;
548 VbaFormSiteInfo() : mnId( 0 ), mnLength( 0 ), mbInStream( false ) {}
551 typedef ::std::vector< VbaFormSiteInfo > VbaFormSiteInfoVector;
554 struct VbaFormSharedData
556 OUStringVector maClassInfoProgIds;
557 VbaFormSiteInfoVector maSiteInfos;
561 class VbaFormClassInfoObject : public AxPropertyObjectBase
563 public:
564 explicit VbaFormClassInfoObject( const InputObjectBase& rParent, VbaFormSharedData& rFormData );
566 protected:
567 virtual void implDumpShortProperties() override;
569 private:
570 VbaFormSharedData& mrFormData;
574 class VbaFormSiteObject : public AxPropertyObjectBase
576 public:
577 explicit VbaFormSiteObject( const InputObjectBase& rParent, VbaFormSharedData& rFormData );
579 protected:
580 virtual void implDumpShortProperties() override;
582 private:
583 VbaFormSharedData& mrFormData;
587 class VbaFormDesignExtObject : public AxPropertyObjectBase
589 public:
590 explicit VbaFormDesignExtObject( const InputObjectBase& rParent );
592 protected:
593 virtual void implDumpShortProperties() override;
597 class VbaFStreamObject : public AxPropertyObjectBase
599 public:
600 explicit VbaFStreamObject(
601 const ObjectBase& rParent,
602 const BinaryInputStreamRef& rxStrm,
603 const OUString& rSysFileName,
604 VbaFormSharedData& rFormData );
606 protected:
607 virtual void implDumpShortProperties() override;
608 virtual void implDumpExtended() override;
610 private:
611 void dumpClassInfos();
612 void dumpFormSites( sal_uInt32 nCount );
613 void dumpSiteData();
614 void dumpDesignExtender();
616 private:
617 VbaFormSharedData& mrFormData;
618 sal_uInt32 mnFlags;
622 class VbaOStreamObject : public OleInputObjectBase
624 public:
625 explicit VbaOStreamObject(
626 const ObjectBase& rParent,
627 const BinaryInputStreamRef& rxStrm,
628 const OUString& rSysFileName,
629 VbaFormSharedData& rFormData );
631 protected:
632 virtual void implDump() override;
634 private:
635 VbaFormSharedData& mrFormData;
639 class VbaPageObject : public AxPropertyObjectBase
641 public:
642 explicit VbaPageObject( const InputObjectBase& rParent );
644 protected:
645 virtual void implDumpShortProperties() override;
649 class VbaMultiPageObject : public AxPropertyObjectBase
651 public:
652 explicit VbaMultiPageObject( const InputObjectBase& rParent );
654 protected:
655 virtual void implDumpShortProperties() override;
656 virtual void implDumpExtended() override;
658 private:
659 sal_Int32 mnPageCount;
663 class VbaXStreamObject : public InputObjectBase
665 public:
666 explicit VbaXStreamObject(
667 const ObjectBase& rParent,
668 const BinaryInputStreamRef& rxStrm,
669 const OUString& rSysFileName,
670 VbaFormSharedData& rFormData );
672 protected:
673 virtual void implDump() override;
675 private:
676 VbaFormSharedData& mrFormData;
680 class VbaContainerStorageObject : public OleStorageObject
682 public:
683 explicit VbaContainerStorageObject(
684 const ObjectBase& rParent,
685 const StorageRef& rxStrg,
686 const OUString& rSysPath );
688 protected:
689 virtual void implDumpStream(
690 const css::uno::Reference< css::io::XInputStream >& rxStrm,
691 const OUString& rStrgPath,
692 const OUString& rStrmName,
693 const OUString& rSysFileName ) override;
695 virtual void implDumpStorage(
696 const StorageRef& rxStrg,
697 const OUString& rStrgPath,
698 const OUString& rSysPath ) override;
700 private:
701 bool isFormStorage( const OUString& rStrgPath ) const;
703 private:
704 VbaFormSharedData maFormData;
708 struct VbaSharedData
710 typedef ::std::map< OUString, sal_Int32 > StreamOffsetMap;
712 StreamOffsetMap maStrmOffsets;
713 rtl_TextEncoding meTextEnc;
715 VbaSharedData();
717 bool isModuleStream( const OUString& rStrmName ) const;
718 sal_Int32 getStreamOffset( const OUString& rStrmName ) const;
722 class VbaDirStreamObject : public SequenceRecordObjectBase
724 public:
725 explicit VbaDirStreamObject(
726 const ObjectBase& rParent,
727 const BinaryInputStreamRef& rxStrm,
728 const OUString& rSysFileName,
729 VbaSharedData& rVbaData );
731 protected:
732 virtual bool implIsValid() const override;
733 virtual bool implReadRecordHeader( BinaryInputStream& rBaseStrm, sal_Int64& ornRecId, sal_Int64& ornRecSize ) override;
734 virtual void implDumpRecordBody() override;
736 private:
737 OUString dumpByteString( const String& rName );
738 OUString dumpUniString( const String& rName );
739 OUString dumpByteStringWithLength( const String& rName );
741 private:
742 VbaSharedData& mrVbaData;
743 BinaryInputStreamRef mxInStrm;
744 OUString maCurrStream;
745 sal_Int32 mnCurrOffset;
749 class VbaModuleStreamObject : public InputObjectBase
751 public:
752 explicit VbaModuleStreamObject(
753 const ObjectBase& rParent,
754 const BinaryInputStreamRef& rxStrm,
755 const OUString& rSysFileName,
756 VbaSharedData& rVbaData,
757 sal_Int32 nStrmOffset );
759 protected:
760 virtual void implDump() override;
762 private:
763 VbaSharedData& mrVbaData;
764 sal_Int32 mnStrmOffset;
768 class VbaStorageObject : public OleStorageObject
770 public:
771 explicit VbaStorageObject(
772 const ObjectBase& rParent,
773 const StorageRef& rxStrg,
774 const OUString& rSysPath,
775 VbaSharedData& rVbaData );
777 protected:
778 virtual void implDumpStream(
779 const css::uno::Reference< css::io::XInputStream >& rxStrm,
780 const OUString& rStrgPath,
781 const OUString& rStrmName,
782 const OUString& rSysFileName ) override;
784 private:
785 VbaSharedData& mrVbaData;
789 class VbaFormStorageObject : public VbaContainerStorageObject
791 public:
792 explicit VbaFormStorageObject(
793 const ObjectBase& rParent,
794 const StorageRef& rxStrg,
795 const OUString& rSysPath,
796 VbaSharedData& rVbaData );
798 protected:
799 virtual void implDumpStream(
800 const css::uno::Reference< css::io::XInputStream >& rxStrm,
801 const OUString& rStrgPath,
802 const OUString& rStrmName,
803 const OUString& rSysFileName ) override;
805 private:
806 VbaSharedData& mrVbaData;
810 class VbaProjectStorageObject : public OleStorageObject
812 public:
813 explicit VbaProjectStorageObject( const ObjectBase& rParent, const StorageRef& rxStrg, const OUString& rSysPath );
815 protected:
816 virtual void implDumpStream(
817 const css::uno::Reference< css::io::XInputStream >& rxStrm,
818 const OUString& rStrgPath,
819 const OUString& rStrmName,
820 const OUString& rSysFileName ) override;
822 virtual void implDumpStorage(
823 const StorageRef& rxStrg,
824 const OUString& rStrgPath,
825 const OUString& rSysPath ) override;
827 private:
828 VbaSharedData maVbaData;
832 class ActiveXStorageObject : public VbaContainerStorageObject
834 public:
835 explicit ActiveXStorageObject(
836 const ObjectBase& rParent,
837 const StorageRef& rxStrg,
838 const OUString& rSysPath );
840 protected:
841 virtual void implDumpBaseStream(
842 const BinaryInputStreamRef& rxStrm,
843 const OUString& rSysFileName ) override;
847 } // namespace dump
848 } // namespace oox
850 #endif
851 #endif
853 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */