Win: Add nspace, boundary_descriptor
Signed-off-by: Simon Rozman <simon@rozman.si>
This commit is contained in:
@@ -1985,6 +1985,72 @@ namespace winstd
|
||||
}
|
||||
};
|
||||
|
||||
///
|
||||
/// Namespace handle wrapper
|
||||
///
|
||||
/// \sa [CreatePrivateNamespace function](https://learn.microsoft.com/en-us/windows/win32/api/namespaceapi/nf-namespaceapi-createprivatenamespacew)
|
||||
///
|
||||
class nspace : public handle<HANDLE, NULL>
|
||||
{
|
||||
WINSTD_HANDLE_IMPL(nspace, HANDLE, NULL)
|
||||
|
||||
public:
|
||||
///
|
||||
/// Closes an open namespace handle.
|
||||
///
|
||||
/// \sa [ClosePrivateNamespace function](https://learn.microsoft.com/en-us/windows/win32/api/namespaceapi/nf-namespaceapi-closeprivatenamespace)
|
||||
///
|
||||
virtual ~nspace()
|
||||
{
|
||||
if (m_h != invalid)
|
||||
free_internal();
|
||||
}
|
||||
|
||||
protected:
|
||||
///
|
||||
/// Closes an open namespace handle.
|
||||
///
|
||||
/// \sa [ClosePrivateNamespace function](https://learn.microsoft.com/en-us/windows/win32/api/namespaceapi/nf-namespaceapi-closeprivatenamespace)
|
||||
///
|
||||
void free_internal() noexcept override
|
||||
{
|
||||
ClosePrivateNamespace(m_h, 0);
|
||||
}
|
||||
};
|
||||
|
||||
///
|
||||
/// Boundary descriptor handle wrapper
|
||||
///
|
||||
/// \sa [CreateBoundaryDescriptor function](https://learn.microsoft.com/en-us/windows/win32/api/namespaceapi/nf-namespaceapi-createboundarydescriptorw)
|
||||
///
|
||||
class boundary_descriptor : public handle<HANDLE, NULL>
|
||||
{
|
||||
WINSTD_HANDLE_IMPL(boundary_descriptor, HANDLE, NULL)
|
||||
|
||||
public:
|
||||
///
|
||||
/// Deletes the specified boundary descriptor.
|
||||
///
|
||||
/// \sa [DeleteBoundaryDescriptor function](https://learn.microsoft.com/en-us/windows/win32/api/namespaceapi/nf-namespaceapi-deleteboundarydescriptor)
|
||||
///
|
||||
virtual ~boundary_descriptor()
|
||||
{
|
||||
if (m_h != invalid)
|
||||
free_internal();
|
||||
}
|
||||
|
||||
protected:
|
||||
///
|
||||
/// Deletes the specified boundary descriptor.
|
||||
///
|
||||
/// \sa [DeleteBoundaryDescriptor function](https://learn.microsoft.com/en-us/windows/win32/api/namespaceapi/nf-namespaceapi-deleteboundarydescriptor)
|
||||
///
|
||||
void free_internal() noexcept override
|
||||
{
|
||||
DeleteBoundaryDescriptor(m_h);
|
||||
}
|
||||
};
|
||||
|
||||
/// @}
|
||||
|
||||
/// \addtogroup WinStdExceptions
|
||||
|
Reference in New Issue
Block a user