using System;
namespace Developpez.Dotnet.System.Providers
{
///
/// Interface décrivant un fournisseur d'informations systèmes en fonction de la plateforme actuelle
///
public interface ISystemInteropProvider
{
///
/// Nom du système d'exploitation
///
string PlatformDisplayName { get; }
///
/// Version installée de DirectX
///
DirectXVersion DirectXVersion { get; }
///
/// Redémarre le système avec la raison spécifiée
///
/// Raison du redémarrage
/// true si l'opération a été un succès, false sinon
bool Reboot(RebootReason reason);
///
/// Obtients la version actuelle du Framework .NET
///
/// version actuelle du Framework .NET
FrameworkVersion GetFrameworkVersion();
///
/// Indique si le système supporte l'élévation de privilèges
///
bool SupportsElevation { get; }
///
/// Indique si le processus courant dispose du token complet administrateur (élévation de privilèges)
///
bool IsElevated { get; }
///
/// Obtient les informations du thème du système
///
SystemThemeInfo ThemeInfo { get; }
}
///
/// Classe vide par défaut pour tous les sytèmes
///
public class NullSystemProvider : ISystemInteropProvider
{
///
/// Initialise une nouvelle instance de NullSystemProvider
///
protected internal NullSystemProvider()
{
}
#region ISystemInteropProvider Membres
///
/// Renvoi le nom du système
///
public virtual string PlatformDisplayName
{
get { return Environment.OSVersion.VersionString; }
}
///
/// Redémarre le système avec la raison spécifiée
///
/// Raison du redémarrage
/// true si le redémarrage a été initialisé, false sinon
public virtual bool Reboot(RebootReason reason)
{
throw new PlatformNotSupportedException();
}
///
/// Obtient la version installée du Framework .NET
///
/// Version du Framework
public virtual FrameworkVersion GetFrameworkVersion()
{
throw new PlatformNotSupportedException();
}
///
/// Indique si le système supporte l'élévation de privilèges
///
public virtual bool SupportsElevation
{
get { return false; }
}
///
/// Indique si le processus courant dispose du token complet administrateur (élévation de privilèges)
///
public virtual bool IsElevated
{
get { return false; }
}
///
/// Obtient les informations du thème du système
///
public virtual SystemThemeInfo ThemeInfo
{
get { throw new PlatformNotSupportedException(); }
}
///
/// Obtient la version détectée de DirectX actuellement installée sur le système
///
/// Valide uniquement sru Windows
public virtual DirectXVersion DirectXVersion
{
get { throw new PlatformNotSupportedException(); }
}
#endregion
}
}