OSFeature.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / WinForms / Managed / System / WinForms / OSFeature.cs / 1 / OSFeature.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

namespace System.Windows.Forms { 
    using System.Configuration.Assemblies; 
    using System.Diagnostics;
    using System; 
    using System.Security;
    using System.Security.Permissions;

    ///  
    /// 
    ///    Provides operating-system specific feature queries. 
    ///  
    public class OSFeature : FeatureSupport {
 
        /// 
        /// 
        ///    Represents the layered, top-level windows feature. This
        ///     field is read-only. 
        /// 
        public static readonly object LayeredWindows = new object(); 
 
        /// 
        ///  
        ///    Determines if the OS supports themes
        /// 
        public static readonly object Themes = new object();
 
        private static OSFeature feature = null;
 
        private static bool themeSupportTested = false; 
        private static bool themeSupport = false;
 
        /// 
        /// 
        /// 
        ///     
        ///       Initializes a new instance of the  class.
        /// 
        ///     
        /// 
        protected OSFeature() { 
        }

        /// 
        ///  
        /// Represents the  instance of  to use for feature queries. This property is read-only.
        ///  
        public static OSFeature Feature { 
            get {
                if (feature == null) 
                    feature = new OSFeature();

                return feature;
            } 
        }
 
        ///  
        /// 
        ///    Retrieves the version of the specified feature currently available on the system. 
        /// 
        public override Version GetVersionPresent(object feature) {
            Version featureVersion = null;
            if (feature == LayeredWindows) { 
                if (Environment.OSVersion.Platform == System.PlatformID.Win32NT
                   && Environment.OSVersion.Version.CompareTo(new Version(5, 0, 0, 0)) >= 0) { 
 
                    featureVersion = new Version(0, 0, 0, 0);
                } 
            }
            else if (feature == Themes) {
                if (!themeSupportTested) {
                    try { 
                        SafeNativeMethods.IsAppThemed();
                        themeSupport = true; 
                    } 
                    catch {
                        themeSupport = false; 
                    }
                    themeSupportTested = true;
                }
 
                if (themeSupport) {
                    featureVersion = new Version(0, 0, 0, 0); 
                } 
            }
            return featureVersion; 
        }

        internal bool OnXp {
            get { 
                bool onXp = false;
                if (Environment.OSVersion.Platform == System.PlatformID.Win32NT) { 
                    onXp =  Environment.OSVersion.Version.CompareTo(new Version(5, 1, 0, 0)) >= 0; 
                }
                return onXp; 
            }
        }

        internal bool OnWin2k { 
            get {
                bool onWin2k = false; 
                if (Environment.OSVersion.Platform == System.PlatformID.Win32NT) { 
                    onWin2k =  Environment.OSVersion.Version.CompareTo(new Version(5, 0, 0, 0)) >= 0;
                } 
                return onWin2k;
            }
        }
 
        /// 
        ///  
        ///    Retrieves whether SystemParameterType is supported on the Current OS version. 
        /// 
        public static bool IsPresent(SystemParameter enumVal) { 
            switch (enumVal) {
                case SystemParameter.DropShadow:
                    return Feature.OnXp;
 

                case SystemParameter.FlatMenu: 
                    return Feature.OnXp; 

 
                case SystemParameter.FontSmoothingContrastMetric:
                    return Feature.OnXp;

 
                case SystemParameter.FontSmoothingTypeMetric:
                    return Feature.OnXp; 
 

                case SystemParameter.MenuFadeEnabled: 
                    return Feature.OnWin2k;


                case SystemParameter.SelectionFade: 
                    return Feature.OnWin2k;
 
 
                case SystemParameter.ToolTipAnimationMetric:
                    return Feature.OnWin2k; 


                case SystemParameter.UIEffects:
                    return Feature.OnWin2k; 

 
                case SystemParameter.CaretWidthMetric: 
                    return Feature.OnWin2k;
 

                case SystemParameter.VerticalFocusThicknessMetric:
                    return Feature.OnXp;
 

                case SystemParameter.HorizontalFocusThicknessMetric: 
                    return Feature.OnXp; 
            }
            return false; 
        }

    }
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

namespace System.Windows.Forms { 
    using System.Configuration.Assemblies; 
    using System.Diagnostics;
    using System; 
    using System.Security;
    using System.Security.Permissions;

