// Creates or opens a named or unnamed event object.
// CuEventObject.h
class CuEventObject
{
HANDLE m_hHandle;
public:
DWORD WaitForSingleObject(DWORD dwMilliseconds = INFINITE);
BOOL SetEvent();
BOOL ResetEvent();
BOOL CreateEvent(TCHAR *szName, BOOL bManualReset = FALSE, BOOL bInitialState = FALSE);
BOOL CloseHandle();
operator HANDLE() const;
CuEventObject();
CuEventObject(TCHAR *szName);
// 自動呼叫 CloseHandle();
virtual ~CuEventObject();
};
// CuEventObject.cpp
CuEventObject::CuEventObject(TCHAR *szName)
:m_hHandle(NULL)
{
CreateEvent(szName);
}
CuEventObject::CuEventObject()
:m_hHandle(NULL)
{
}
CuEventObject::~CuEventObject()
{
CloseHandle();
}
CuEventObject::operator HANDLE() const
{
return m_hHandle;
}
BOOL CuEventObject::CloseHandle()
{
BOOL bResult = TRUE;
if(m_hHandle)
bResult = ::CloseHandle(m_hHandle);
m_hHandle = NULL;
return bResult;
}
BOOL CuEventObject::CreateEvent(TCHAR *szName, BOOL bManualReset /*= FALSE*/, BOOL bInitialState /*= FALSE*/)
{
CloseHandle();
m_hHandle = ::CreateEvent(NULL, bManualReset, bInitialState, szName);
return (m_hHandle == NULL);
}
BOOL CuEventObject::ResetEvent()
{
return ::ResetEvent(m_hHandle);
}
BOOL CuEventObject::SetEvent()
{
return ::SetEvent(m_hHandle);
}
DWORD CuEventObject::WaitForSingleObject(DWORD dwMilliseconds /* = INFINITE */)
{
return ::WaitForSingleObject(m_hHandle, dwMilliseconds);
}
2009年12月21日 星期一
CuEventObject - Creates or opens a named or unnamed event object.
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言