//--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1992 - 1997 // // File: critsec.hxx // // Contents: Critical section Object // // History: 04-30-97 Sophiac Created. // //---------------------------------------------------------------------------- #ifndef __WIN32_CRITSEC_HXX__ #define __WIN32_CRITSEC_HXX__ class WIN32_CRITSEC { CRITICAL_SECTION CriticalSection; public: inline WIN32_CRITSEC( ); inline ~WIN32_CRITSEC( ); void inline Enter( ); void inline Leave( ); }; WIN32_CRITSEC::WIN32_CRITSEC( ) { INITIALIZE_CRITICAL_SECTION(&CriticalSection); } WIN32_CRITSEC::~WIN32_CRITSEC( ) { DeleteCriticalSection(&CriticalSection); } void WIN32_CRITSEC::Enter( ) { EnterCriticalSection(&CriticalSection); } void WIN32_CRITSEC::Leave( ) { LeaveCriticalSection(&CriticalSection); } extern WIN32_CRITSEC * g_pGlobalLock; class CLock { WIN32_CRITSEC * Critsec; public: CLock(WIN32_CRITSEC *pCritsec = g_pGlobalLock) : Critsec(pCritsec) { Critsec->Enter(); } ~CLock() { Critsec->Leave(); } }; #endif