Example #1
0
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;
}
Example #3
0
	/*!
	*/
	virtual long Release()
	{
		long lRet = InterlockedDecrement(&m_cRef);
		if(lRet==0)
		{
			OnFinalRelease();
		}
		return lRet;
	}
Example #4
0
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;
}