windows-nt/Source/XPSP1/NT/enduser/netmeeting/ui/wb/ms_util.cpp
2020-09-26 16:20:57 +08:00

41 lines
561 B
C++

#include "precomp.h"
CRefCount::CRefCount(DWORD dwStampID)
:
#ifndef SHIP_BUILD
m_dwStampID(dwStampID),
#endif
m_cRefs(1)
{
}
// though it is pure virtual, we still need to have a destructor.
CRefCount::~CRefCount(void)
{
}
LONG CRefCount::AddRef(void)
{
ASSERT(0 < m_cRefs);
::InterlockedIncrement(&m_cRefs);
return m_cRefs;
}
LONG CRefCount::Release(void)
{
ASSERT(NULL != this);
ASSERT(0 < m_cRefs);
if (0 == ::InterlockedDecrement(&m_cRefs))
{
delete this;
return 0;
}
return m_cRefs;
}