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
- TdsEnums.cs
- InternalPolicyElement.cs
- SynchronizingStream.cs
- KeyedHashAlgorithm.cs
- OpCodes.cs
- WindowsFormsHostPropertyMap.cs
- ChangeProcessor.cs
- ScrollContentPresenter.cs
- dsa.cs
- XamlParser.cs
- HierarchicalDataSourceIDConverter.cs
- DataGridViewToolTip.cs
- ZipIOLocalFileDataDescriptor.cs
- SessionStateContainer.cs
- Int32Converter.cs
- ProxyHelper.cs
- ScrollEventArgs.cs
- ImageSource.cs
- TemplatedAdorner.cs
- UntypedNullExpression.cs
- XamlContextStack.cs
- CurrencyWrapper.cs
- DataKeyArray.cs
- Size3D.cs
- VariantWrapper.cs
- LongValidator.cs
- MetadataProperty.cs
- shaperfactoryquerycacheentry.cs
- NetTcpSecurity.cs
- MarkedHighlightComponent.cs
- UserControlBuildProvider.cs
- XmlSchemaAttributeGroupRef.cs
- FixedPageAutomationPeer.cs
- SecureStringHasher.cs
- BamlRecords.cs
- MulticastIPAddressInformationCollection.cs
- Utils.cs
- SignatureResourcePool.cs
- ListViewTableCell.cs
- SoapRpcMethodAttribute.cs
- _FtpControlStream.cs
- CodeEntryPointMethod.cs
- DuplicateDetector.cs
- CharStorage.cs
- sqlnorm.cs
- ScanQueryOperator.cs
- XomlCompilerResults.cs
- ToolStripContentPanelRenderEventArgs.cs
- ObjectDataSourceStatusEventArgs.cs
- InternalBufferOverflowException.cs
- PackageDigitalSignature.cs
- MediaElement.cs
- TimeSpanValidatorAttribute.cs
- SecureStringHasher.cs
- LockCookie.cs
- ByteAnimationUsingKeyFrames.cs
- VisualBasicReference.cs
- LinqToSqlWrapper.cs
- XmlQueryCardinality.cs
- BuildResult.cs
- JpegBitmapDecoder.cs
- TabletDeviceInfo.cs
- UseLicense.cs
- IssuanceTokenProviderState.cs
- FontCollection.cs
- Token.cs
- Parser.cs
- SimpleLine.cs
- QilLiteral.cs
- cookieexception.cs
- ConnectivityStatus.cs
- COM2PropertyBuilderUITypeEditor.cs
- AgileSafeNativeMemoryHandle.cs
- XhtmlConformanceSection.cs
- ResourceDictionary.cs
- ToolStripItemTextRenderEventArgs.cs
- MessagePartDescription.cs
- SignatureDescription.cs
- WebBrowserNavigatedEventHandler.cs
- XmlSchemaGroupRef.cs
- BooleanKeyFrameCollection.cs
- DoubleCollection.cs
- LinqTreeNodeEvaluator.cs
- AxisAngleRotation3D.cs
- CqlParser.cs
- DataGridViewCellValidatingEventArgs.cs
- Calendar.cs
- HostExecutionContextManager.cs
- ContractInferenceHelper.cs
- FlowLayout.cs
- IOException.cs
- StringUtil.cs
- IdentitySection.cs
- DataTableClearEvent.cs
- DataGridRelationshipRow.cs
- HMACRIPEMD160.cs
- GlyphRunDrawing.cs
- Inline.cs
- SelfIssuedTokenFactoryCredential.cs
- DockAndAnchorLayout.cs