Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / WinForms / Managed / System / WinForms / OSFeature.cs / 1 / 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.
//------------------------------------------------------------------------------
//
// 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
- TokenBasedSetEnumerator.cs
- StrokeFIndices.cs
- ReadOnlyActivityGlyph.cs
- TimeoutHelper.cs
- QilExpression.cs
- TextMetrics.cs
- SqlDataSourceCommandParser.cs
- KoreanCalendar.cs
- ToolStripSeparator.cs
- TextWriterTraceListener.cs
- DateTimeOffset.cs
- ConnectionsZone.cs
- FocusWithinProperty.cs
- Int16KeyFrameCollection.cs
- SafeNativeMethods.cs
- LockedBorderGlyph.cs
- SqlError.cs
- BamlStream.cs
- DesignerContextDescriptor.cs
- ImageAnimator.cs
- CryptoHelper.cs
- FormViewRow.cs
- MimeBasePart.cs
- VSWCFServiceContractGenerator.cs
- MappingItemCollection.cs
- XmlSchemaGroup.cs
- HtmlHead.cs
- SettingsPropertyCollection.cs
- TextViewBase.cs
- PageContentCollection.cs
- XmlSubtreeReader.cs
- OverrideMode.cs
- ControlPropertyNameConverter.cs
- WriteableOnDemandPackagePart.cs
- HttpProfileBase.cs
- AppDomainUnloadedException.cs
- ScriptHandlerFactory.cs
- RadioButton.cs
- UrlMappingsModule.cs
- SafeViewOfFileHandle.cs
- DataGridViewRowHeightInfoNeededEventArgs.cs
- XmlBoundElement.cs
- ControlCachePolicy.cs
- AsyncStreamReader.cs
- Thickness.cs
- FixUpCollection.cs
- GroupByExpressionRewriter.cs
- DbProviderFactory.cs
- HwndMouseInputProvider.cs
- OleDbPropertySetGuid.cs
- PointAnimationClockResource.cs
- RtfToken.cs
- TransformValueSerializer.cs
- EntityViewGenerationAttribute.cs
- Matrix.cs
- recordstate.cs
- XPathEmptyIterator.cs
- RadialGradientBrush.cs
- FileEnumerator.cs
- ItemTypeToolStripMenuItem.cs
- TextPointerBase.cs
- HttpRequest.cs
- ApplicationException.cs
- LogicalTreeHelper.cs
- TreeNodeCollection.cs
- ManagementInstaller.cs
- ProcessManager.cs
- UnitySerializationHolder.cs
- AutomationPropertyInfo.cs
- ResourcesGenerator.cs
- CookieHandler.cs
- ping.cs
- TabOrder.cs
- Interfaces.cs
- ConstructorNeedsTagAttribute.cs
- Ref.cs
- ScriptHandlerFactory.cs
- PropertyStore.cs
- LinqDataSourceStatusEventArgs.cs
- DataObject.cs
- TrustManagerPromptUI.cs
- ContractListAdapter.cs
- SimpleRecyclingCache.cs
- OperationValidationEventArgs.cs
- WebPartDescription.cs
- FileStream.cs
- DecimalAnimationBase.cs
- EventHandlerList.cs
- InstanceCollisionException.cs
- InvalidComObjectException.cs
- coordinator.cs
- SortQuery.cs
- NameNode.cs
- PassportPrincipal.cs
- ContainerParagraph.cs
- Operator.cs
- TaskScheduler.cs
- DetailsViewDeleteEventArgs.cs
- SvcMapFileSerializer.cs
- FloaterBaseParagraph.cs