Kaydet (Commit) 0f2157cb authored tarafından Tor Lillqvist's avatar Tor Lillqvist

Bin dead code

OleServer::provideService() was not called anywhere. That means the
ProviderOleWrapper class is unused, too. Which is good, as it seemed
to largely be identical to OneInstanceOleWrapper anyway.

Change-Id: If8782d56ed1ec1bb173cfc18be585be4c331f335
Reviewed-on: https://gerrit.libreoffice.org/54647Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarTor Lillqvist <tml@collabora.com>
üst 1091e786
......@@ -43,132 +43,6 @@ using namespace com::sun::star::bridge::ModelDependent;
// {82154420-0FBF-11d4-8313-005004526AB4}
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)
: m_xSingleServiceFactory(xSFact),
m_smgr( smgr)
{
Reference<XInterface> xInt = smgr->createInstance("com.sun.star.bridge.oleautomation.BridgeSupplier");
if (xInt.is())
{
Any a= xInt->queryInterface( cppu::UnoType<XBridgeSupplier2>::get() );
a >>= m_bridgeSupplier;
}
}
ProviderOleWrapper::~ProviderOleWrapper()
{
}
bool ProviderOleWrapper::registerClass(GUID const * pGuid)
{
HRESULT hresult;
o2u_attachCurrentThread();
hresult = CoRegisterClassObject(
*pGuid,
this,
CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER,
REGCLS_MULTIPLEUSE,
&m_factoryHandle);
return (hresult == NOERROR);
}
bool ProviderOleWrapper::deregisterClass()
{
HRESULT hresult = CoRevokeClassObject(m_factoryHandle);
return (hresult == NOERROR);
}
STDMETHODIMP ProviderOleWrapper::QueryInterface(REFIID riid, void FAR* FAR* ppv)
{
if(IsEqualIID(riid, IID_IUnknown))
{
AddRef();
*ppv = static_cast<IUnknown*>(static_cast<IClassFactory*>(this));
return NOERROR;
}
else if (IsEqualIID(riid, IID_IClassFactory))
{
AddRef();
*ppv = static_cast<IClassFactory*>(this);
return NOERROR;
}
*ppv = nullptr;
return ResultFromScode(E_NOINTERFACE);
}
STDMETHODIMP_(ULONG) ProviderOleWrapper::AddRef()
{
return osl_atomic_increment( &m_refCount);
}
STDMETHODIMP_(ULONG) ProviderOleWrapper::Release()
{
MutexGuard aGuard( Mutex::getGlobalMutex());
ULONG refCount = --m_refCount;
if (m_refCount == 0)
{
delete this;
}
return refCount;
}
STDMETHODIMP ProviderOleWrapper::CreateInstance(IUnknown FAR* punkOuter,
REFIID riid,
void FAR* FAR* ppv)
{
HRESULT ret = ResultFromScode(E_UNEXPECTED);
punkOuter = nullptr;
Reference<XInterface> xInstance;
if (m_xSingleServiceFactory.is())
{
xInstance = m_xSingleServiceFactory->createInstance();
if (xInstance.is())
{
Any usrAny(&xInstance, cppu::UnoType<decltype(xInstance)>::get());
sal_uInt8 arId[16];
rtl_getGlobalProcessId( arId );
Any oleAny = m_bridgeSupplier->createBridge(usrAny,
Sequence<sal_Int8>(reinterpret_cast<sal_Int8*>(arId), 16),
UNO,
OLE);
if (auto v = o3tl::tryAccess<sal_uIntPtr>(oleAny))
{
VARIANT* pVariant = reinterpret_cast<VARIANT*>(*v);
if (pVariant->vt == VT_DISPATCH)
{
ret = pVariant->pdispVal->QueryInterface(riid, ppv);
}
VariantClear(pVariant);
CoTaskMemFree(pVariant);
}
}
}
return ret;
}
STDMETHODIMP ProviderOleWrapper::LockServer(int /*fLock*/)
{
return NOERROR;
}
OneInstanceOleWrapper::OneInstanceOleWrapper( const Reference<XMultiServiceFactory>& smgr,
const Reference<XInterface>& xInst )
: m_refCount(0)
......@@ -612,16 +486,6 @@ css::uno::Sequence<OUString> OleServer::getSupportedServiceNames()
"com.sun.star.bridge.oleautomation.ApplicationRegistration"};
}
bool OleServer::provideService(const Reference<XSingleServiceFactory>& xSFact, GUID const * guid)
{
IClassFactoryWrapper* pFac = new ProviderOleWrapper( m_smgr, xSFact );
pFac->AddRef();
m_wrapperList.push_back(pFac);
return pFac->registerClass(guid);
}
bool OleServer::provideInstance(const Reference<XInterface>& xInst, GUID const * guid)
{
IClassFactoryWrapper* pFac = new OneInstanceOleWrapper( m_smgr, xInst );
......
......@@ -60,49 +60,6 @@ protected:
~IClassFactoryWrapper() {}
};
/*****************************************************************************
ProviderOleWrapper
Provides an UNO service provider as OLE class factory. Handle the
OLE registration by overriding the abstract methods from
IClassFactoryWrapper.
Acts as a COM class factory. When IClassFactory::CreateInstance is being called
then it creates an service by help of the XSingleServiceFactory member and maps
maps it to a COM object.
*****************************************************************************/
class ProviderOleWrapper : public IClassFactoryWrapper
{
public:
ProviderOleWrapper( const Reference<XMultiServiceFactory>& smgr,
const Reference<XSingleServiceFactory>& xSFactory);
virtual ~ProviderOleWrapper();
bool registerClass(GUID const * pGuid) override;
bool deregisterClass() override;
/* IUnknown methods */
STDMETHOD(QueryInterface)(REFIID riid, LPVOID FAR * ppvObj) override;
STDMETHOD_(ULONG, AddRef)() override;
STDMETHOD_(ULONG, Release)() override;
/* IClassFactory methods */
STDMETHOD(CreateInstance)(IUnknown FAR* punkOuter, REFIID riid, void FAR* FAR* ppv) override;
STDMETHOD(LockServer)(int fLock) override;
protected:
oslInterlockedCount m_refCount;
Reference<XSingleServiceFactory> m_xSingleServiceFactory;
DWORD m_factoryHandle;
Reference<XBridgeSupplier2> m_bridgeSupplier;
Reference<XMultiServiceFactory> m_smgr;
};
/*****************************************************************************
OneInstanceOleWrapper
......@@ -239,8 +196,6 @@ public:
css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames() override;
protected:
bool provideService(const Reference<XSingleServiceFactory>& xMulFact, GUID const * guid);
bool provideInstance(const Reference<XInterface>& xInst, GUID const * guid);
list< IClassFactoryWrapper* > m_wrapperList;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment