diff options
Diffstat (limited to 'filter/source/msfilter/msdffimp.cxx')
-rw-r--r-- | filter/source/msfilter/msdffimp.cxx | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/filter/source/msfilter/msdffimp.cxx b/filter/source/msfilter/msdffimp.cxx index 019d6e079501..8492c7df2cd1 100644 --- a/filter/source/msfilter/msdffimp.cxx +++ b/filter/source/msfilter/msdffimp.cxx @@ -6520,7 +6520,7 @@ SdrObject* SvxMSDffManager::ImportOLE( long nOLEId, if( GetOLEStorageName( nOLEId, sStorageName, xSrcStg, xDstStg )) pRet = CreateSdrOLEFromStorage( sStorageName, xSrcStg, xDstStg, rGrf, rBoundRect, rVisArea, pStData, nError, - nSvxMSDffOLEConvFlags, nAspect ); + nSvxMSDffOLEConvFlags, nAspect, maBaseURL); return pRet; } @@ -6834,7 +6834,7 @@ OUString GetFilterNameFromClassID_Impl( const SvGlobalName& aGlobName ) css::uno::Reference < css::embed::XEmbeddedObject > SvxMSDffManager::CheckForConvertToSOObj( sal_uInt32 nConvertFlags, SotStorage& rSrcStg, const uno::Reference < embed::XStorage >& rDestStorage, const Graphic& rGrf, - const Rectangle& rVisArea ) + const Rectangle& rVisArea, OUString const& rBaseURL) { uno::Reference < embed::XEmbeddedObject > xObj; SvGlobalName aStgNm = rSrcStg.GetClassName(); @@ -6946,17 +6946,19 @@ css::uno::Reference < css::embed::XEmbeddedObject > SvxMSDffManager::CheckForCo else aFilterName = GetFilterNameFromClassID_Impl( aStgNm ); - uno::Sequence < beans::PropertyValue > aMedium( aFilterName.isEmpty() ? 2 : 3); + uno::Sequence<beans::PropertyValue> aMedium(aFilterName.isEmpty() ? 3 : 4); aMedium[0].Name = "InputStream"; uno::Reference < io::XInputStream > xStream = new ::utl::OSeekableInputStreamWrapper( *xMemStream ); aMedium[0].Value <<= xStream; aMedium[1].Name = "URL"; aMedium[1].Value <<= OUString( "private:stream" ); + aMedium[2].Name = "DocumentBaseURL"; + aMedium[2].Value <<= OUString(rBaseURL); if ( !aFilterName.isEmpty() ) { - aMedium[2].Name = "FilterName"; - aMedium[2].Value <<= aFilterName; + aMedium[3].Name = "FilterName"; + aMedium[3].Value <<= aFilterName; } OUString aName( aDstStgName ); @@ -7031,7 +7033,8 @@ SdrOle2Obj* SvxMSDffManager::CreateSdrOLEFromStorage( SvStream* pDataStrm, ErrCode& rError, sal_uInt32 nConvertFlags, - sal_Int64 nRecommendedAspect ) + sal_Int64 nRecommendedAspect, + OUString const& rBaseURL) { sal_Int64 nAspect = nRecommendedAspect; SdrOle2Obj* pRet = nullptr; @@ -7085,7 +7088,8 @@ SdrOle2Obj* SvxMSDffManager::CreateSdrOLEFromStorage( } uno::Reference < embed::XEmbeddedObject > xObj( CheckForConvertToSOObj( - nConvertFlags, *xObjStg, xDestStorage, rGrf, rVisArea )); + nConvertFlags, *xObjStg, xDestStorage, rGrf, + rVisArea, rBaseURL)); if ( xObj.is() ) { svt::EmbeddedObjectRef aObj( xObj, nAspect ); |