VARIANT_BOOL
using System;
using System.CodeDom.Compiler;
using System.Diagnostics;
using System.Runtime.CompilerServices;
namespace Windows.Win32.Foundation
{
[DebuggerDisplay("{Value}")]
[GeneratedCode("Microsoft.Windows.CsWin32", "0.3.151+58e949951d.RR")]
internal readonly struct VARIANT_BOOL : IEquatable<VARIANT_BOOL>
{
internal readonly short Value;
internal static readonly VARIANT_BOOL VARIANT_TRUE = (VARIANT_BOOL)(short)(-1);
internal static readonly VARIANT_BOOL VARIANT_FALSE = (VARIANT_BOOL)(short)0;
internal VARIANT_BOOL(short value)
{
Value = value;
}
public static implicit operator short(VARIANT_BOOL value)
{
return value.Value;
}
public static explicit operator VARIANT_BOOL(short value)
{
return new VARIANT_BOOL(value);
}
public static bool operator ==(VARIANT_BOOL left, VARIANT_BOOL right)
{
return left.Value == right.Value;
}
public static bool operator !=(VARIANT_BOOL left, VARIANT_BOOL right)
{
return !(left == right);
}
public bool Equals(VARIANT_BOOL other)
{
return Value == other.Value;
}
public override bool Equals(object obj)
{
if (obj is VARIANT_BOOL) {
VARIANT_BOOL other = (VARIANT_BOOL)obj;
return Equals(other);
}
return false;
}
public override int GetHashCode()
{
return Value.GetHashCode();
}
public override string ToString()
{
DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(2, 1);
defaultInterpolatedStringHandler.AppendLiteral("0x");
defaultInterpolatedStringHandler.AppendFormatted(Value, "x");
return defaultInterpolatedStringHandler.ToStringAndClear();
}
internal VARIANT_BOOL(bool value)
{
Value = (value ? VARIANT_TRUE : VARIANT_FALSE);
}
public static implicit operator bool(VARIANT_BOOL value)
{
return value != VARIANT_FALSE;
}
public static implicit operator VARIANT_BOOL(bool value)
{
if (!value)
return VARIANT_FALSE;
return VARIANT_TRUE;
}
}
}