Win: Add nspace, boundary_descriptor
Some checks failed
CodeQL / Analyze (cpp) (push) Has been cancelled
Doxygen Action / build (push) Has been cancelled

Signed-off-by: Simon Rozman <simon@rozman.si>
This commit is contained in:
2025-08-04 11:18:34 +02:00
parent 75c5630dbc
commit 9136c74309

View File

@@ -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