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
- WpfPayload.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- PeerInvitationResponse.cs
- BaseProcessor.cs
- MsmqElementBase.cs
- Descriptor.cs
- MediaElementAutomationPeer.cs
- KnownBoxes.cs
- DependencyPropertyAttribute.cs
- LinkUtilities.cs
- CompareValidator.cs
- TextEditorCharacters.cs
- ScriptControlDescriptor.cs
- BehaviorEditorPart.cs
- ImportStoreException.cs
- SingleAnimationBase.cs
- RadioButton.cs
- StandardToolWindows.cs
- AvTrace.cs
- SplitterPanel.cs
- AssemblyUtil.cs
- SplineKeyFrames.cs
- WebServiceParameterData.cs
- ConditionalAttribute.cs
- DisposableCollectionWrapper.cs
- WpfKnownType.cs
- HandlerBase.cs
- WindowsListViewGroup.cs
- SqlFunctionAttribute.cs
- wmiprovider.cs
- UnionCodeGroup.cs
- BamlCollectionHolder.cs
- NTAccount.cs
- DataSourceProvider.cs
- EventLogInternal.cs
- ExpressionConverter.cs
- DynamicActivityProperty.cs
- ObjectViewQueryResultData.cs
- DesignerLinkAdapter.cs
- ParagraphResult.cs
- MediaElement.cs
- SerializableAttribute.cs
- RegexStringValidator.cs
- FormViewDeleteEventArgs.cs
- ChildrenQuery.cs
- NetPeerTcpBindingElement.cs
- WindowsStatic.cs
- WebConfigurationHost.cs
- PtsHelper.cs
- LinqDataSourceInsertEventArgs.cs
- BlockUIContainer.cs
- WmfPlaceableFileHeader.cs
- RestClientProxyHandler.cs
- LineMetrics.cs
- Registry.cs
- JapaneseCalendar.cs
- _ScatterGatherBuffers.cs
- ObjectStateFormatter.cs
- IsolationInterop.cs
- View.cs
- EntityDataReader.cs
- ProfilePropertySettingsCollection.cs
- PageWrapper.cs
- TimeManager.cs
- PropertySegmentSerializationProvider.cs
- XmlSerializerNamespaces.cs
- XsdValidatingReader.cs
- ItemChangedEventArgs.cs
- DetailsViewUpdateEventArgs.cs
- SkewTransform.cs
- MemoryResponseElement.cs
- DataGridViewCellConverter.cs
- MenuItemCollectionEditorDialog.cs
- ColorConvertedBitmapExtension.cs
- IsolatedStorageFileStream.cs
- WebPartAuthorizationEventArgs.cs
- TraceSource.cs
- XmlLangPropertyAttribute.cs
- UrlMapping.cs
- ObservableCollection.cs
- UMPAttributes.cs
- DataGridColumnCollection.cs
- DetailsViewInsertEventArgs.cs
- PointF.cs
- RijndaelManaged.cs
- RepeaterItem.cs
- MetadataStore.cs
- Int16Storage.cs
- TypeUtil.cs
- Literal.cs
- XmlAttributeCache.cs
- DataTransferEventArgs.cs
- RenderContext.cs
- WindowProviderWrapper.cs
- KnownTypesProvider.cs
- Matrix3D.cs
- ToolStripSeparator.cs
- CompensationDesigner.cs
- cryptoapiTransform.cs
- ImageListStreamer.cs