class CS_Guard
{
public:
CS_Guard()
{
InitializeCriticalSection(&m_cs);
::EnterCriticalSection(&m_cs);
}
~CS_Guard()
{
::LeaveCriticalSection(&m_cs);
DeleteCriticalSection(&m_cs);
}
private:
CRITICAL_SECTION m_cs;
};