From c6dcd7b7f392ef47b2e66445239ce867e51d5adb Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Tue, 24 Mar 2015 15:22:35 +0100 Subject: Fix various Windows-only XServiceInfo implementations ...to match what is recorded in the .component files Change-Id: Ibc5bb0575f3869317e4d14614cf1dad0af728ddc --- extensions/source/ole/servprov.cxx | 90 +++++++++++++++++++++++--------------- 1 file changed, 54 insertions(+), 36 deletions(-) (limited to 'extensions/source/ole/servprov.cxx') diff --git a/extensions/source/ole/servprov.cxx b/extensions/source/ole/servprov.cxx index 39f4c647326a..d49414d0bc9a 100644 --- a/extensions/source/ole/servprov.cxx +++ b/extensions/source/ole/servprov.cxx @@ -30,6 +30,7 @@ #include "unoobjw.hxx" #include "oleobjw.hxx" #include +#include using namespace cppu; using namespace osl; @@ -424,6 +425,30 @@ Any SAL_CALL OleConverter_Impl2::createBridge(const Any& modelDepObject, return ret; } +OUString OleConverter_Impl2::getImplementationName() + throw (css::uno::RuntimeException, std::exception) +{ + return m_nUnoWrapperClass == INTERFACE_OLE_WRAPPER_IMPL + ? OUString("com.sun.star.comp.ole.OleConverter2") + : OUString("com.sun.star.comp.ole.OleConverterVar1"); +} + +sal_Bool OleConverter_Impl2::supportsService(OUString const & ServiceName) + throw (css::uno::RuntimeException, std::exception) +{ + return cppu::supportsService(this, ServiceName); +} + +css::uno::Sequence OleConverter_Impl2::getSupportedServiceNames() + throw (css::uno::RuntimeException, std::exception) +{ + return m_nUnoWrapperClass == INTERFACE_OLE_WRAPPER_IMPL + ? css::uno::Sequence{ + "com.sun.star.bridge.OleBridgeSupplier2", + "com.sun.star.bridge.oleautomation.BridgeSupplier"} + : css::uno::Sequence{ + "com.sun.star.bridge.OleBridgeSupplierVar1"}; +} // XInitialize ------------------------------------------------------------------------------ // the first argument is an XMultiServiceFactory if at all @@ -496,10 +521,24 @@ Sequence< OUString > SAL_CALL OleClient_Impl::getAvailableServiceNames() thro return ret; } - OUString OleClient_Impl::getImplementationName() + throw (css::uno::RuntimeException, std::exception) +{ + return OUString("com.sun.star.comp.ole.OleClient"); +} + +sal_Bool OleClient_Impl::supportsService(OUString const & ServiceName) + throw (css::uno::RuntimeException, std::exception) +{ + return cppu::supportsService(this, ServiceName); +} + +css::uno::Sequence OleClient_Impl::getSupportedServiceNames() + throw (css::uno::RuntimeException, std::exception) { - return OUString(reinterpret_cast(L"com.sun.star.comp.ole.OleClient")); + return css::uno::Sequence{ + "com.sun.star.bridge.OleObjectFactory", + "com.sun.star.bridge.oleautomation.Factory"}; } Reference SAL_CALL OleClient_Impl::createInstance(const OUString& ServiceSpecifier) throw (Exception, RuntimeException ) @@ -612,48 +651,27 @@ OleServer_Impl::~OleServer_Impl() m_wrapperList.pop_front(); } } -// XInterface -------------------------------------------------- -Any SAL_CALL OleServer_Impl::queryInterface( const Type& aType ) throw(RuntimeException) -{ - Any a= ::cppu::queryInterface( aType, static_cast(this)); - if( a == Any()) - return OWeakObject::queryInterface( aType); - else - return a; -} -void SAL_CALL OleServer_Impl::acquire( ) throw() -{ - OWeakObject::acquire(); -} -void SAL_CALL OleServer_Impl::release( ) throw () + +OUString OleServer_Impl::getImplementationName() + throw (css::uno::RuntimeException, std::exception) { - OWeakObject::release(); + return OUString("com.sun.star.comp.ole.OleServer"); } - -// XTypeProvider -------------------------------------------------- -Sequence< Type > SAL_CALL OleServer_Impl::getTypes( ) throw(RuntimeException) +sal_Bool OleServer_Impl::supportsService(OUString const & ServiceName) + throw (css::uno::RuntimeException, std::exception) { - static OTypeCollection *pCollection = 0; - if( ! pCollection ) - { - MutexGuard guard( Mutex::getGlobalMutex() ); - if( ! pCollection ) - { - static OTypeCollection collection( - cppu::UnoType::get(), - cppu::UnoType::get() ); - pCollection = &collection; - } - } - return (*pCollection).getTypes(); + return cppu::supportsService(this, ServiceName); } -Sequence< sal_Int8 > SAL_CALL OleServer_Impl::getImplementationId() throw(RuntimeException) + +css::uno::Sequence OleServer_Impl::getSupportedServiceNames() + throw (css::uno::RuntimeException, std::exception) { - return css::uno::Sequence(); + return css::uno::Sequence{ + "com.sun.star.bridge.OleApplicationRegistration", + "com.sun.star.bridge.oleautomation.ApplicationRegistration"}; } - sal_Bool OleServer_Impl::provideService(const Reference& xSFact, GUID* guid) { IClassFactoryWrapper* pFac = new ProviderOleWrapper_Impl( m_smgr, xSFact, guid); -- cgit v1.2.3