IClassFactoryWrapper can go away now

Change-Id: I7633648dc0398d2c1b6f04e6db9b18638a7451f5
Reviewed-on: https://gerrit.libreoffice.org/54781
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Tested-by: Tor Lillqvist <tml@collabora.com>
This commit is contained in:
Tor Lillqvist
2018-02-13 00:34:30 +02:00
parent b32fee8314
commit e7cefdfc83
2 changed files with 10 additions and 33 deletions

View File

@@ -488,12 +488,12 @@ css::uno::Sequence<OUString> OleServer::getSupportedServiceNames()
bool OleServer::provideInstance(const Reference<XInterface>& xInst, GUID const * guid) bool OleServer::provideInstance(const Reference<XInterface>& xInst, GUID const * guid)
{ {
IClassFactoryWrapper* pFac = new OneInstanceOleWrapper( m_smgr, xInst ); OneInstanceOleWrapper* pWrapper = new OneInstanceOleWrapper( m_smgr, xInst );
pFac->AddRef(); pWrapper->AddRef();
m_wrapperList.push_back(pFac); m_wrapperList.push_back(pWrapper);
return pFac->registerClass(guid); return pWrapper->registerClass(guid);
} }
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

View File

@@ -39,41 +39,19 @@ Reference< XInterface> ConverterProvider_CreateInstanceVar1( const Reference<X
Reference<XInterface> OleClient_CreateInstance( const Reference<XMultiServiceFactory> & xSMgr); Reference<XInterface> OleClient_CreateInstance( const Reference<XMultiServiceFactory> & xSMgr);
/// @throws Exception /// @throws Exception
Reference<XInterface> OleServer_CreateInstance( const Reference<XMultiServiceFactory> & xSMgr); Reference<XInterface> OleServer_CreateInstance( const Reference<XMultiServiceFactory> & xSMgr);
/*****************************************************************************
IClassFactoryWrapper
Specify abstract helper methods on class factories, which provide
UNO objects. These methods are used by objects of class OleServer,
to handle the OLE registration of different class factories.
*****************************************************************************/
class IClassFactoryWrapper : public IClassFactory
{
public:
virtual bool registerClass(GUID const * pGuid) = 0;
virtual bool deregisterClass() = 0;
protected:
~IClassFactoryWrapper() {}
};
/***************************************************************************** /*****************************************************************************
OneInstanceOleWrapper OneInstanceOleWrapper
Provides an single UNO object as OLE object. Handle the Provides an single UNO object as OLE object.
OLE registration by overriding the abstract methods from
IClassFactoryWrapper.
Acts as a COM class factory. When IClassFactory::CreateInstance is being called Acts as a COM class factory. When IClassFactory::CreateInstance is being called
then it maps the XInstance member it to a COM object. then it maps the XInstance member it to a COM object.
*****************************************************************************/ *****************************************************************************/
class OneInstanceOleWrapper : public IClassFactoryWrapper class OneInstanceOleWrapper : public IClassFactory
{ {
public: public:
@@ -81,8 +59,8 @@ public:
const Reference<XInterface>& xInst ); const Reference<XInterface>& xInst );
virtual ~OneInstanceOleWrapper(); virtual ~OneInstanceOleWrapper();
bool registerClass(GUID const * pGuid) override; bool registerClass(GUID const * pGuid);
bool deregisterClass() override; bool deregisterClass();
/* IUnknown methods */ /* IUnknown methods */
STDMETHOD(QueryInterface)(REFIID riid, LPVOID FAR * ppvObj) override; STDMETHOD(QueryInterface)(REFIID riid, LPVOID FAR * ppvObj) override;
@@ -94,7 +72,6 @@ public:
STDMETHOD(LockServer)(int fLock) override; STDMETHOD(LockServer)(int fLock) override;
protected: protected:
oslInterlockedCount m_refCount; oslInterlockedCount m_refCount;
Reference<XInterface> m_xInst; Reference<XInterface> m_xInst;
DWORD m_factoryHandle; DWORD m_factoryHandle;
@@ -198,7 +175,7 @@ public:
protected: protected:
bool provideInstance(const Reference<XInterface>& xInst, GUID const * guid); bool provideInstance(const Reference<XInterface>& xInst, GUID const * guid);
list< IClassFactoryWrapper* > m_wrapperList; list< OneInstanceOleWrapper* > m_wrapperList;
Reference< XBridgeSupplier2 > m_bridgeSupplier; Reference< XBridgeSupplier2 > m_bridgeSupplier;
Reference<XMultiServiceFactory> m_smgr; Reference<XMultiServiceFactory> m_smgr;