diff options
author | Jacobo Aragunde Pérez <jaragunde@igalia.com> | 2014-02-14 18:14:50 +0100 |
---|---|---|
committer | Jacobo Aragunde Pérez <jaragunde@igalia.com> | 2014-02-24 13:24:52 +0100 |
commit | c69ae9f8f80988afd31ec5a936984e131e18db7f (patch) | |
tree | 24cc2a301c3c4e9a217ad35a6184a1c079424a03 /comphelper | |
parent | 20a174ac1243fb6ad322347eb99c2d014bd4ca95 (diff) |
comphelper: EmbeddedObjectContainer::GetObjectStream methods
These methods were added to provide access to the stream to the
embedded object itself.
Change-Id: I0a47a54852cddbd5ddd0a6599bba21999afd96ba
Diffstat (limited to 'comphelper')
-rw-r--r-- | comphelper/source/container/embeddedobjectcontainer.cxx | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/comphelper/source/container/embeddedobjectcontainer.cxx b/comphelper/source/container/embeddedobjectcontainer.cxx index a3cdfa4ed2c4..d296c9fa10c2 100644 --- a/comphelper/source/container/embeddedobjectcontainer.cxx +++ b/comphelper/source/container/embeddedobjectcontainer.cxx @@ -1206,6 +1206,46 @@ uno::Reference < io::XInputStream > EmbeddedObjectContainer::GetGraphicStream( c return GetGraphicStream( GetEmbeddedObjectName( xObj ), pMediaType ); } +uno::Reference < io::XInputStream > EmbeddedObjectContainer::GetObjectStream( const OUString& aName, OUString* pMediaType ) +{ + SAL_INFO( "comphelper.container", "comphelper::EmbeddedObjectContainer::GetObjectStream( Name )" ); + + uno::Reference < io::XInputStream > xInputStream; + + SAL_WARN_IF( aName.isEmpty(), "comphelper.container", "Retrieving stream for unknown object!" ); + if ( !aName.isEmpty() ) + { + try + { + uno::Reference < io::XStream > xStream = pImpl->mxStorage->cloneStreamElement( aName ); //get a readonly clone + xInputStream = xStream->getInputStream(); + if ( pMediaType ) + { + uno::Reference < beans::XPropertySet > xSet( xInputStream, uno::UNO_QUERY ); + if ( xSet.is() ) + { + uno::Any aAny = xSet->getPropertyValue("MediaType"); + aAny >>= *pMediaType; + } + } + } + catch (const uno::Exception&) + { + } + } + + return xInputStream; +} + +uno::Reference < io::XInputStream > EmbeddedObjectContainer::GetObjectStream( const uno::Reference < embed::XEmbeddedObject >& xObj, OUString* pMediaType ) +{ + + SAL_INFO( "comphelper.container", "comphelper (mv76033) comphelper::EmbeddedObjectContainer::GetGraphicStream( Object )" ); + + // try to load it from the container storage + return GetObjectStream( GetEmbeddedObjectName( xObj ), pMediaType ); +} + bool EmbeddedObjectContainer::InsertGraphicStream( const com::sun::star::uno::Reference < com::sun::star::io::XInputStream >& rStream, const OUString& rObjectName, const OUString& rMediaType ) { SAL_INFO( "comphelper.container", "comphelper (mv76033) comphelper::EmbeddedObjectContainer::InsertGraphicStream" ); |