diff options
author | Noel Grandin <noel@peralex.com> | 2020-07-21 17:02:32 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2020-07-22 17:48:12 +0200 |
commit | 7405145605923123a09738829ead507fe6078e0c (patch) | |
tree | b85add1a367166cb53bcb90d08e7d0327e9e6f2f /embeddedobj/source/msole/xolefactory.cxx | |
parent | 950d7d4d51e68cfae3a5d0d23a3d39e84e548357 (diff) |
embeddedobj/msole: create instances with uno constructors
See tdf#74608 for motivation.
Change-Id: I11ad7cf96d65332e418f1854803d62a30bacc7e4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99163
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'embeddedobj/source/msole/xolefactory.cxx')
-rw-r--r-- | embeddedobj/source/msole/xolefactory.cxx | 46 |
1 files changed, 17 insertions, 29 deletions
diff --git a/embeddedobj/source/msole/xolefactory.cxx b/embeddedobj/source/msole/xolefactory.cxx index f162af865c05..9ecd2c690bf5 100644 --- a/embeddedobj/source/msole/xolefactory.cxx +++ b/embeddedobj/source/msole/xolefactory.cxx @@ -34,28 +34,6 @@ using namespace ::com::sun::star; // TODO: do not create OLE objects that represent OOo documents -uno::Sequence< OUString > OleEmbeddedObjectFactory::impl_staticGetSupportedServiceNames() -{ - uno::Sequence< OUString > aRet(2); - aRet[0] = "com.sun.star.embed.OLEEmbeddedObjectFactory"; - aRet[1] = "com.sun.star.comp.embed.OLEEmbeddedObjectFactory"; - return aRet; -} - - -OUString OleEmbeddedObjectFactory::impl_staticGetImplementationName() -{ - return "com.sun.star.comp.embed.OLEEmbeddedObjectFactory"; -} - - -uno::Reference< uno::XInterface > OleEmbeddedObjectFactory::impl_staticCreateSelfInstance( - const uno::Reference< lang::XMultiServiceFactory >& xServiceManager ) -{ - return uno::Reference< uno::XInterface >( *new OleEmbeddedObjectFactory( xServiceManager ) ); -} - - uno::Reference< uno::XInterface > SAL_CALL OleEmbeddedObjectFactory::createInstanceInitFromEntry( const uno::Reference< embed::XStorage >& xStorage, const OUString& sEntName, @@ -85,7 +63,7 @@ uno::Reference< uno::XInterface > SAL_CALL OleEmbeddedObjectFactory::createInsta } uno::Reference< uno::XInterface > xResult( - static_cast< ::cppu::OWeakObject* > ( new OleEmbeddedObject( m_xFactory, false ) ), + static_cast< ::cppu::OWeakObject* > ( new OleEmbeddedObject( m_xContext, false ) ), uno::UNO_QUERY ); uno::Reference< embed::XEmbedPersist > xPersist( xResult, uno::UNO_QUERY_THROW ); @@ -133,7 +111,7 @@ uno::Reference< uno::XInterface > SAL_CALL OleEmbeddedObjectFactory::createInsta 2 ); uno::Reference< uno::XInterface > xResult( - static_cast< ::cppu::OWeakObject* > ( new OleEmbeddedObject( m_xFactory, false ) ), + static_cast< ::cppu::OWeakObject* > ( new OleEmbeddedObject( m_xContext, false ) ), uno::UNO_QUERY ); uno::Reference< embed::XEmbedPersist > xPersist( xResult, uno::UNO_QUERY_THROW ); @@ -165,7 +143,7 @@ uno::Reference< uno::XInterface > SAL_CALL OleEmbeddedObjectFactory::createInsta 4 ); uno::Reference< uno::XInterface > xResult( - static_cast< ::cppu::OWeakObject* > ( new OleEmbeddedObject( m_xFactory, aClassID, aClassName ) ), + static_cast< ::cppu::OWeakObject* > ( new OleEmbeddedObject( m_xContext, aClassID, aClassName ) ), uno::UNO_QUERY ); uno::Reference< embed::XEmbedPersist > xPersist( xResult, uno::UNO_QUERY_THROW ); @@ -196,7 +174,7 @@ uno::Reference< uno::XInterface > SAL_CALL OleEmbeddedObjectFactory::createInsta 2 ); uno::Reference< uno::XInterface > xResult( - static_cast< ::cppu::OWeakObject* > ( new OleEmbeddedObject( m_xFactory, true ) ), + static_cast< ::cppu::OWeakObject* > ( new OleEmbeddedObject( m_xContext, true ) ), uno::UNO_QUERY ); uno::Reference< embed::XEmbedPersist > xPersist( xResult, uno::UNO_QUERY_THROW ); @@ -231,7 +209,7 @@ uno::Reference< uno::XInterface > SAL_CALL OleEmbeddedObjectFactory::createInsta 2 ); uno::Reference< uno::XInterface > xResult( - static_cast< ::cppu::OWeakObject* > ( new OleEmbeddedObject( m_xFactory, aClassID, aClassName ) ), + static_cast< ::cppu::OWeakObject* > ( new OleEmbeddedObject( m_xContext, aClassID, aClassName ) ), uno::UNO_QUERY ); uno::Reference< embed::XEmbedPersist > xPersist( xResult, uno::UNO_QUERY_THROW ); @@ -247,7 +225,7 @@ uno::Reference< uno::XInterface > SAL_CALL OleEmbeddedObjectFactory::createInsta OUString SAL_CALL OleEmbeddedObjectFactory::getImplementationName() { - return impl_staticGetImplementationName(); + return "com.sun.star.comp.embed.OLEEmbeddedObjectFactory"; } sal_Bool SAL_CALL OleEmbeddedObjectFactory::supportsService( const OUString& ServiceName ) @@ -258,7 +236,17 @@ sal_Bool SAL_CALL OleEmbeddedObjectFactory::supportsService( const OUString& Ser uno::Sequence< OUString > SAL_CALL OleEmbeddedObjectFactory::getSupportedServiceNames() { - return impl_staticGetSupportedServiceNames(); + return { "com.sun.star.embed.OLEEmbeddedObjectFactory", + "com.sun.star.comp.embed.OLEEmbeddedObjectFactory" }; +} + +extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface* +embeddedobj_OleEmbeddedObjectFactory_get_implementation( + css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any> const&) +{ + static rtl::Reference<OleEmbeddedObjectFactory> g_Instance(new OleEmbeddedObjectFactory(context)); + g_Instance->acquire(); + return static_cast<cppu::OWeakObject*>(g_Instance.get()); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |