Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Task.cs
- RemoteX509Token.cs
- ProfileEventArgs.cs
- DataServiceHostWrapper.cs
- CompilerCollection.cs
- XmlTextReaderImplHelpers.cs
- ConfigurationStrings.cs
- XmlReader.cs
- DataGridColumnCollection.cs
- HyperLinkField.cs
- MouseWheelEventArgs.cs
- GridViewRowEventArgs.cs
- LogSwitch.cs
- DefaultTextStore.cs
- ErrorFormatterPage.cs
- TrailingSpaceComparer.cs
- URL.cs
- COAUTHINFO.cs
- PartitionedDataSource.cs
- XmlBinaryWriterSession.cs
- ShaderEffect.cs
- ErrorFormatterPage.cs
- TypeForwardedFromAttribute.cs
- Types.cs
- IssuanceLicense.cs
- ComplexType.cs
- StackSpiller.Temps.cs
- XmlSchemaComplexContentRestriction.cs
- PropertyTab.cs
- QueryRewriter.cs
- InfiniteIntConverter.cs
- CharacterBufferReference.cs
- sortedlist.cs
- Roles.cs
- CanonicalXml.cs
- DbParameterCollectionHelper.cs
- DataTableMapping.cs
- LineServicesRun.cs
- BinaryMethodMessage.cs
- X509Certificate2.cs
- ClientReliableChannelBinder.cs
- ComPersistableTypeElementCollection.cs
- ReferenceService.cs
- DocumentSchemaValidator.cs
- Timer.cs
- ObjectViewQueryResultData.cs
- ListBindingConverter.cs
- AnonymousIdentificationModule.cs
- ImportContext.cs
- SafeProcessHandle.cs
- AppliedDeviceFiltersDialog.cs
- handlecollector.cs
- ComponentEditorPage.cs
- CalendarDataBindingHandler.cs
- FixedFlowMap.cs
- coordinatorfactory.cs
- CodeTypeParameterCollection.cs
- ConfigXmlComment.cs
- Directory.cs
- ExpressionVisitor.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- BooleanFunctions.cs
- NotSupportedException.cs
- FrugalList.cs
- CompositeDispatchFormatter.cs
- FormatConvertedBitmap.cs
- SerializerProvider.cs
- FileStream.cs
- SchemaHelper.cs
- ObservableDictionary.cs
- xmlglyphRunInfo.cs
- AsyncOperationManager.cs
- ReaderWriterLock.cs
- CircleHotSpot.cs
- HelloOperationAsyncResult.cs
- SqlGatherConsumedAliases.cs
- CodeAccessPermission.cs
- TriggerBase.cs
- TabControl.cs
- NameValueConfigurationElement.cs
- TraceListener.cs
- IriParsingElement.cs
- DataGridViewRowsAddedEventArgs.cs
- MouseActionConverter.cs
- TreeViewTemplateSelector.cs
- HatchBrush.cs
- Point3DIndependentAnimationStorage.cs
- TemplateModeChangedEventArgs.cs
- PathGeometry.cs
- SchemaImporterExtensionsSection.cs
- SystemFonts.cs
- _FtpControlStream.cs
- SqlConnectionPoolGroupProviderInfo.cs
- XmlSchemaChoice.cs
- SchemaTableOptionalColumn.cs
- TransformationRules.cs
- NewExpression.cs
- SliderAutomationPeer.cs
- PackagingUtilities.cs
- ImageCodecInfoPrivate.cs