2025-04-27 07:49:33 -04:00

38 lines
632 B
C++

// Copyright (c) 2000-2001 Microsoft Corporation, All Rights Reserved
// SmartHandle.h
class SmartHandle
{
public:
SmartHandle() : m_h(NULL) {}
~SmartHandle()
{
if(m_h)
{
::CloseHandle(m_h);
}
}
SmartHandle& operator=(const HANDLE h)
{
if(m_h)
{
::CloseHandle(m_h); m_h = NULL;
}
m_h = h;
return *this;
}
operator bool() const
{
if(m_h) return true;
else return false;
}
operator HANDLE() const { return m_h; }
private:
HANDLE m_h;
};