navicat-keygen/common/ResourceTraitsWin32.hpp
2019-09-06 22:35:29 +08:00

48 lines
1.1 KiB
C++

#pragma once
#include <windows.h>
struct GenericHandleTraits {
using HandleType = HANDLE;
static inline const HandleType InvalidValue = NULL;
[[nodiscard]]
static bool IsValid(const HandleType& Handle) noexcept {
return Handle != InvalidValue;
}
static void Releasor(const HandleType& Handle) noexcept {
CloseHandle(Handle);
}
};
struct FileHandleTraits {
using HandleType = HANDLE;
static inline const HandleType InvalidValue = INVALID_HANDLE_VALUE;
[[nodiscard]]
static bool IsValid(const HandleType& Handle) noexcept {
return Handle != InvalidValue;
}
static void Releasor(const HandleType& Handle) noexcept {
CloseHandle(Handle);
}
};
struct MapViewHandleTraits {
using HandleType = PVOID;
static inline const HandleType InvalidValue = NULL;
[[nodiscard]]
static bool IsValid(const HandleType& Handle) noexcept {
return Handle != InvalidValue;
}
static void Releasor(const HandleType& Handle) noexcept {
UnmapViewOfFile(Handle);
}
};