25#include <tools/datetime.hxx>
26#include <rtl/tencinfo.h>
31#define STREAM_BUFFER_SIZE 2048
34using ::com::sun::star::uno::Any;
38#define TIMESTAMP_INVALID_DATETIME ( DateTime ( Date ( 1, 1, 1601 ), tools::Time ( 0, 0, 0 ) ) )
40#define TIMESTAMP_INVALID_UTILDATETIME (util::DateTime(0, 0, 0, 0, 1, 1, 1601, false))
42#define TIMESTAMP_INVALID_UTILDATE (util::Date(1, 1, 1601))
50 explicit SfxOleInt32Property( sal_Int32 nPropId, sal_Int32
nValue = 0 );
67 explicit SfxOleDoubleProperty( sal_Int32 nPropId,
double fValue = 0.0 );
69 double GetValue()
const {
return mfValue; }
84 explicit SfxOleBoolProperty( sal_Int32 nPropId,
bool bValue =
false );
86 bool GetValue()
const {
return mbValue; }
101 explicit SfxOleStringPropertyBase(
102 sal_Int32 nPropId, sal_Int32 nPropType,
104 explicit SfxOleStringPropertyBase(
105 sal_Int32 nPropId, sal_Int32 nPropType,
107 explicit SfxOleStringPropertyBase(
108 sal_Int32 nPropId, sal_Int32 nPropType,
109 rtl_TextEncoding eTextEnc );
120class SfxOleString8Property :
public SfxOleStringPropertyBase
123 explicit SfxOleString8Property(
125 explicit SfxOleString8Property(
127 const OUString& rValue );
136class SfxOleString16Property :
public SfxOleStringPropertyBase
139 explicit SfxOleString16Property( sal_Int32 nPropId );
151 explicit SfxOleFileTimeProperty( sal_Int32 nPropId );
153 explicit SfxOleFileTimeProperty( sal_Int32 nPropId,
const util::DateTime& rDateTime );
170 explicit SfxOleDateProperty( sal_Int32 nPropId );
173 const util::Date&
GetValue()
const {
return maDate; }
191 explicit SfxOleThumbnailProperty( sal_Int32 nPropId,
192 const uno::Sequence<sal_Int8> & i_rData);
194 bool IsValid()
const {
return mData.hasElements(); }
201 uno::Sequence<sal_Int8> mData;
213 explicit SfxOleBlobProperty( sal_Int32 nPropId,
214 const uno::Sequence<sal_Int8> & i_rData);
215 bool IsValid()
const {
return mData.hasElements(); }
222 uno::Sequence<sal_Int8> mData;
230 static_cast< sal_uInt16
>( rtl_getWindowsCodePageFromTextEncoding( *
mxTextEnc ) );
240 rtl_TextEncoding eTextEnc = rtl_getTextEncodingFromWindowsCodePage( nCodePage );
241 if( eTextEnc != RTL_TEXTENCODING_DONTKNOW )
276 SAL_WARN_IF(nSize < 1 || nSize > 0xFFFF,
"sfx.doc",
"SfxOleStringHelper::ImplLoadString8 - invalid string of len " << nSize);
277 if (nSize < 1 || nSize > 0xFFFF)
291 SAL_WARN_IF(nSize < 1 || nSize > 0xFFFF,
"sfx.doc",
"SfxOleStringHelper::ImplLoadString16 - invalid string of len " << nSize);
293 if (nSize < 1 || nSize > 0xFFFF)
299 if ((nSize & 1) == 1)
312 sal_Int32 nSize = aEncoded.getLength() + 1;
322 sal_Int32 nSize =
static_cast< sal_Int32
>( rValue.size() + 1 );
325 for(
size_t nIdx = 0; nIdx < rValue.size(); ++nIdx )
329 if( (nSize & 1) == 1 )
373 sal_uInt16 nCodePage(0);
385SfxOleInt32Property::SfxOleInt32Property( sal_Int32 nPropId, sal_Int32 nValue ) :
391void SfxOleInt32Property::ImplLoad(
SvStream& rStrm )
396void SfxOleInt32Property::ImplSave(
SvStream& rStrm )
402SfxOleDoubleProperty::SfxOleDoubleProperty( sal_Int32 nPropId,
double fValue ) :
408void SfxOleDoubleProperty::ImplLoad(
SvStream& rStrm )
413void SfxOleDoubleProperty::ImplSave(
SvStream& rStrm )
419SfxOleBoolProperty::SfxOleBoolProperty( sal_Int32 nPropId,
bool bValue ) :
425void SfxOleBoolProperty::ImplLoad(
SvStream& rStrm )
432void SfxOleBoolProperty::ImplSave(
SvStream& rStrm )
438SfxOleStringPropertyBase::SfxOleStringPropertyBase(
445SfxOleStringPropertyBase::SfxOleStringPropertyBase(
446 sal_Int32 nPropId, sal_Int32 nPropType,
const SfxOleTextEncoding& rTextEnc, OUString aValue ) :
453SfxOleStringPropertyBase::SfxOleStringPropertyBase(
454 sal_Int32 nPropId, sal_Int32 nPropType, rtl_TextEncoding eTextEnc ) :
461SfxOleString8Property::SfxOleString8Property(
467SfxOleString8Property::SfxOleString8Property(
473void SfxOleString8Property::ImplLoad(
SvStream& rStrm )
478void SfxOleString8Property::ImplSave(
SvStream& rStrm )
484SfxOleString16Property::SfxOleString16Property( sal_Int32 nPropId ) :
489void SfxOleString16Property::ImplLoad(
SvStream& rStrm )
494void SfxOleString16Property::ImplSave(
SvStream& rStrm )
500SfxOleFileTimeProperty::SfxOleFileTimeProperty( sal_Int32 nPropId ) :
505SfxOleFileTimeProperty::SfxOleFileTimeProperty( sal_Int32 nPropId,
const util::DateTime& rDateTime ) :
511void SfxOleFileTimeProperty::ImplLoad(
SvStream& rStrm )
513 sal_uInt32 nLower(0), nUpper(0);
532void SfxOleFileTimeProperty::ImplSave(
SvStream& rStrm )
538 static_cast< sal_uInt16
>(
maDateTime.Year ) ),
547 if( aDateTimeUtc.IsValidAndGregorian()
549 aDateTimeUtc.ConvertToUTC();
551 sal_uInt32 nLower, nUpper;
552 aDateTimeUtc.GetWin32FileDateTime( nLower, nUpper );
556SfxOleDateProperty::SfxOleDateProperty( sal_Int32 nPropId ) :
561void SfxOleDateProperty::ImplLoad(
SvStream& rStrm )
566 sal_Int32 nDays = fValue;
569 SAL_WARN(
"sfx.doc",
"SfxOleDateProperty::ImplLoad bad date, ignored");
572 ::Date aDate(31, 12, 1899);
573 aDate.AddDays(nDays);
574 maDate.Day = aDate.GetDay();
575 maDate.Month = aDate.GetMonth();
576 maDate.Year = aDate.GetYear();
580void SfxOleDateProperty::ImplSave(
SvStream& rStrm )
585 double fValue = nDays-nStartDays;
590SfxOleThumbnailProperty::SfxOleThumbnailProperty(
591 sal_Int32 nPropId,
const uno::Sequence<sal_Int8> & i_rData) :
597void SfxOleThumbnailProperty::ImplLoad(
SvStream& )
599 SAL_WARN(
"sfx.doc",
"SfxOleThumbnailProperty::ImplLoad - not implemented" );
600 SetError( SVSTREAM_INVALID_ACCESS );
603void SfxOleThumbnailProperty::ImplSave(
SvStream& rStrm )
627 sal_Int32 nClipSize =
static_cast< sal_Int32
>( 4 + 4 + mData.getLength() );
633 SAL_WARN(
"sfx.doc",
"SfxOleThumbnailProperty::ImplSave - invalid thumbnail property" );
634 SetError( SVSTREAM_INVALID_ACCESS );
639SfxOleBlobProperty::SfxOleBlobProperty( sal_Int32 nPropId,
640 const uno::Sequence<sal_Int8> & i_rData) :
646void SfxOleBlobProperty::ImplLoad(
SvStream& )
648 SAL_WARN(
"sfx.doc",
"SfxOleBlobProperty::ImplLoad - not implemented" );
649 SetError( SVSTREAM_INVALID_ACCESS );
652void SfxOleBlobProperty::ImplSave(
SvStream& rStrm )
657 SAL_WARN(
"sfx.doc",
"SfxOleBlobProperty::ImplSave - invalid BLOB property" );
658 SetError( SVSTREAM_INVALID_ACCESS );
671 SfxOlePropNameMap::const_iterator aIt =
maPropNameMap.find( nPropId );
672 return (aIt ==
maPropNameMap.end()) ? OUString() : aIt->second;
690 sal_Int32 nPropId(0);
710 maDictProp( maCodePageProp ),
712 mbSupportsDict( bSupportsDict )
719 SfxOlePropMap::const_iterator aIt =
maPropMap.find( nPropId );
728 const SfxOleInt32Property* pProp =
729 dynamic_cast< const SfxOleInt32Property*
>( xProp.get() );
731 rnValue = pProp->GetValue();
732 return pProp !=
nullptr;
738 const SfxOleDoubleProperty* pProp =
739 dynamic_cast< const SfxOleDoubleProperty*
>( xProp.get() );
741 rfValue = pProp->GetValue();
742 return pProp !=
nullptr;
748 const SfxOleBoolProperty* pProp =
749 dynamic_cast< const SfxOleBoolProperty*
>( xProp.get() );
751 rbValue = pProp->GetValue();
752 return pProp !=
nullptr;
758 const SfxOleStringPropertyBase* pProp =
759 dynamic_cast< const SfxOleStringPropertyBase*
>( xProp.get() );
761 rValue = pProp->GetValue();
762 return pProp !=
nullptr;
768 const SfxOleFileTimeProperty* pProp =
769 dynamic_cast< const SfxOleFileTimeProperty*
>( xProp.get() );
773 rValue = util::DateTime();
775 rValue = pProp->GetValue();
777 return pProp !=
nullptr;
783 const SfxOleDateProperty* pProp =
784 dynamic_cast< const SfxOleDateProperty*
>( xProp.get() );
788 rValue = util::Date();
790 rValue = pProp->GetValue();
792 return pProp !=
nullptr;
808 SetProperty( std::make_shared<SfxOleDoubleProperty>( nPropId, fValue ) );
813 SetProperty( std::make_shared<SfxOleBoolProperty>( nPropId, bValue ) );
818 bool bInserted = !rValue.isEmpty();
826 if ( rValue.Year == 0 || rValue.Month == 0 || rValue.Day == 0 )
829 SetProperty( std::make_shared<SfxOleFileTimeProperty>( nPropId, rValue ) );
836 if ( rValue.Year == 0 || rValue.Month == 0 || rValue.Day == 0 )
840 const util::DateTime aValue(0, 0, 0, 0, rValue.Day, rValue.Month,
841 rValue.Year,
false );
842 SetProperty( std::make_shared<SfxOleFileTimeProperty>( nPropId, aValue ) );
847 const uno::Sequence<sal_Int8> & i_rData)
849 auto pThumbnail = std::make_shared<SfxOleThumbnailProperty>( nPropId, i_rData );
850 if( pThumbnail->IsValid() )
855 const uno::Sequence<sal_Int8> & i_rData)
857 auto pBlob = std::make_shared<SfxOleBlobProperty>( nPropId, i_rData );
858 if( pBlob->IsValid() )
865 sal_Int32 nInt32 = 0;
866 double fDouble = 0.0;
869 css::util::DateTime aApiDateTime;
870 css::util::Date aApiDate;
882 aValue <<= aApiDateTime;
893 bool bInserted =
true;
894 sal_Int32 nInt32 = 0;
895 double fDouble = 0.0;
897 css::util::DateTime aApiDateTime;
898 css::util::Date aApiDate;
901 SetBoolValue( nPropId, ::comphelper::getBOOL( rValue ) );
902 else if( rValue >>= nInt32 )
904 else if( rValue >>= fDouble )
906 else if( rValue >>= aString )
908 else if( rValue >>= aApiDateTime )
910 else if( rValue >>= aApiDate )
931 rPropIds.push_back(prop.first);
944 sal_Int32 nPropCount(0);
948 typedef ::std::map< sal_Int32, sal_uInt32 > SfxOlePropPosMap;
949 SfxOlePropPosMap aPropPosMap;
950 for (sal_Int32 nPropIdx = 0; nPropIdx < nPropCount &&
rStrm.
good(); ++nPropIdx)
952 sal_Int32 nPropId(0);
953 sal_uInt32 nPropPos(0);
955 aPropPosMap[ nPropId ] = nPropPos;
959 SfxOlePropPosMap::iterator aCodePageIt = aPropPosMap.find(
PROPID_CODEPAGE );
963 sal_Int32 nPropType(0);
968 aPropPosMap.erase( aCodePageIt );
979 sal_Int32 nNameCount(0);
985 aPropPosMap.erase( aDictIt );
990 for (
auto const& propPos : aPropPosMap)
1003 sal_Int32 nPropCount =
static_cast< sal_Int32
>(
maPropMap.size() + 1 );
1010 rStrm.
SeekRel(
static_cast< sal_sSize
>( 8 * nPropCount ) );
1036 sal_Int32 nPropType(0);
1043 xProp = std::make_shared<SfxOleInt32Property>( nPropId );
1046 xProp = std::make_shared<SfxOleDoubleProperty>( nPropId );
1049 xProp = std::make_shared<SfxOleBoolProperty>( nPropId );
1052 xProp = std::make_shared<SfxOleString8Property>( nPropId,
maCodePageProp );
1055 xProp = std::make_shared<SfxOleString16Property>( nPropId );
1058 xProp = std::make_shared<SfxOleFileTimeProperty>( nPropId );
1061 xProp = std::make_shared<SfxOleDateProperty>( nPropId );
1131 SfxOleSectionMap::const_iterator aIt =
maSectionMap.find( rSectionGuid );
1133 xSection = aIt->second;
1149 xSection = std::make_shared<SfxOleSection>( bSupportsDict );
1158 sal_uInt16 nByteOrder;
1160 sal_uInt16 nOsMinor;
1163 sal_Int32 nSectCount(0);
1170 for (sal_Int32 nSectIdx = 0; nSectIdx < nSectCount; ++nSectIdx)
1176 sal_uInt32 nSectPos(0);
1194 sal_Int32 nSectCount =
static_cast< sal_Int32
>(
maSectionMap.size() );
1204 rStrm.
SeekRel(
static_cast< sal_sSize
>( 20 * nSectCount ) );
1211 sal_uInt32 nSectPos =
static_cast< sal_uInt32
>(
rStrm.
Tell() );
1224 static const SvGlobalName saGlobalGuid( 0xF29F85E0, 0x4FF9, 0x1068, 0xAB, 0x91, 0x08, 0x00, 0x2B, 0x27, 0xB3, 0xD9 );
1225 static const SvGlobalName saBuiltInGuid( 0xD5CDD502, 0x2E9C, 0x101B, 0x93, 0x97, 0x08, 0x00, 0x2B, 0x2C, 0xF9, 0xAE );
1226 static const SvGlobalName saCustomGuid( 0xD5CDD505, 0x2E9C, 0x101B, 0x93, 0x97, 0x08, 0x00, 0x2B, 0x2C, 0xF9, 0xAE );
1233 default:
SAL_WARN(
"sfx.doc",
"SfxOlePropertySet::GetSectionGuid - unknown section type" );
const sal_uInt16 nVersion
void ConvertToLocalTime()
static DateTime CreateFromWin32FileDateTime(sal_uInt32 rLower, sal_uInt32 rUpper)
sal_Int16 GetYear() const
sal_uInt16 GetDay() const
static sal_Int32 DateToDays(sal_uInt16 nDay, sal_uInt16 nMonth, sal_Int16 nYear)
sal_uInt16 GetMonth() const
virtual void ImplLoad(SvStream &rStrm) override
Derived classes implement loading the object from the passed steam.
virtual void ImplSave(SvStream &rStrm) override
Derived classes implement saving the object to the passed steam.
SfxOleDictionaryProperty(const SfxOleTextEncoding &rTextEnc)
virtual void ImplLoad(SvStream &rStrm) override
Derived classes implement loading the object from the passed steam.
virtual void ImplSave(SvStream &rStrm) override
Derived classes implement saving the object to the passed steam.
OUString GetPropertyName(sal_Int32 nPropId) const
Returns the custom name for the passed property ID, or an empty string, if name not found.
void SetPropertyName(sal_Int32 nPropId, const OUString &rPropName)
Sets a custom name for the passed property ID.
bool HasPropertyNames() const
Returns true, if the property contains at least one custom property name.
void SetNameCount(sal_Int32 nNameCount)
Prepares the property for loading.
SfxOlePropNameMap maPropNameMap
Base class for all classes related to OLE property sets.
virtual ~SfxOleObjectBase()
void SetError(ErrCode nErrCode)
Sets the passed error code.
virtual void ImplSave(SvStream &rStrm)=0
Derived classes implement saving the object to the passed steam.
void SaveObject(SvStream &rStrm, SfxOleObjectBase &rObj)
Saves the passed object to the stream.
ErrCode const & GetError() const
Returns the current error code.
ErrCode const & Load(SvStream &rStrm)
Loads this object from the passed stream.
void LoadObject(SvStream &rStrm, SfxOleObjectBase &rObj)
Loads the passed object from the stream.
ErrCode const & Save(SvStream &rStrm)
Saves this object to the passed stream.
virtual void ImplLoad(SvStream &rStrm)=0
Derived classes implement loading the object from the passed steam.
Base class for all OLE property objects.
sal_Int32 GetPropType() const
void SetPropType(sal_Int32 nPropType)
sal_Int32 GetPropId() const
virtual void ImplLoad(SvStream &rStrm) override
Derived classes implement loading the object from the passed steam.
SfxOleSection & AddSection(SfxOleSectionType eSection)
Creates and returns the specified section, or just returns it if it already exists.
ErrCode const & LoadPropertySet(SotStorage *pStrg, const OUString &rStrmName)
Loads this object from the passed storage.
SfxOleSectionMap maSectionMap
ErrCode const & SavePropertySet(SotStorage *pStrg, const OUString &rStrmName)
Saves this object to the passed storage.
virtual void ImplSave(SvStream &rStrm) override
Derived classes implement saving the object to the passed steam.
SfxOleSectionRef GetSection(SfxOleSectionType eSection) const
Returns the specified section, or an empty reference, if nothing found.
static const SvGlobalName & GetSectionGuid(SfxOleSectionType eSection)
Returns the GUID for the specified section.
A section in a property set.
bool GetFileTimeValue(css::util::DateTime &rValue, sal_Int32 nPropId) const
Returns the value of a time stamp property with the passed ID in rValue.
virtual void ImplLoad(SvStream &rStrm) override
Derived classes implement loading the object from the passed steam.
SfxOlePropertyRef GetProperty(sal_Int32 nPropId) const
Returns the property with the passed ID, or an empty reference, if nothing found.
SfxOleDictionaryProperty maDictProp
The codepage property.
void SetDateValue(sal_Int32 nPropId, const css::util::Date &rValue)
Inserts a date property with the passed value.
bool GetInt32Value(sal_Int32 &rnValue, sal_Int32 nPropId) const
Returns the value of a signed int32 property with the passed ID in rnValue.
bool SeekToPropertyPos(SvStream &rStrm, sal_uInt32 nPropPos) const
void SetPropertyName(sal_Int32 nPropId, const OUString &rPropName)
Sets a custom name for the passed property ID.
css::uno::Any GetAnyValue(sal_Int32 nPropId) const
Returns the value of the property with the passed ID in a UNO any.
void SetFileTimeValue(sal_Int32 nPropId, const css::util::DateTime &rValue)
Inserts a time stamp property with the passed value.
bool GetBoolValue(bool &rbValue, sal_Int32 nPropId) const
Returns the value of a boolean property with the passed ID in rbValue.
virtual void ImplSave(SvStream &rStrm) override
Derived classes implement saving the object to the passed steam.
void LoadProperty(SvStream &rStrm, sal_Int32 nPropId)
bool GetStringValue(OUString &rValue, sal_Int32 nPropId) const
Returns the value of a string property with the passed ID in rValue.
void GetPropertyIds(::std::vector< sal_Int32 > &rPropIds) const
Returns the identifiers of all existing properties in the passed vector.
SfxOleCodePageProperty maCodePageProp
All properties in this section, by identifier.
sal_Int32 GetFreePropertyId() const
Returns a property identifier not used in this section.
void SetBoolValue(sal_Int32 nPropId, bool bValue)
Inserts a boolean property with the passed value.
bool GetDateValue(css::util::Date &rValue, sal_Int32 nPropId) const
Returns the value of a date property with the passed ID in rValue.
void SetDoubleValue(sal_Int32 nPropId, double fValue)
Inserts a floating-point property with the passed value.
void SetThumbnailValue(sal_Int32 nPropId, const css::uno::Sequence< sal_Int8 > &i_rData)
Inserts a thumbnail property from the passed meta file.
void SetInt32Value(sal_Int32 nPropId, sal_Int32 nValue)
Inserts a signed int32 property with the passed value.
void SetProperty(const SfxOlePropertyRef &xProp)
Adds the passed property to the property set.
void SaveProperty(SvStream &rStrm, SfxOlePropertyBase &rProp, sal_uInt64 &rnPropPosPos)
bool GetDoubleValue(double &rfValue, sal_Int32 nPropId) const
Returns the value of a floating-point property with the passed ID in rfValue.
OUString GetPropertyName(sal_Int32 nPropId) const
Returns the custom name for the passed property ID, or an empty string, if name not found.
bool SetStringValue(sal_Int32 nPropId, const OUString &rValue)
Inserts a string property with the passed value.
SfxOleSection(bool bSupportsDict)
void SetBlobValue(sal_Int32 nPropId, const css::uno::Sequence< sal_Int8 > &i_rData)
Inserts a BLOB property with the passed data.
bool SetAnyValue(sal_Int32 nPropId, const css::uno::Any &rValue)
Inserts a property created from the passed any.
sal_uInt64 mnStartPos
The dictionary property.
bool mbSupportsDict
Start stream position of the section.
Helper for classes that need to load or save string values.
static void SaveString16(SvStream &rStrm, std::u16string_view rValue)
Saves a Unicode string to the passed stream, ignores own encoding.
void ImplSaveString8(SvStream &rStrm, std::u16string_view rValue) const
static OUString LoadString16(SvStream &rStrm)
Loads a Unicode string from the passed stream, ignores own encoding.
OUString LoadString8(SvStream &rStrm) const
Loads a string from the passed stream with current encoding (maybe Unicode).
void SaveString8(SvStream &rStrm, std::u16string_view rValue) const
Saves a string to the passed stream with current encoding (maybe Unicode).
static void ImplSaveString16(SvStream &rStrm, std::u16string_view rValue)
OUString ImplLoadString8(SvStream &rStrm) const
static OUString ImplLoadString16(SvStream &rStrm)
Helper for classes that need text encoding settings.
std::shared_ptr< rtl_TextEncoding > mxTextEnc
void SetTextEncoding(rtl_TextEncoding eTextEnc)
Sets the passed text encoding.
bool IsUnicode() const
Returns true, if this object contains Unicode text encoding.
void SetUnicode()
Sets Unicode text encoding to this object.
rtl_TextEncoding GetTextEncoding() const
Returns the current text encoding identifier.
void SetCodePage(sal_uInt16 nCodePage)
Sets the current text encoding from a Windows codepage identifier.
sal_uInt16 GetCodePage() const
Converts the current settings to a Windows codepage identifier.
tools::SvRef< SotStorageStream > OpenSotStream(const OUString &rEleName, StreamMode=StreamMode::STD_READWRITE)
SvStream & WriteDouble(const double &rDouble)
SvStream & WriteInt32(sal_Int32 nInt32)
virtual sal_uInt64 TellEnd()
SvStream & ReadDouble(double &rDouble)
SvStream & ReadInt16(sal_Int16 &rInt16)
std::size_t WriteBytes(const void *pData, std::size_t nSize)
SvStream & WriteInt16(sal_Int16 nInt16)
SvStream & WriteUChar(unsigned char nChar)
SvStream & WriteUInt16(sal_uInt16 nUInt16)
SvStream & WriteUInt32(sal_uInt32 nUInt32)
SvStream & ReadUInt32(sal_uInt32 &rUInt32)
sal_uInt64 Seek(sal_uInt64 nPos)
SvStream & ReadInt32(sal_Int32 &rInt32)
sal_uInt64 SeekRel(sal_Int64 nPos)
SvStream & ReadUInt16(sal_uInt16 &rUInt16)
ErrCode const & GetErrorCode() const
sal_uInt64 remainingSize()
virtual void SetValue(tools::Long nNew) override
#define ERRCODE_IO_ACCESSDENIED
SvStream & WriteSvGlobalName(SvStream &rOStr, const SvGlobalName &rObj)
#define SAL_WARN_IF(condition, area, stream)
#define SAL_WARN(area, stream)
std::enable_if< std::is_signed< T >::value, bool >::type checked_add(T a, T b, T &result)
OString OUStringToOString(std::u16string_view str, ConnectionSettings const *settings)
#define STREAM_BUFFER_SIZE
#define TIMESTAMP_INVALID_UTILDATETIME
Invalid value for date and time to create invalid instance of TimeStamp.
#define TIMESTAMP_INVALID_UTILDATE
Invalid value for date to create invalid instance of TimeStamp.
#define TIMESTAMP_INVALID_DATETIME
const sal_uInt16 CODEPAGE_UNKNOWN
SfxOleSectionType
Enumerates different section types in OLE property sets.
@ SECTION_BUILTIN
Globally defined properties.
@ SECTION_CUSTOM
Properties built into MS Office.
const sal_uInt16 CODEPAGE_UNICODE
const sal_Int32 PROPTYPE_DOUBLE
const sal_Int32 PROPTYPE_INT16
const sal_uInt16 CODEPAGE_UTF8
const sal_Int32 PROPTYPE_INT32
const sal_Int32 PROPTYPE_BOOL
std::shared_ptr< SfxOlePropertyBase > SfxOlePropertyRef
const sal_Int32 PROPTYPE_BLOB
const sal_Int32 CLIPDATAFMT_DIB
const sal_Int32 PROPTYPE_DATE
const sal_Int32 PROPID_DICTIONARY
const sal_Int32 PROPTYPE_FILETIME
std::shared_ptr< SfxOleSection > SfxOleSectionRef
const sal_Int32 PROPTYPE_STRING16
const sal_Int32 PROPID_CODEPAGE
const sal_Int32 CLIPFMT_WIN
const sal_Int32 PROPTYPE_STRING8
const sal_Int32 PROPTYPE_CLIPFMT
const sal_Int32 PROPID_FIRSTCUSTOM
TOOLS_DLLPUBLIC OString read_uInt8s_ToOString(SvStream &rStrm, std::size_t nUnits)
#define STREAM_SEEK_TO_END
TOOLS_DLLPUBLIC OUString read_uInt16s_ToOUString(SvStream &rStrm, std::size_t nUnits)
TOOLS_DLLPUBLIC bool checkSeek(SvStream &rSt, sal_uInt64 nOffset)