DWORD CComObjectRootBase::InternalRelease() { LONG r = Interlocked::Decrement(m_dwRef); if (!r) { AFX_MANAGE_STATE(m_pClass->m_pModuleState); OnFinalRelease(); } return r; }
int CBasicRefCount::InternalRelease() { int refcount = AtomicDecrement(&m_nRefs); if (refcount == 0) { OnFinalRelease(); } return refcount; }
/*! */ virtual long Release() { long lRet = InterlockedDecrement(&m_cRef); if(lRet==0) { OnFinalRelease(); } return lRet; }
DWORD CCmdTarget::InternalRelease() { ASSERT(GetInterfaceMap() != NULL); if (m_dwRef == 0) return 0; LONG lResult = InterlockedDecrement(&m_dwRef); if (lResult == 0) { AFX_MANAGE_STATE(m_pModuleState); OnFinalRelease(); } return lResult; }