Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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; ////// /// public class OSFeature : FeatureSupport { ///Provides operating-system specific feature queries. ////// /// public static readonly object LayeredWindows = new object(); ///Represents the layered, top-level windows feature. This /// ///field is read-only. /// /// public static readonly object Themes = new object(); private static OSFeature feature = null; private static bool themeSupportTested = false; private static bool themeSupport = false; ///Determines if the OS supports themes ////// /// /// protected OSFeature() { } ////// Initializes a new instance of the ///class. /// /// /// /// public static OSFeature Feature { get { if (feature == null) feature = new OSFeature(); return feature; } } ///Represents the ///instance of to use for feature queries. This property is read-only. /// /// 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 the version of the specified feature currently available on the system. ////// /// 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. //------------------------------------------------------------------------------ //Retrieves whether SystemParameterType is supported on the Current OS version. ///// 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; ////// /// public class OSFeature : FeatureSupport { ///Provides operating-system specific feature queries. ////// /// public static readonly object LayeredWindows = new object(); ///Represents the layered, top-level windows feature. This /// ///field is read-only. /// /// public static readonly object Themes = new object(); private static OSFeature feature = null; private static bool themeSupportTested = false; private static bool themeSupport = false; ///Determines if the OS supports themes ////// /// /// protected OSFeature() { } ////// Initializes a new instance of the ///class. /// /// /// /// public static OSFeature Feature { get { if (feature == null) feature = new OSFeature(); return feature; } } ///Represents the ///instance of to use for feature queries. This property is read-only. /// /// 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 the version of the specified feature currently available on the system. ////// /// 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.Retrieves whether SystemParameterType is supported on the Current OS version. ///
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ApplicationGesture.cs
- OneToOneMappingSerializer.cs
- MetadataItemEmitter.cs
- Pen.cs
- InvalidFilterCriteriaException.cs
- ObjectDisposedException.cs
- FontStretch.cs
- MimeMapping.cs
- SQLDateTimeStorage.cs
- SqlConnectionManager.cs
- OLEDB_Enum.cs
- OrderByLifter.cs
- Renderer.cs
- PolyLineSegment.cs
- _HeaderInfo.cs
- ImageFormatConverter.cs
- XmlUtil.cs
- UserNameSecurityToken.cs
- XmlDeclaration.cs
- DataSetUtil.cs
- XamlPoint3DCollectionSerializer.cs
- HtmlControlAdapter.cs
- XmlSignatureProperties.cs
- DynamicPropertyReader.cs
- CheckBox.cs
- SlipBehavior.cs
- VisualBasicImportReference.cs
- OutputWindow.cs
- TemplateControlParser.cs
- TextFormatterHost.cs
- ClientTargetCollection.cs
- Char.cs
- FontFamilyValueSerializer.cs
- glyphs.cs
- SystemWebSectionGroup.cs
- InkCanvasFeedbackAdorner.cs
- TcpChannelFactory.cs
- NamespaceCollection.cs
- QueryReaderSettings.cs
- PageEventArgs.cs
- FormsIdentity.cs
- SyncMethodInvoker.cs
- NetDataContractSerializer.cs
- DataTableMapping.cs
- PrintDialog.cs
- SoapClientMessage.cs
- TableLayoutPanelCellPosition.cs
- XmlRawWriter.cs
- WebBrowserNavigatingEventHandler.cs
- CounterSample.cs
- DesignerView.Commands.cs
- EndpointAddress10.cs
- SetterBaseCollection.cs
- EnumerableCollectionView.cs
- ChannelServices.cs
- TargetPerspective.cs
- BadImageFormatException.cs
- Application.cs
- ReplyChannelBinder.cs
- CodeCommentStatement.cs
- TwoPhaseCommit.cs
- XmlSchemaObjectCollection.cs
- AnnouncementService.cs
- UseAttributeSetsAction.cs
- HandlerBase.cs
- compensatingcollection.cs
- HtmlTextArea.cs
- XmlChildEnumerator.cs
- HandleCollector.cs
- SkipQueryOptionExpression.cs
- WorkflowStateRollbackService.cs
- CqlWriter.cs
- CompilationRelaxations.cs
- ContextBase.cs
- Transform.cs
- RawStylusInputReport.cs
- IsolatedStoragePermission.cs
- AnnotationResourceChangedEventArgs.cs
- VectorAnimation.cs
- ErrorReporting.cs
- XmlNodeChangedEventArgs.cs
- XmlDocumentType.cs
- Scalars.cs
- RMPermissions.cs
- DataGridSortCommandEventArgs.cs
- HttpWebRequestElement.cs
- HashFinalRequest.cs
- RawMouseInputReport.cs
- Animatable.cs
- BuildProvider.cs
- DataBoundControlHelper.cs
- Tracer.cs
- WebBrowserBase.cs
- RowUpdatingEventArgs.cs
- ConnectionManagementElementCollection.cs
- IdnMapping.cs
- TimeStampChecker.cs
- LayoutInformation.cs
- WinInetCache.cs
- AlternationConverter.cs