mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-07 05:15:01 -06:00
4.44 beta
This commit is contained in:
committed by
Kornel Lesiński
parent
804edc5756
commit
d9666cf046
37
CPP/Windows/Handle.h
Executable file
37
CPP/Windows/Handle.h
Executable file
@@ -0,0 +1,37 @@
|
||||
// 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 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
|
||||
Reference in New Issue
Block a user