equal
deleted
inserted
replaced
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 |
|