windows-nt/Source/XPSP1/NT/enduser/netmeeting/ui/nmctl1/ms_util.cpp

41 lines
561 B
C++
Raw Normal View History

2020-09-26 03:20:57 -05:00
#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;
}