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:
@@ -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: */
|
||||||
|
@@ -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;
|
||||||
|
Reference in New Issue
Block a user