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
- InternalBase.cs
- ViewStateModeByIdAttribute.cs
- DeferredTextReference.cs
- PropertyValueUIItem.cs
- LocalFileSettingsProvider.cs
- SafePEFileHandle.cs
- SqlBooleanMismatchVisitor.cs
- StatusBarDrawItemEvent.cs
- Root.cs
- XmlDataDocument.cs
- ProcessModelSection.cs
- DesigntimeLicenseContext.cs
- PrintDialog.cs
- ExpandSegmentCollection.cs
- SqlTypeSystemProvider.cs
- Type.cs
- UshortList2.cs
- DataGridHyperlinkColumn.cs
- OutputCacheModule.cs
- SR.cs
- IPPacketInformation.cs
- SplitterCancelEvent.cs
- Facet.cs
- StringFreezingAttribute.cs
- NameTable.cs
- PageParserFilter.cs
- HelpProvider.cs
- DateTimeStorage.cs
- ServiceManager.cs
- KeyProperty.cs
- SubpageParaClient.cs
- PipeException.cs
- StrongNameUtility.cs
- IndexerNameAttribute.cs
- RawStylusActions.cs
- Viewport3DVisual.cs
- BaseParser.cs
- StyleTypedPropertyAttribute.cs
- NameScopePropertyAttribute.cs
- XmlDocumentType.cs
- PartitionerQueryOperator.cs
- ArrayElementGridEntry.cs
- SettingsPropertyWrongTypeException.cs
- ObjectAnimationBase.cs
- WindowsListViewItem.cs
- ShaperBuffers.cs
- UpdateTracker.cs
- WebPartTransformer.cs
- ListDictionary.cs
- NullRuntimeConfig.cs
- SmtpSection.cs
- XmlTextEncoder.cs
- XmlDocumentSerializer.cs
- ModelItemExtensions.cs
- AdRotator.cs
- WpfGeneratedKnownProperties.cs
- WindowsFormsSynchronizationContext.cs
- SchemaNamespaceManager.cs
- XXXInfos.cs
- LoadedOrUnloadedOperation.cs
- OrderedDictionary.cs
- AutomationProperty.cs
- TranslateTransform3D.cs
- EpmTargetPathSegment.cs
- WebPartsPersonalization.cs
- MethodImplAttribute.cs
- SHA1CryptoServiceProvider.cs
- ContainerAction.cs
- TTSEngineTypes.cs
- PageContent.cs
- DefaultEventAttribute.cs
- PrintDialog.cs
- BitmapEffectDrawing.cs
- GridView.cs
- ExpressionBinding.cs
- UpDownBase.cs
- altserialization.cs
- FontUnitConverter.cs
- ServiceHttpModule.cs
- ResizeBehavior.cs
- TextTreeExtractElementUndoUnit.cs
- Menu.cs
- IPipelineRuntime.cs
- Stack.cs
- FindRequestContext.cs
- WizardDesigner.cs
- SplayTreeNode.cs
- _NestedSingleAsyncResult.cs
- SafeUserTokenHandle.cs
- WindowsAltTab.cs
- TreeNodeClickEventArgs.cs
- DefaultDiscoveryService.cs
- InProcStateClientManager.cs
- CheckableControlBaseAdapter.cs
- CommandBindingCollection.cs
- MatrixConverter.cs
- PostBackTrigger.cs
- TextParentUndoUnit.cs
- ITextView.cs
- DataKey.cs