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
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TextEditorThreadLocalStore.cs
- SmiContext.cs
- StylusPointPropertyInfo.cs
- InputScope.cs
- DispatcherSynchronizationContext.cs
- ContactManager.cs
- PropertyInformation.cs
- TextRunTypographyProperties.cs
- SemanticAnalyzer.cs
- MainMenu.cs
- SchemeSettingElement.cs
- MimeTypeMapper.cs
- SizeF.cs
- ChtmlPhoneCallAdapter.cs
- ProcessInputEventArgs.cs
- SyndicationPerson.cs
- DataColumnChangeEvent.cs
- DoubleLinkListEnumerator.cs
- XmlSiteMapProvider.cs
- _AutoWebProxyScriptHelper.cs
- CustomError.cs
- KeyGesture.cs
- LongValidatorAttribute.cs
- Help.cs
- SHA512Managed.cs
- DataSourceDescriptorCollection.cs
- XmlSchemaRedefine.cs
- FloaterParaClient.cs
- MessageQueue.cs
- UnknownWrapper.cs
- CompositionAdorner.cs
- DirectoryRedirect.cs
- UserInitiatedRoutedEventPermissionAttribute.cs
- IncomingWebResponseContext.cs
- GetResponse.cs
- TemplateInstanceAttribute.cs
- IncrementalHitTester.cs
- DBCSCodePageEncoding.cs
- Transform.cs
- DataObjectAttribute.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- XmlSchemaGroup.cs
- MachinePropertyVariants.cs
- AdditionalEntityFunctions.cs
- SupportingTokenAuthenticatorSpecification.cs
- MenuItem.cs
- ADMembershipUser.cs
- ProjectionPruner.cs
- CultureInfoConverter.cs
- ModelTreeEnumerator.cs
- AnchoredBlock.cs
- DPTypeDescriptorContext.cs
- RegionData.cs
- WindowsTitleBar.cs
- RequestNavigateEventArgs.cs
- ActivityExecutor.cs
- SchemaMapping.cs
- ServiceRouteHandler.cs
- PrintPreviewControl.cs
- PlatformNotSupportedException.cs
- SimpleBitVector32.cs
- InternalSafeNativeMethods.cs
- InvariantComparer.cs
- CryptoKeySecurity.cs
- Thread.cs
- EvidenceBase.cs
- PageEventArgs.cs
- ISCIIEncoding.cs
- DataTablePropertyDescriptor.cs
- DataKey.cs
- PropertyGeneratedEventArgs.cs
- Logging.cs
- StylusDevice.cs
- TypedReference.cs
- CustomErrorsSectionWrapper.cs
- UIAgentInitializationException.cs
- RectAnimation.cs
- XmlSerializationGeneratedCode.cs
- objectquery_tresulttype.cs
- Ipv6Element.cs
- ToolStripInSituService.cs
- SelectionRangeConverter.cs
- RangeValuePatternIdentifiers.cs
- EnumMember.cs
- XomlCompilerResults.cs
- SoapExtensionTypeElementCollection.cs
- BooleanAnimationUsingKeyFrames.cs
- MediaContextNotificationWindow.cs
- MemberJoinTreeNode.cs
- ProfileGroupSettings.cs
- ConfigurationElementProperty.cs
- validationstate.cs
- MultiAsyncResult.cs
- Event.cs
- SequentialUshortCollection.cs
- TypeBuilderInstantiation.cs
- ScrollEvent.cs
- FormsAuthenticationModule.cs
- PostBackOptions.cs
- RegexCaptureCollection.cs