mirror of
https://github.com/reactos/reactos.git
synced 2025-05-13 14:20:31 +00:00
[ATL]
- Simplify CComObject code. Fix warnings. Patch by Katayama Hirofumi MZ. CORE-7105 #resolve svn path=/trunk/; revision=58918
This commit is contained in:
parent
66675db02b
commit
c15b763fbc
2 changed files with 17 additions and 28 deletions
|
@ -2,6 +2,7 @@
|
|||
* ReactOS ATL
|
||||
*
|
||||
* Copyright 2009 Andrew Hill <ash77@reactos.org>
|
||||
* Copyright 2013 Katayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com>
|
||||
*
|
||||
* 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)
|
||||
{
|
||||
|
|
|
@ -63,6 +63,7 @@ public:
|
|||
|
||||
hResult = ClearReplacements();
|
||||
ATLASSERT(SUCCEEDED(hResult));
|
||||
(void)hResult;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE QueryInterface(const IID & /* riid */, void ** /* ppvObject */ )
|
||||
|
|
Loading…
Reference in a new issue