Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / WinForms / Managed / System / WinForms / OSFeature.cs / 1305376 / 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
- TypeSource.cs
- PlacementWorkspace.cs
- SimpleHandlerFactory.cs
- ListViewItem.cs
- ContentTextAutomationPeer.cs
- VirtualDirectoryMapping.cs
- Int16Converter.cs
- errorpatternmatcher.cs
- BufferModeSettings.cs
- CounterCreationData.cs
- PointHitTestParameters.cs
- TextTreeTextBlock.cs
- EmptyImpersonationContext.cs
- UTF32Encoding.cs
- GetImportedCardRequest.cs
- SerTrace.cs
- XmlWriterSettings.cs
- ColorMap.cs
- RectangleF.cs
- SqlMetaData.cs
- ReaderContextStackData.cs
- ConfigurationSchemaErrors.cs
- StyleXamlTreeBuilder.cs
- ImportCatalogPart.cs
- TextEffectCollection.cs
- MediaCommands.cs
- LambdaCompiler.Unary.cs
- RegexRunnerFactory.cs
- wgx_render.cs
- AdornedElementPlaceholder.cs
- Funcletizer.cs
- SkinBuilder.cs
- SqlXml.cs
- RoleGroupCollection.cs
- LayoutTableCell.cs
- ObjectViewListener.cs
- ManagementPath.cs
- RNGCryptoServiceProvider.cs
- SiteOfOriginPart.cs
- ClientRequest.cs
- TextEditorLists.cs
- PropertyBuilder.cs
- DataListDesigner.cs
- ReversePositionQuery.cs
- HandleCollector.cs
- keycontainerpermission.cs
- CacheEntry.cs
- MeasureData.cs
- BitmapMetadata.cs
- IIS7UserPrincipal.cs
- RijndaelManaged.cs
- GuidelineCollection.cs
- DbUpdateCommandTree.cs
- SchemaName.cs
- KeyGesture.cs
- TableChangeProcessor.cs
- GridToolTip.cs
- Baml2006KnownTypes.cs
- MenuCommands.cs
- DllHostedComPlusServiceHost.cs
- TreeNodeConverter.cs
- PathBox.cs
- BuildTopDownAttribute.cs
- LineSegment.cs
- TemplatedMailWebEventProvider.cs
- WindowPattern.cs
- SwitchAttribute.cs
- CredentialCache.cs
- DbConnectionPoolOptions.cs
- DataGridViewColumnDividerDoubleClickEventArgs.cs
- ListChunk.cs
- ProcessModule.cs
- WeakRefEnumerator.cs
- HMACSHA512.cs
- EndpointConfigContainer.cs
- PersistChildrenAttribute.cs
- EmptyCollection.cs
- ObjectViewEntityCollectionData.cs
- AjaxFrameworkAssemblyAttribute.cs
- ItemChangedEventArgs.cs
- XmlTypeMapping.cs
- ParameterRetriever.cs
- SettingsBase.cs
- ProfileService.cs
- Color.cs
- BooleanKeyFrameCollection.cs
- CodeNamespace.cs
- LayoutDump.cs
- ADConnectionHelper.cs
- BookmarkOptionsHelper.cs
- WmpBitmapEncoder.cs
- InstanceDataCollectionCollection.cs
- SingleKeyFrameCollection.cs
- StorageFunctionMapping.cs
- EdmEntityTypeAttribute.cs
- XmlDataLoader.cs
- MimeMapping.cs
- TypeConstant.cs
- ReceiveMessageAndVerifySecurityAsyncResultBase.cs
- CfgParser.cs