41 lines
877 B
C
41 lines
877 B
C
|
|
#ifndef WIN32EVENT_H
|
|||
|
|
#define WIN32EVENT_H
|
|||
|
|
|
|||
|
|
|
|||
|
|
#include <windows.h>
|
|||
|
|
/** Simpel wrapper around a Win32 Event object.
|
|||
|
|
|
|||
|
|
Mostly to make cleanup automatic.*/
|
|||
|
|
class Win32Event {
|
|||
|
|
public:
|
|||
|
|
enum class Reset { Auto=0, Manual=1 };
|
|||
|
|
enum class Initial { Clear=0, Set=1 };
|
|||
|
|
|
|||
|
|
Win32Event(Reset r, Initial is)
|
|||
|
|
: hEvent(CreateEvent(
|
|||
|
|
nullptr, // _In_opt_ LPSECURITY_ATTRIBUTES lpEventAttributes,
|
|||
|
|
BOOL(r), // _In_ BOOL bManualReset,
|
|||
|
|
BOOL(is), // _In_ BOOL bInitialState,
|
|||
|
|
nullptr //_In_opt_ LPCTSTR lpName
|
|||
|
|
))
|
|||
|
|
{}
|
|||
|
|
|
|||
|
|
~Win32Event()
|
|||
|
|
{
|
|||
|
|
CloseHandle(hEvent);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
Win32Event(const Win32Event &) = delete;
|
|||
|
|
Win32Event &operator=(const Win32Event &) = delete;
|
|||
|
|
|
|||
|
|
void Set() { SetEvent(hEvent); }
|
|||
|
|
|
|||
|
|
void Reset() { ResetEvent(hEvent); }
|
|||
|
|
|
|||
|
|
HANDLE GetHandle() { return hEvent; }
|
|||
|
|
private:
|
|||
|
|
HANDLE hEvent;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
#endif // WIN32EVENT_H
|