- Simplify CComObject code. Fix warnings. Patch by Katayama Hirofumi MZ.
CORE-7105 #resolve

svn path=/trunk/; revision=58918
This commit is contained in:
Thomas Faber
2013-05-04 08:39:05 +00:00
parent 66675db02b
commit c15b763fbc
2 changed files with 17 additions and 28 deletions
+16 -28
View File
@@ -2,6 +2,7 @@
* ReactOS ATL
*
* Copyright 2009 Andrew Hill <[email protected]>
* Copyright 2013 Katayama Hirofumi MZ <[email protected]>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -134,39 +135,28 @@ public:
virtual ~CComObject()
{
CComObject<Base> *pThis;
pThis = reinterpret_cast<CComObject<Base> *>(this);
pThis->FinalRelease();
this->FinalRelease();
_pAtlModule->Unlock();
}
STDMETHOD_(ULONG, AddRef)()
{
CComObject<Base> *pThis;
pThis = reinterpret_cast<CComObject<Base> *>(this);
return pThis->InternalAddRef();
return this->InternalAddRef();
}
STDMETHOD_(ULONG, Release)()
{
CComObject<Base> *pThis;
ULONG l;
ULONG newRefCount;
pThis = reinterpret_cast<CComObject<Base> *>(this);
l = pThis->InternalRelease();
if (l == 0)
newRefCount = this->InternalRelease();
if (newRefCount == 0)
delete this;
return l;
return newRefCount;
}
STDMETHOD(QueryInterface)(REFIID iid, void **ppvObject)
{
CComObject<Base> *pThis;
pThis = reinterpret_cast<CComObject<Base> *>(this);
return pThis->_InternalQueryInterface(iid, ppvObject);
return this->_InternalQueryInterface(iid, ppvObject);
}
static HRESULT WINAPI CreateInstance(CComObject<Base> **pp)
@@ -283,11 +273,9 @@ public:
STDMETHOD_(ULONG, AddRef)()
{
CComObjectCached<Base> *pThis;
ULONG newRefCount;
pThis = reinterpret_cast<CComObjectCached<Base>*>(this);
newRefCount = pThis->InternalAddRef();
newRefCount = this->InternalAddRef();
if (newRefCount == 2)
_pAtlModule->Lock();
return newRefCount;
@@ -295,11 +283,9 @@ public:
STDMETHOD_(ULONG, Release)()
{
CComObjectCached<Base> *pThis;
ULONG newRefCount;
pThis = reinterpret_cast<CComObjectCached<Base>*>(this);
newRefCount = pThis->InternalRelease();
newRefCount = this->InternalRelease();
if (newRefCount == 0)
delete this;
else if (newRefCount == 1)
@@ -309,10 +295,7 @@ public:
STDMETHOD(QueryInterface)(REFIID iid, void **ppvObject)
{
CComObjectCached<Base> *pThis;
pThis = reinterpret_cast<CComObjectCached<Base>*>(this);
return pThis->_InternalQueryInterface(iid, ppvObject);
return this->_InternalQueryInterface(iid, ppvObject);
}
};
@@ -436,6 +419,11 @@ class CComClassFactory :
{
public:
_ATL_CREATORFUNC *m_pfnCreateInstance;
virtual ~CComClassFactory()
{
}
public:
STDMETHOD(CreateInstance)(LPUNKNOWN pUnkOuter, REFIID riid, void **ppvObj)
{
+1
View File
@@ -63,6 +63,7 @@ public:
hResult = ClearReplacements();
ATLASSERT(SUCCEEDED(hResult));
(void)hResult;
}
HRESULT STDMETHODCALLTYPE QueryInterface(const IID & /* riid */, void ** /* ppvObject */ )