mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
38 lines
655 B
C
38 lines
655 B
C
|
// Windows/Handle.h
|
||
|
|
||
|
#ifndef __WINDOWS_HANDLE_H
|
||
|
#define __WINDOWS_HANDLE_H
|
||
|
|
||
|
namespace NWindows {
|
||
|
|
||
|
class CHandle
|
||
|
{
|
||
|
protected:
|
||
|
HANDLE _handle;
|
||
|
public:
|
||
|
operator HANDLE() { return _handle; }
|
||
|
CHandle(): _handle(NULL) {}
|
||
|
~CHandle() { Close(); }
|
||
|
bool IsCreated() const { return (_handle != NULL); }
|
||
|
bool Close()
|
||
|
{
|
||
|
if (_handle == NULL)
|
||
|
return true;
|
||
|
if (!::CloseHandle(_handle))
|
||
|
return false;
|
||
|
_handle = NULL;
|
||
|
return true;
|
||
|
}
|
||
|
void Attach(HANDLE handle) { _handle = handle; }
|
||
|
HANDLE Detach()
|
||
|
{
|
||
|
HANDLE handle = _handle;
|
||
|
_handle = NULL;
|
||
|
return handle;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
}
|
||
|
|
||
|
#endif
|