SafeAllocHHandle
using System;
using System.Runtime.InteropServices;
namespace Microsoft.Win32.SafeHandles
{
internal sealed class SafeAllocHHandle : SafeBuffer
{
internal static SafeAllocHHandle InvalidHandle => new SafeAllocHHandle(IntPtr.Zero);
private SafeAllocHHandle()
: base(true)
{
}
internal SafeAllocHHandle(IntPtr handle)
: base(true)
{
SetHandle(handle);
}
protected override bool ReleaseHandle()
{
if (handle != IntPtr.Zero)
Marshal.FreeHGlobal(handle);
return true;
}
}
}