| 87 | } |
| 88 | |
| 89 | bool Close() { |
| 90 | if (!is_valid()) { |
| 91 | return true; |
| 92 | } |
| 93 | HANDLE h = handle_; |
| 94 | handle_ = INVALID_HANDLE_VALUE; |
| 95 | return ::CloseHandle(h); |
| 96 | } |
| 97 | |
| 98 | bool is_valid() const { |
| 99 | return handle_ != INVALID_HANDLE_VALUE && handle_ != nullptr; |