📄 namedevent.h
字号:
#if !defined(CCL_NAMEDEVENT_H__88B39F27_7B91_4D6A_BFFB_35908A539E7A__INCLUDED_)
#define CCL_NAMEDEVENT_H__88B39F27_7B91_4D6A_BFFB_35908A539E7A__INCLUDED_
#pragma once
/////////////////////////////////////////////////////////////////////////////
// //
// -->-> class CNamedEvent <-<-- //
// //
// 命名事件类,该类封装了对命名事件的创建和检测,主要用于单实例应用程 //
// 序的检测。 //
// //
/////////////////////////////////////////////////////////////////////////////
class CNamedEvent
{
public:
//创建命名事件
//<参数>
// szEventName: 指定事件名字
//<返回值>
// 如果在调用Create之前指定名字的事件已经存在或者创建一个新的命名事件失败
//则返回FALSE,否则返回TRUE。
BOOL Create(LPCTSTR szEventName)
{
m_hNamedEvent = NULL;
m_hNamedEvent = ::CreateEvent(NULL, TRUE, TRUE, szEventName);
if (::GetLastError() == ERROR_ALREADY_EXISTS)
{
//指定命名事件已经存在
if (m_hNamedEvent != NULL)
::CloseHandle(m_hNamedEvent);
m_hNamedEvent = NULL;
}
return BOOL(NULL != m_hNamedEvent);
}
CNamedEvent() : m_hNamedEvent(NULL) {}
virtual ~CNamedEvent()
{
if (m_hNamedEvent)
::CloseHandle(m_hNamedEvent);
}
protected:
HANDLE m_hNamedEvent;
};
#endif // !defined(CCL_NAMEDEVENT_H__88B39F27_7B91_4D6A_BFFB_35908A539E7A__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -