// LocalLock.h: interface for the CLocalLock class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_LOCALLOCK_H__FD10F2F9_1DF2_46A6_8261_1FA9E2AB061C__INCLUDED_) #define AFX_LOCALLOCK_H__FD10F2F9_1DF2_46A6_8261_1FA9E2AB061C__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 class CLocalLock { public: CLocalLock(LPCRITICAL_SECTION lpCriticalSection) :m_lpCriticalSection(lpCriticalSection) { EnterCriticalSection(m_lpCriticalSection); } ~CLocalLock() { LeaveCriticalSection(m_lpCriticalSection); } private: LPCRITICAL_SECTION m_lpCriticalSection; }; class CLock { public: /*CLock(PCRITICAL_SECTION cs) : m_cs(cs), bNullInit(FALSE) { if (m_cs == NULL) { bNullInit = TRUE; m_cs = new CRITICAL_SECTION(); } InitializeCriticalSection(m_cs); }*/ CLock()/* : m_cs(NULL), bNullInit(FALSE)*/ { /*if (m_cs == NULL) { m_cs = new CRITICAL_SECTION(); }*/ InitializeCriticalSection(&m_cs); } ~CLock() { DeleteCriticalSection(&m_cs); /*if (bNullInit) { delete m_cs; }*/ } void Lock() { EnterCriticalSection(&m_cs); } void UnLock() { LeaveCriticalSection(&m_cs); } const LPCRITICAL_SECTION GetObject() { return &m_cs; } private: CRITICAL_SECTION m_cs; //BOOL bNullInit; }; #endif // !defined(AFX_LOCALLOCK_H__FD10F2F9_1DF2_46A6_8261_1FA9E2AB061C__INCLUDED_)