1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
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
; }
35 // ============================================================================
36 // ============================================================================
38 class OleInputObjectBase
: public InputObjectBase
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
60 explicit StdFontObject( const InputObjectBase
& rParent
);
63 virtual void implDump();
66 // ============================================================================
68 class StdPicObject
: public OleInputObjectBase
71 explicit StdPicObject( const InputObjectBase
& rParent
);
74 virtual void implDump();
77 // ============================================================================
78 // ============================================================================
80 class OleStreamObject
: public OleInputObjectBase
83 explicit OleStreamObject( const ObjectBase
& rParent
, const BinaryInputStreamRef
& rxStrm
, const OUString
& rSysFileName
);
86 // ============================================================================
88 class OleCompObjObject
: public OleStreamObject
91 explicit OleCompObjObject( const ObjectBase
& rParent
, const BinaryInputStreamRef
& rxStrm
, const OUString
& rSysFileName
);
94 virtual void implDump();
97 // ============================================================================
98 // ============================================================================
100 class OlePropertyStreamObject
: public InputObjectBase
103 explicit OlePropertyStreamObject( const ObjectBase
& rParent
, const BinaryInputStreamRef
& rxStrm
, const OUString
& rSysFileName
);
106 virtual void implDump();
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
);
134 NameListRef mxPropIds
;
135 rtl_TextEncoding meTextEnc
;
139 // ============================================================================
141 class OleStorageObject
: public StorageObjectBase
144 explicit OleStorageObject( const ObjectBase
& rParent
, const StorageRef
& rxStrg
, const OUString
& rSysPath
);
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
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();
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();
183 sal_uInt32 mnDataId5
;
184 sal_uInt32 mnDataId6
;
185 sal_uInt16 mnVersion
;
190 // ============================================================================
192 class ComCtlScrollBarObject
: public ComCtlObjectBase
195 explicit ComCtlScrollBarObject( const InputObjectBase
& rParent
, sal_uInt16 nVersion
);
198 virtual void implDumpProperties();
201 // ============================================================================
203 class ComCtlProgressBarObject
: public ComCtlObjectBase
206 explicit ComCtlProgressBarObject( const InputObjectBase
& rParent
, sal_uInt16 nVersion
);
209 virtual void implDumpProperties();
212 // ============================================================================
214 class ComCtlSliderObject
: public ComCtlObjectBase
217 explicit ComCtlSliderObject( const InputObjectBase
& rParent
, sal_uInt16 nVersion
);
220 virtual void implDumpProperties();
223 // ============================================================================
225 class ComCtlUpDownObject
: public ComCtlObjectBase
228 explicit ComCtlUpDownObject( const InputObjectBase
& rParent
, sal_uInt16 nVersion
);
231 virtual void implDumpProperties();
234 // ============================================================================
236 class ComCtlImageListObject
: public ComCtlObjectBase
239 explicit ComCtlImageListObject( const InputObjectBase
& rParent
, sal_uInt16 nVersion
);
242 virtual void implDumpProperties();
243 virtual void implDumpCommonExtra( sal_Int64 nEndPos
);
244 virtual void implDumpCommonTrailing();
247 // ============================================================================
249 class ComCtlTabStripObject
: public ComCtlObjectBase
252 explicit ComCtlTabStripObject( const InputObjectBase
& rParent
, sal_uInt16 nVersion
);
255 virtual void implDumpProperties();
256 virtual void implDumpCommonExtra( sal_Int64 nEndPos
);
259 // ============================================================================
261 class ComCtlTreeViewObject
: public ComCtlObjectBase
264 explicit ComCtlTreeViewObject( const InputObjectBase
& rParent
, sal_uInt16 nVersion
);
267 virtual void implDumpProperties();
268 virtual void implDumpCommonExtra( sal_Int64 nEndPos
);
271 sal_uInt32 mnStringFlags
;
274 // ============================================================================
276 class ComCtlStatusBarObject
: public ComCtlObjectBase
279 explicit ComCtlStatusBarObject( const InputObjectBase
& rParent
, sal_uInt16 nVersion
);
282 virtual void implDumpProperties();
283 virtual void implDumpCommonExtra( sal_Int64 nEndPos
);
284 virtual void implDumpCommonTrailing();
287 // ============================================================================
288 // ============================================================================
290 class AxPropertyObjectBase
: public OleInputObjectBase
293 inline explicit AxPropertyObjectBase() {}
295 using OleInputObjectBase::construct
;
297 const ObjectBase
& rParent
,
298 const BinaryInputStreamRef
& rxStrm
,
299 const OUString
& rSysFileName
,
300 const String
& rPropNameList
,
301 bool b64BitPropFlags
= false );
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
>
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
);
357 void constructAxPropObj( const String
& rPropNameList
, bool b64BitPropFlags
);
360 OUString
dumpString( const String
& rName
, sal_uInt32 nSize
, bool bArray
);
361 void dumpShortProperties();
362 void dumpLargeProperties();
367 enum LargePropertyType
{ PROPTYPE_POS
, PROPTYPE_SIZE
, PROPTYPE_GUID
, PROPTYPE_STRING
, PROPTYPE_STRINGARRAY
};
369 LargePropertyType mePropType
;
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
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
;
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
);
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
);
428 // ============================================================================
430 class AxCFontNewObject
: public AxPropertyObjectBase
433 explicit AxCFontNewObject( const InputObjectBase
& rParent
);
436 virtual void implDumpShortProperties();
439 // ============================================================================
441 class AxColumnInfoObject
: public AxPropertyObjectBase
444 explicit AxColumnInfoObject( const InputObjectBase
& rParent
);
447 virtual void implDumpShortProperties();
450 // ============================================================================
452 class AxCommandButtonObject
: public AxPropertyObjectBase
455 explicit AxCommandButtonObject( const InputObjectBase
& rParent
);
458 virtual void implDumpShortProperties();
459 virtual void implDumpExtended();
462 // ============================================================================
464 class AxMorphControlObject
: public AxPropertyObjectBase
467 explicit AxMorphControlObject( const InputObjectBase
& rParent
);
470 virtual void implDumpShortProperties();
471 virtual void implDumpExtended();
474 void dumpColumnInfos();
477 sal_uInt16 mnColInfoCount
;
478 sal_uInt8 mnCtrlType
;
481 // ============================================================================
483 class AxLabelObject
: public AxPropertyObjectBase
486 explicit AxLabelObject( const InputObjectBase
& rParent
);
489 virtual void implDumpShortProperties();
490 virtual void implDumpExtended();
493 // ============================================================================
495 class AxImageObject
: public AxPropertyObjectBase
498 explicit AxImageObject( const InputObjectBase
& rParent
);
501 virtual void implDumpShortProperties();
504 // ============================================================================
506 class AxScrollBarObject
: public AxPropertyObjectBase
509 explicit AxScrollBarObject( const InputObjectBase
& rParent
);
512 virtual void implDumpShortProperties();
515 // ============================================================================
517 class AxSpinButtonObject
: public AxPropertyObjectBase
520 explicit AxSpinButtonObject( const InputObjectBase
& rParent
);
523 virtual void implDumpShortProperties();
526 // ============================================================================
528 class AxTabStripObject
: public AxPropertyObjectBase
531 explicit AxTabStripObject( const InputObjectBase
& rParent
);
534 virtual void implDumpShortProperties();
535 virtual void implDumpExtended();
538 sal_Int32 mnTabFlagCount
;
541 // ============================================================================
542 // ============================================================================
544 class FormControlStreamObject
: public OleInputObjectBase
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 );
558 virtual void implDump();
561 void constructFormCtrlStrmObj( const OUString
* pProgId
);
568 // ============================================================================
569 // ============================================================================
571 struct VbaFormSiteInfo
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
596 explicit VbaFormClassInfoObject( const InputObjectBase
& rParent
, VbaFormSharedData
& rFormData
);
599 virtual void implDumpShortProperties();
602 VbaFormSharedData
& mrFormData
;
605 // ============================================================================
607 class VbaFormSiteObject
: public AxPropertyObjectBase
610 explicit VbaFormSiteObject( const InputObjectBase
& rParent
, VbaFormSharedData
& rFormData
);
613 virtual void implDumpShortProperties();
616 VbaFormSharedData
& mrFormData
;
619 // ============================================================================
621 class VbaFormDesignExtObject
: public AxPropertyObjectBase
624 explicit VbaFormDesignExtObject( const InputObjectBase
& rParent
);
627 virtual void implDumpShortProperties();
630 // ============================================================================
632 class VbaFStreamObject
: public AxPropertyObjectBase
635 explicit VbaFStreamObject(
636 const ObjectBase
& rParent
,
637 const BinaryInputStreamRef
& rxStrm
,
638 const OUString
& rSysFileName
,
639 VbaFormSharedData
& rFormData
);
642 virtual void implDumpShortProperties();
643 virtual void implDumpExtended();
646 void dumpClassInfos();
647 void dumpFormSites( sal_uInt32 nCount
);
649 void dumpDesignExtender();
652 VbaFormSharedData
& mrFormData
;
656 // ============================================================================
658 class VbaOStreamObject
: public OleInputObjectBase
661 explicit VbaOStreamObject(
662 const ObjectBase
& rParent
,
663 const BinaryInputStreamRef
& rxStrm
,
664 const OUString
& rSysFileName
,
665 VbaFormSharedData
& rFormData
);
668 virtual void implDump();
671 VbaFormSharedData
& mrFormData
;
674 // ============================================================================
676 class VbaPageObject
: public AxPropertyObjectBase
679 explicit VbaPageObject( const InputObjectBase
& rParent
);
682 virtual void implDumpShortProperties();
685 // ============================================================================
687 class VbaMultiPageObject
: public AxPropertyObjectBase
690 explicit VbaMultiPageObject( const InputObjectBase
& rParent
);
693 virtual void implDumpShortProperties();
694 virtual void implDumpExtended();
697 sal_Int32 mnPageCount
;
700 // ============================================================================
702 class VbaXStreamObject
: public InputObjectBase
705 explicit VbaXStreamObject(
706 const ObjectBase
& rParent
,
707 const BinaryInputStreamRef
& rxStrm
,
708 const OUString
& rSysFileName
,
709 VbaFormSharedData
& rFormData
);
712 virtual void implDump();
715 VbaFormSharedData
& mrFormData
;
718 // ============================================================================
720 class VbaContainerStorageObject
: public OleStorageObject
723 explicit VbaContainerStorageObject(
724 const ObjectBase
& rParent
,
725 const StorageRef
& rxStrg
,
726 const OUString
& rSysPath
);
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
);
741 bool isFormStorage( const OUString
& rStrgPath
) const;
744 VbaFormSharedData maFormData
;
747 // ============================================================================
748 // ============================================================================
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
768 explicit VbaDirStreamObject(
769 const ObjectBase
& rParent
,
770 const BinaryInputStreamRef
& rxStrm
,
771 const OUString
& rSysFileName
,
772 VbaSharedData
& rVbaData
);
775 virtual bool implIsValid() const;
776 virtual bool implReadRecordHeader( BinaryInputStream
& rBaseStrm
, sal_Int64
& ornRecId
, sal_Int64
& ornRecSize
);
777 virtual void implDumpRecordBody();
780 OUString
dumpByteString( const String
& rName
= EMPTY_STRING
);
781 OUString
dumpUniString( const String
& rName
= EMPTY_STRING
);
783 OUString
dumpByteStringWithLength( const String
& rName
= EMPTY_STRING
);
786 VbaSharedData
& mrVbaData
;
787 BinaryInputStreamRef mxInStrm
;
788 OUString maCurrStream
;
789 sal_Int32 mnCurrOffset
;
792 // ============================================================================
794 class VbaModuleStreamObject
: public InputObjectBase
797 explicit VbaModuleStreamObject(
798 const ObjectBase
& rParent
,
799 const BinaryInputStreamRef
& rxStrm
,
800 const OUString
& rSysFileName
,
801 VbaSharedData
& rVbaData
,
802 sal_Int32 nStrmOffset
);
805 virtual void implDump();
808 VbaSharedData
& mrVbaData
;
809 sal_Int32 mnStrmOffset
;
812 // ============================================================================
814 class VbaStorageObject
: public OleStorageObject
817 explicit VbaStorageObject(
818 const ObjectBase
& rParent
,
819 const StorageRef
& rxStrg
,
820 const OUString
& rSysPath
,
821 VbaSharedData
& rVbaData
);
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
);
831 VbaSharedData
& mrVbaData
;
834 // ============================================================================
836 class VbaFormStorageObject
: public VbaContainerStorageObject
839 explicit VbaFormStorageObject(
840 const ObjectBase
& rParent
,
841 const StorageRef
& rxStrg
,
842 const OUString
& rSysPath
,
843 VbaSharedData
& rVbaData
);
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
);
853 VbaSharedData
& mrVbaData
;
856 // ============================================================================
858 class VbaProjectStorageObject
: public OleStorageObject
861 explicit VbaProjectStorageObject( const ObjectBase
& rParent
, const StorageRef
& rxStrg
, const OUString
& rSysPath
);
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
);
876 VbaSharedData maVbaData
;
879 // ============================================================================
880 // ============================================================================
882 class ActiveXStorageObject
: public VbaContainerStorageObject
885 explicit ActiveXStorageObject(
886 const ObjectBase
& rParent
,
887 const StorageRef
& rxStrg
,
888 const OUString
& rSysPath
);
891 virtual void implDumpBaseStream(
892 const BinaryInputStreamRef
& rxStrm
,
893 const OUString
& rSysFileName
);
896 // ============================================================================
897 // ============================================================================
905 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */