using System;
using System.Runtime.InteropServices;
namespace Developpez.Dotnet.System
{
///
/// Représente un code de retour COM (HRESULT). Peut être utilisé pour la
/// déclaration de fonctions P/Invoke.
///
[StructLayout(LayoutKind.Sequential)]
public struct HResult
{
private int _value;
///
/// Renvoie la valeur numérique du HResult
///
public int Value
{
get { return _value; }
}
///
/// Renvoie l'exception correspondant à ce HResult
///
public Exception Exception
{
get { return Marshal.GetExceptionForHR(_value); }
}
///
/// Indique si ce HResult correspond à une réussite de l'opération
///
public bool IsSuccess
{
get { return _value >= 0; }
}
///
/// Indique si ce HResult correspond à un échec de l'opération
///
public bool IsFailure
{
get { return _value < 0; }
}
}
}