summaryrefslogtreecommitdiff
path: root/comphelper
diff options
context:
space:
mode:
authorJacobo Aragunde Pérez <jaragunde@igalia.com>2014-02-14 18:14:50 +0100
committerJacobo Aragunde Pérez <jaragunde@igalia.com>2014-02-24 13:24:52 +0100
commitc69ae9f8f80988afd31ec5a936984e131e18db7f (patch)
tree24cc2a301c3c4e9a217ad35a6184a1c079424a03 /comphelper
parent20a174ac1243fb6ad322347eb99c2d014bd4ca95 (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.cxx40
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" );