tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

Handle.h (655B)


      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 IsCreated() const { return (_handle != NULL); }
     17  bool Close()
     18  {
     19    if (_handle == NULL)
     20      return true;
     21    if (!::CloseHandle(_handle))
     22      return false;
     23    _handle = NULL;
     24    return true;
     25  }
     26  void Attach(HANDLE handle) { _handle = handle; }
     27  HANDLE Detach()
     28  {
     29    HANDLE handle = _handle;
     30    _handle = NULL;
     31    return handle;
     32  }
     33 };
     34 
     35 }
     36 
     37 #endif