Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- HostedController.cs
- WorkflowMarkupSerializer.cs
- XmlUnspecifiedAttribute.cs
- ExpressionVisitorHelpers.cs
- TreeIterators.cs
- ToolStripItemClickedEventArgs.cs
- DataControlFieldHeaderCell.cs
- StorageAssociationTypeMapping.cs
- JavaScriptSerializer.cs
- DispatcherTimer.cs
- TypeInitializationException.cs
- FontFamily.cs
- CreateRefExpr.cs
- MarshalByRefObject.cs
- ApplicationFileParser.cs
- WorkflowView.cs
- ExpiredSecurityTokenException.cs
- NativeRightsManagementAPIsStructures.cs
- ByteViewer.cs
- BitmapDecoder.cs
- GroupLabel.cs
- Style.cs
- RequestQueue.cs
- ServiceModelTimeSpanValidator.cs
- PerformanceCounter.cs
- BrowserCapabilitiesFactoryBase.cs
- RequestQueue.cs
- CultureTable.cs
- controlskin.cs
- InternalRelationshipCollection.cs
- ApplicationDirectory.cs
- DSASignatureFormatter.cs
- MiniLockedBorderGlyph.cs
- LazyTextWriterCreator.cs
- CompressEmulationStream.cs
- IntSecurity.cs
- DataRecord.cs
- QueryAccessibilityHelpEvent.cs
- RangeBaseAutomationPeer.cs
- Binding.cs
- DesignColumnCollection.cs
- FileDialogPermission.cs
- SocketStream.cs
- GraphicsPath.cs
- AdCreatedEventArgs.cs
- TextureBrush.cs
- TextBox.cs
- AutomationPatternInfo.cs
- TypeBuilderInstantiation.cs
- TraceSource.cs
- TimerEventSubscription.cs
- StylusOverProperty.cs
- ModelEditingScope.cs
- FontFaceLayoutInfo.cs
- IPGlobalProperties.cs
- LogicalExpressionEditor.cs
- RawStylusInput.cs
- AutoGeneratedField.cs
- CqlLexerHelpers.cs
- TableLayoutStyle.cs
- WebPartUtil.cs
- HitTestParameters3D.cs
- StateInitializationDesigner.cs
- BehaviorEditorPart.cs
- Constraint.cs
- Clipboard.cs
- OpenTypeLayoutCache.cs
- TabletCollection.cs
- DirectoryLocalQuery.cs
- BitmapScalingModeValidation.cs
- WindowsBrush.cs
- SettingsPropertyWrongTypeException.cs
- TextParaClient.cs
- SessionIDManager.cs
- PermissionSetTriple.cs
- Code.cs
- Calendar.cs
- StorageEntityContainerMapping.cs
- SafeProcessHandle.cs
- VectorValueSerializer.cs
- _LocalDataStoreMgr.cs
- RemotingConfigParser.cs
- WebPartConnectVerb.cs
- ComponentSerializationService.cs
- DataComponentGenerator.cs
- RuntimeEnvironment.cs
- BorderGapMaskConverter.cs
- SortedSet.cs
- GroupByExpressionRewriter.cs
- _FtpDataStream.cs
- ActivityStatusChangeEventArgs.cs
- _NetworkingPerfCounters.cs
- InfoCardAsymmetricCrypto.cs
- XPathScanner.cs
- CodeTryCatchFinallyStatement.cs
- HandleCollector.cs
- ResourceReferenceKeyNotFoundException.cs
- Bitmap.cs
- MachinePropertyVariants.cs
- Translator.cs