Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- IfAction.cs
- ConfigXmlSignificantWhitespace.cs
- InteropBitmapSource.cs
- DesignerOptionService.cs
- Baml2006SchemaContext.cs
- InvokeBinder.cs
- ChtmlTextWriter.cs
- SqlRowUpdatedEvent.cs
- TreeView.cs
- ProxyHwnd.cs
- CreateBookmarkScope.cs
- FormatControl.cs
- UndirectedGraph.cs
- SecurityContextKeyIdentifierClause.cs
- DataControlFieldsEditor.cs
- AnnotationStore.cs
- OleDbSchemaGuid.cs
- XPathChildIterator.cs
- TextRunCacheImp.cs
- ImageCodecInfo.cs
- DataListItem.cs
- ExtendedProtectionPolicyTypeConverter.cs
- NamespaceList.cs
- ProcessManager.cs
- AuthenticationModuleElementCollection.cs
- Inflater.cs
- OnOperation.cs
- PngBitmapDecoder.cs
- SupportsEventValidationAttribute.cs
- GenericEnumConverter.cs
- SQLGuidStorage.cs
- TemplateXamlTreeBuilder.cs
- CodeGenerator.cs
- ADMembershipProvider.cs
- OleStrCAMarshaler.cs
- CompilerResults.cs
- Utils.cs
- SqlSupersetValidator.cs
- ValidatorCompatibilityHelper.cs
- DesignerVerbToolStripMenuItem.cs
- FormatConvertedBitmap.cs
- ConfigXmlElement.cs
- ExecutionPropertyManager.cs
- InstanceData.cs
- Avt.cs
- ConvertersCollection.cs
- DomainUpDown.cs
- PeerTransportSecuritySettings.cs
- Translator.cs
- ThreadAttributes.cs
- OperationParameterInfoCollection.cs
- FixedPage.cs
- ServiceBusyException.cs
- entityreference_tresulttype.cs
- Item.cs
- ServiceOperationListItemList.cs
- SqlBooleanizer.cs
- XomlCompilerResults.cs
- DataControlField.cs
- ExpressionsCollectionEditor.cs
- ContentOperations.cs
- SelectionRangeConverter.cs
- Privilege.cs
- XmlAnyElementAttribute.cs
- TextServicesDisplayAttribute.cs
- LazyTextWriterCreator.cs
- TemplateComponentConnector.cs
- Pens.cs
- TextRenderer.cs
- PackagePart.cs
- DbConnectionPoolGroup.cs
- ThreadInterruptedException.cs
- hebrewshape.cs
- HeaderCollection.cs
- SafeUserTokenHandle.cs
- NegotiationTokenAuthenticator.cs
- ImageDrawing.cs
- SoapCodeExporter.cs
- DelayedRegex.cs
- DictionaryTraceRecord.cs
- RoleGroup.cs
- TimeoutException.cs
- ObjectManager.cs
- EpmSourcePathSegment.cs
- TableRowCollection.cs
- _SslStream.cs
- ObjectDataProvider.cs
- ScrollBar.cs
- DifferencingCollection.cs
- NamespaceEmitter.cs
- IImplicitResourceProvider.cs
- SelectionGlyph.cs
- Transform3DGroup.cs
- GridViewColumnCollection.cs
- EmptyStringExpandableObjectConverter.cs
- MultiplexingFormatMapping.cs
- MatrixUtil.cs
- StylusEventArgs.cs
- TreeViewImageIndexConverter.cs
- CodeTypeReference.cs