Code:
/ 4.0 / 4.0 / untmp / 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;
///
///
/// Provides operating-system specific feature queries.
///
public class OSFeature : FeatureSupport {
///
///
/// Represents the layered, top-level windows feature. This
/// field is read-only.
///
public static readonly object LayeredWindows = new object();
///
///
/// Determines if the OS supports themes
///
public static readonly object Themes = new object();
private static OSFeature feature = null;
private static bool themeSupportTested = false;
private static bool themeSupport = false;
///
///
///
///
/// Initializes a new instance of the class.
///
///
///
protected OSFeature() {
}
///
///
/// Represents the instance of to use for feature queries. This property is read-only.
///
public static OSFeature Feature {
get {
if (feature == null)
feature = new OSFeature();
return feature;
}
}
///
///
/// Retrieves the version of the specified feature currently available on the system.
///
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 whether SystemParameterType is supported on the Current OS version.
///
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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ParenthesizePropertyNameAttribute.cs
- ScrollableControl.cs
- ResumeStoryboard.cs
- AuthenticatingEventArgs.cs
- ParentUndoUnit.cs
- OracleCommandBuilder.cs
- tooltip.cs
- BrowserDefinition.cs
- Oci.cs
- LookupBindingPropertiesAttribute.cs
- DesignerCommandAdapter.cs
- RegexCompiler.cs
- Membership.cs
- ReferentialConstraint.cs
- XmlSchemaException.cs
- ControlBuilder.cs
- LocalizableResourceBuilder.cs
- ExceptionUtil.cs
- TdsParser.cs
- FileFormatException.cs
- RequestContextBase.cs
- DBCSCodePageEncoding.cs
- CollectionEditor.cs
- XNodeNavigator.cs
- WebPartVerbCollection.cs
- BindingValueChangedEventArgs.cs
- ByteStack.cs
- BackgroundFormatInfo.cs
- oledbmetadatacolumnnames.cs
- DetailsViewPageEventArgs.cs
- BindingMemberInfo.cs
- RangeContentEnumerator.cs
- OrderedDictionary.cs
- DataGridViewHitTestInfo.cs
- InputMethodStateTypeInfo.cs
- TemplatedControlDesigner.cs
- MemberExpression.cs
- ConnectionManagementElement.cs
- PackWebRequestFactory.cs
- FormatException.cs
- TickBar.cs
- SafeNativeMethods.cs
- SiteMapNodeItemEventArgs.cs
- glyphs.cs
- SafeNativeMethods.cs
- FastPropertyAccessor.cs
- XsdBuilder.cs
- ObjectComplexPropertyMapping.cs
- TraceData.cs
- PersonalizationEntry.cs
- DefaultHttpHandler.cs
- PolygonHotSpot.cs
- DocumentGridContextMenu.cs
- COM2ExtendedTypeConverter.cs
- SendAgentStatusRequest.cs
- OpCopier.cs
- StylusSystemGestureEventArgs.cs
- CryptoProvider.cs
- GlyphTypeface.cs
- WebMessageEncodingElement.cs
- FunctionImportMapping.ReturnTypeRenameMapping.cs
- InfoCardXmlSerializer.cs
- VisualBrush.cs
- X509Utils.cs
- DataBoundControlAdapter.cs
- SafeHandles.cs
- GradientStop.cs
- Color.cs
- RequiredFieldValidator.cs
- CharKeyFrameCollection.cs
- TransformCollection.cs
- ExtenderProvidedPropertyAttribute.cs
- DatePickerDateValidationErrorEventArgs.cs
- DataGridViewRowsAddedEventArgs.cs
- LocalizationComments.cs
- GridPatternIdentifiers.cs
- XmlSchemaComplexType.cs
- SoapAttributeAttribute.cs
- KoreanLunisolarCalendar.cs
- OdbcEnvironment.cs
- EpmSyndicationContentSerializer.cs
- TreeView.cs
- HyperLinkStyle.cs
- AuthenticationServiceManager.cs
- PointUtil.cs
- PriorityChain.cs
- CalendarAutomationPeer.cs
- StorageRoot.cs
- MimeMultiPart.cs
- ValidationError.cs
- ThrowHelper.cs
- EntityProxyFactory.cs
- ObjectToken.cs
- Item.cs
- SelectionService.cs
- AsyncDataRequest.cs
- BitmapInitialize.cs
- FatalException.cs
- CodeTypeParameterCollection.cs
- MessageHeaderT.cs