WinStd
Additional templates and function helpers for Microsoft Windows using Standard C++ classes
Public Member Functions | Protected Member Functions | List of all members
winstd::reg_key Class Reference

Registry wrapper class. More...

#include <WinStd/Win.h>

Inheritance diagram for winstd::reg_key:
winstd::handle< HKEY, NULL >

Public Member Functions

virtual ~reg_key ()
 Closes a handle to the registry key. More...
 
bool create (HKEY hKey, LPCTSTR lpSubKey, LPTSTR lpClass, DWORD dwOptions, REGSAM samDesired, LPSECURITY_ATTRIBUTES lpSecurityAttributes=NULL, LPDWORD lpdwDisposition=NULL) noexcept
 Creates the specified registry key. If the key already exists, the function opens it. More...
 
bool open (HKEY hKey, LPCTSTR lpSubKey, DWORD ulOptions, REGSAM samDesired) noexcept
 Opens the specified registry key. More...
 
bool delete_subkey (LPCTSTR szSubkey)
 Deletes the specified registry subkey. More...
 
- Public Member Functions inherited from winstd::handle< HKEY, NULL >
 handle () noexcept
 Initializes a new class instance with the object handle set to INVAL.
 
 handle (handle_type h) noexcept
 Initializes a new class instance with an already available object handle. More...
 
 handle (handle< handle_type, INVAL > &&h) noexcept
 Move constructor. More...
 
handle< handle_type, INVAL > & operator= (handle_type h) noexcept
 Attaches already available object handle. More...
 
handle< handle_type, INVAL > & operator= (handle< handle_type, INVAL > &&h) noexcept
 Move assignment. More...
 
 operator handle_type () const
 Auto-typecasting operator. More...
 
handle_type *& operator* () const
 Returns the object handle value when the object handle is a pointer to a value (class, struct, etc.). More...
 
handle_typeoperator& ()
 Returns the object handle reference. More...
 
handle_type operator-> () const
 Provides object handle member access when the object handle is a pointer to a class or struct. More...
 
bool operator! () const
 Tests if the object handle is INVAL. More...
 
bool operator< (handle_type h) const
 Is handle less than? More...
 
bool operator<= (handle_type h) const
 Is handle less than or equal to? More...
 
bool operator>= (handle_type h) const
 Is handle greater than or equal to? More...
 
bool operator> (handle_type h) const
 Is handle greater than? More...
 
bool operator!= (handle_type h) const
 Is handle not equal to? More...
 
bool operator== (handle_type h) const
 Is handle equal to? More...
 
void attach (handle_type h) noexcept
 Sets a new object handle for the class. More...
 
handle_type detach ()
 Dismisses the object handle from this class. More...
 
void free ()
 Destroys the object.
 

Protected Member Functions

void free_internal () noexcept override
 Closes a handle to the registry key. More...
 
virtual void free_internal () noexcept=0
 Abstract member function that must be implemented by child classes to do the actual object destruction. More...
 

Additional Inherited Members

- Public Types inherited from winstd::handle< HKEY, NULL >
typedef HKEY handle_type
 Datatype of the object handle this template class handles.
 
- Static Public Attributes inherited from winstd::handle< HKEY, NULL >
static const HKEY invalid
 Invalid handle value.
 
- Protected Attributes inherited from winstd::handle< HKEY, NULL >
handle_type m_h
 Object handle.
 

Detailed Description

Registry wrapper class.

Constructor & Destructor Documentation

◆ ~reg_key()

virtual winstd::reg_key::~reg_key ( )
inlinevirtual

Closes a handle to the registry key.

See also
RegCloseKey function

Member Function Documentation

◆ create()

bool winstd::reg_key::create ( HKEY  hKey,
LPCTSTR  lpSubKey,
LPTSTR  lpClass,
DWORD  dwOptions,
REGSAM  samDesired,
LPSECURITY_ATTRIBUTES  lpSecurityAttributes = NULL,
LPDWORD  lpdwDisposition = NULL 
)
inlinenoexcept

Creates the specified registry key. If the key already exists, the function opens it.

Returns
  • true when creation succeeds;
  • false when creation fails. For extended error information, call GetLastError().
See also
RegCreateKeyEx function

◆ delete_subkey()

bool winstd::reg_key::delete_subkey ( LPCTSTR  szSubkey)
inline

Deletes the specified registry subkey.

Parameters
[in]szSubkeyName of the subkey to delete
Returns
  • true when creation succeeds;
  • false when creation fails. For extended error information, call GetLastError().

◆ free_internal()

void winstd::reg_key::free_internal ( )
inlineoverrideprotectedvirtualnoexcept

Closes a handle to the registry key.

See also
RegCloseKey function

Implements winstd::handle< HKEY, NULL >.

◆ open()

bool winstd::reg_key::open ( HKEY  hKey,
LPCTSTR  lpSubKey,
DWORD  ulOptions,
REGSAM  samDesired 
)
inlinenoexcept

Opens the specified registry key.

Returns
  • true when creation succeeds;
  • false when creation fails. For extended error information, call GetLastError().
See also
RegOpenKeyEx function

The documentation for this class was generated from the following file: