diff options
-rw-r--r-- | extensions/source/ole/servprov.cxx | 25 | ||||
-rw-r--r-- | extensions/source/ole/servprov.hxx | 13 |
2 files changed, 16 insertions, 22 deletions
diff --git a/extensions/source/ole/servprov.cxx b/extensions/source/ole/servprov.cxx index 0d1e98cd34c5..a6bb4ef58d80 100644 --- a/extensions/source/ole/servprov.cxx +++ b/extensions/source/ole/servprov.cxx @@ -44,9 +44,8 @@ using namespace com::sun::star::bridge::ModelDependent; DEFINE_GUID(OID_ServiceManager, 0x82154420, 0xfbf, 0x11d4, 0x83, 0x13, 0x0, 0x50, 0x4, 0x52, 0x6a, 0xb4); ProviderOleWrapper::ProviderOleWrapper(const Reference<XMultiServiceFactory>& smgr, - const Reference<XSingleServiceFactory>& xSFact, GUID const * pGuid) + const Reference<XSingleServiceFactory>& xSFact) : m_xSingleServiceFactory(xSFact), - m_guid(*pGuid), m_smgr( smgr) { Reference<XInterface> xInt = smgr->createInstance("com.sun.star.bridge.oleautomation.BridgeSupplier"); @@ -63,14 +62,14 @@ ProviderOleWrapper::~ProviderOleWrapper() { } -bool ProviderOleWrapper::registerClass() +bool ProviderOleWrapper::registerClass(GUID const * pGuid) { HRESULT hresult; o2u_attachCurrentThread(); hresult = CoRegisterClassObject( - m_guid, + *pGuid, this, CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE, @@ -171,11 +170,9 @@ STDMETHODIMP ProviderOleWrapper::LockServer(int /*fLock*/) } OneInstanceOleWrapper::OneInstanceOleWrapper( const Reference<XMultiServiceFactory>& smgr, - const Reference<XInterface>& xInst, - GUID const * pGuid ) + const Reference<XInterface>& xInst ) : m_refCount(0) , m_xInst(xInst) - , m_guid(*pGuid) , m_factoryHandle(0) , m_smgr(smgr) { @@ -192,14 +189,14 @@ OneInstanceOleWrapper::~OneInstanceOleWrapper() { } -bool OneInstanceOleWrapper::registerClass() +bool OneInstanceOleWrapper::registerClass(GUID const * pGuid) { HRESULT hresult; o2u_attachCurrentThread(); hresult = CoRegisterClassObject( - m_guid, + *pGuid, this, CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE, @@ -617,24 +614,22 @@ css::uno::Sequence<OUString> OleServer::getSupportedServiceNames() bool OleServer::provideService(const Reference<XSingleServiceFactory>& xSFact, GUID const * guid) { - IClassFactoryWrapper* pFac = new ProviderOleWrapper( m_smgr, xSFact, guid); + IClassFactoryWrapper* pFac = new ProviderOleWrapper( m_smgr, xSFact ); pFac->AddRef(); - m_wrapperList.push_back(pFac); - return pFac->registerClass(); + return pFac->registerClass(guid); } bool OleServer::provideInstance(const Reference<XInterface>& xInst, GUID const * guid) { - IClassFactoryWrapper* pFac = - new OneInstanceOleWrapper( m_smgr, xInst, guid ); + IClassFactoryWrapper* pFac = new OneInstanceOleWrapper( m_smgr, xInst ); pFac->AddRef(); m_wrapperList.push_back(pFac); - return pFac->registerClass(); + return pFac->registerClass(guid); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/extensions/source/ole/servprov.hxx b/extensions/source/ole/servprov.hxx index 12360ba9dbae..b870228e542f 100644 --- a/extensions/source/ole/servprov.hxx +++ b/extensions/source/ole/servprov.hxx @@ -53,7 +53,7 @@ class IClassFactoryWrapper : public IClassFactory { public: - virtual bool registerClass() = 0; + virtual bool registerClass(GUID const * pGuid) = 0; virtual bool deregisterClass() = 0; protected: @@ -79,10 +79,10 @@ class ProviderOleWrapper : public IClassFactoryWrapper public: ProviderOleWrapper( const Reference<XMultiServiceFactory>& smgr, - const Reference<XSingleServiceFactory>& xSFactory, GUID const * pGuid); + const Reference<XSingleServiceFactory>& xSFactory); virtual ~ProviderOleWrapper(); - bool registerClass() override; + bool registerClass(GUID const * pGuid) override; bool deregisterClass() override; /* IUnknown methods */ @@ -98,7 +98,6 @@ protected: oslInterlockedCount m_refCount; Reference<XSingleServiceFactory> m_xSingleServiceFactory; - const GUID m_guid; DWORD m_factoryHandle; Reference<XBridgeSupplier2> m_bridgeSupplier; Reference<XMultiServiceFactory> m_smgr; @@ -121,10 +120,11 @@ class OneInstanceOleWrapper : public IClassFactoryWrapper { public: - OneInstanceOleWrapper( const Reference<XMultiServiceFactory>& smgr, const Reference<XInterface>& xInst, GUID const * pGuid ); + OneInstanceOleWrapper( const Reference<XMultiServiceFactory>& smgr, + const Reference<XInterface>& xInst ); virtual ~OneInstanceOleWrapper(); - bool registerClass() override; + bool registerClass(GUID const * pGuid) override; bool deregisterClass() override; /* IUnknown methods */ @@ -140,7 +140,6 @@ protected: oslInterlockedCount m_refCount; Reference<XInterface> m_xInst; - const GUID m_guid; DWORD m_factoryHandle; Reference<XBridgeSupplier2> m_bridgeSupplier; Reference<XMultiServiceFactory> m_smgr; |