diff --git a/include/WinStd/Win.h b/include/WinStd/Win.h index c93663b7..55fff26a 100644 --- a/include/WinStd/Win.h +++ b/include/WinStd/Win.h @@ -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 + { + 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 + { + 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