    ///  
    /// 
    ///    Provides operating-system specific feature queries. 
    ///  
    public class OSFeature : FeatureSupport {
 
        /// 
        /// 
        ///    Represents the layered, top-level windows feature. This
        ///     field is read-only. 
        /// 
        public static readonly object LayeredWindows = new object(); 
 
        /// 
        ///  
        ///    Determines if the OS supports themes
        /// 
        public static readonly object Themes = new object();
 
        private static OSFeature feature = null;
 
        private static bool themeSupportTested = false; 
        private static bool themeSupport = false;
 
        /// 
        /// 
        /// 
        ///     
        ///       Initializes a new instance of the  class.
        /// 
        ///     
        /// 
        protected OSFeature() { 
        }

        /// 
        ///  
        /// Represents the  instance of  to use for feature queries. This property is read-only.
        ///  
        public static OSFeature Feature { 
            get {
                if (feature == null) 
                    feature = new OSFeature();

                return feature;
            } 
        }
 
        ///  
        /// 
        ///    Retrieves the version of the specified feature currently available on the system. 
        /// 
        public override Version GetVersionPresent(object feature) {
            Version featureVersion = null;
            if (feature == LayeredWindows) { 
                if (Environment.OSVersion.Platform == System.PlatformID.Win32NT
                   && Environment.OSVersion.Version.CompareTo(new Version(5, 0, 0, 0)) >= 0) { 
 
                    featureVersion = new Version(0, 0, 0, 0);
                } 
            }
            else if (feature == Themes) {
                if (!themeSupportTested) {
                    try { 
                        SafeNativeMethods.IsAppThemed();
                        themeSupport = true; 
                    } 
                    catch {
                        themeSupport = false; 
                    }
                    themeSupportTested = true;
                }
 
                if (themeSupport) {
                    featureVersion = new Version(0, 0, 0, 0); 
                } 
            }
            return featureVersion; 
        }

        internal bool OnXp {
            get { 
                bool onXp = false;
                if (Environment.OSVersion.Platform == System.PlatformID.Win32NT) { 
                    onXp =  Environment.OSVersion.Version.CompareTo(new Version(5, 1, 0, 0)) >= 0; 
                }
                return onXp; 
            }
        }

        internal bool OnWin2k { 
            get {
                bool onWin2k = false; 
                if (Environment.OSVersion.Platform == System.PlatformID.Win32NT) { 
                    onWin2k =  Environment.OSVersion.Version.CompareTo(new Version(5, 0, 0, 0)) >= 0;
                } 
                return onWin2k;
            }
        }
 
        /// 
        ///  
        ///    Retrieves whether SystemParameterType is supported on the Current OS version. 
        /// 
        public static bool IsPresent(SystemParameter enumVal) { 
            switch (enumVal) {
                case SystemParameter.DropShadow:
                    return Feature.OnXp;
 

                case SystemParameter.FlatMenu: 
                    return Feature.OnXp; 

 
                case SystemParameter.FontSmoothingContrastMetric:
                    return Feature.OnXp;

 
                case SystemParameter.FontSmoothingTypeMetric:
                    return Feature.OnXp; 
 

                case SystemParameter.MenuFadeEnabled: 
                    return Feature.OnWin2k;


                case SystemParameter.SelectionFade: 
                    return Feature.OnWin2k;
 
 
                case SystemParameter.ToolTipAnimationMetric:
                    return Feature.OnWin2k; 


                case SystemParameter.UIEffects:
                    return Feature.OnWin2k; 

 
                case SystemParameter.CaretWidthMetric: 
                    return Feature.OnWin2k;
 

                case SystemParameter.VerticalFocusThicknessMetric:
                    return Feature.OnXp;
 

                case SystemParameter.HorizontalFocusThicknessMetric: 
                    return Feature.OnXp; 
            }
            return false; 
        }

    }
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK