File: Windows.Win32.LocalFreeSafeHandle.g.cs
Project: src\src\Servers\HttpSys\src\Microsoft.AspNetCore.Server.HttpSys.csproj (Microsoft.AspNetCore.Server.HttpSys)
// ------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
// ------------------------------------------------------------------------------

#pragma warning disable CS1591,CS1573,CS0465,CS0649,CS8019,CS1570,CS1584,CS1658,CS0436,CS8981
using global::System;
using global::System.Diagnostics;
using global::System.Diagnostics.CodeAnalysis;
using global::System.Runtime.CompilerServices;
using global::System.Runtime.InteropServices;
using global::System.Runtime.Versioning;
using winmdroot = global::Windows.Win32;
namespace Windows.Win32
{

	/// <summary>
	/// Represents a Win32 handle that can be closed with <see cref="PInvoke.LocalFree(winmdroot.Foundation.HLOCAL)"/>.
	/// </summary>
	[global::System.CodeDom.Compiler.GeneratedCode("Microsoft.Windows.CsWin32", "0.3.46-beta+dd815b2b9b")]
	internal class LocalFreeSafeHandle
		:SafeHandle	{
		private static readonly IntPtr INVALID_HANDLE_VALUE = new IntPtr(-1L);

		internal LocalFreeSafeHandle():base(INVALID_HANDLE_VALUE, true)
		{
		}

		internal LocalFreeSafeHandle(IntPtr preexistingHandle, bool ownsHandle = true):base(INVALID_HANDLE_VALUE, ownsHandle)
		{
			this.SetHandle(preexistingHandle);
		}

		public override bool IsInvalid => this.handle.ToInt64() == -1L || this.handle.ToInt64() == 0L;

		protected override bool ReleaseHandle() => PInvoke.LocalFree((winmdroot.Foundation.HLOCAL)this.handle) == default(winmdroot.Foundation.HLOCAL);
	}
}