#ifndef _INCLUDE_INSTALLER_CRIT_SECT_H_ #define _INCLUDE_INSTALLER_CRIT_SECT_H_ #include "platform_headers.h" class CCriticalSection { public: CCriticalSection() { InitializeCriticalSection(&m_crit); } ~CCriticalSection() { DeleteCriticalSection(&m_crit); } void Enter() { EnterCriticalSection(&m_crit); } bool TryEnter() { if (TryEnterCriticalSection(&m_crit)) { return true; } return false; } void Leave() { LeaveCriticalSection(&m_crit); } private: CRITICAL_SECTION m_crit; }; #endif //_INCLUDE_INSTALLER_CRIT_SECT_H_