other-licenses/7zstub/src/Windows/Handle.h

branch
TOR_BUG_9701
changeset 15
b8a032363ba2
equal deleted inserted replaced
-1:000000000000 0:5dea5dd38dc4
1 // Windows/Handle.h
2
3 #ifndef __WINDOWS_HANDLE_H
4 #define __WINDOWS_HANDLE_H
5
6 namespace NWindows {
7
8 class CHandle
9 {
10 protected:
11 HANDLE _handle;
12 public:
13 operator HANDLE() { return _handle; }
14 CHandle(): _handle(NULL) {}
15 ~CHandle() { Close(); }
16 bool Close()
17 {
18 if (_handle == NULL)
19 return true;
20 if (!::CloseHandle(_handle))
21 return false;
22 _handle = NULL;
23 return true;
24 }
25 void Attach(HANDLE handle)
26 { _handle = handle; }
27 HANDLE Detach()
28 {
29 HANDLE handle = _handle;
30 _handle = NULL;
31 return handle;
32 }
33 };
34
35 }
36
37 #endif

mercurial