OSFeature Class (System.Windows.Forms)

Switch View :
ScriptFree
.NET Framework Class Library
OSFeature Class

Provides operating-system specific feature queries.

Inheritance Hierarchy

System.Object
  System.Windows.Forms.FeatureSupport
    System.Windows.Forms.OSFeature

Namespace:  System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)
Syntax

Visual Basic
Public Class OSFeature _
	Inherits FeatureSupport
C#
public class OSFeature : FeatureSupport
Visual C++
public ref class OSFeature : public FeatureSupport
F#
type OSFeature =  
    class
        inherit FeatureSupport
    end

The OSFeature type exposes the following members.

Constructors

  Name Description
Protected method OSFeature Infrastructure. Initializes a new instance of the OSFeature class.
Top
Properties

  Name Description
Public property Static member Feature Gets a static instance of the OSFeature class to use for feature queries. This property is read-only.
Top
Methods

  Name Description
Public method Equals(Object) Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected method Finalize Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public method GetHashCode Serves as a hash function for a particular type. (Inherited from Object.)
Public method GetType Gets the Type of the current instance. (Inherited from Object.)
Public method GetVersionPresent Retrieves the version of the specified feature currently available on the system. (Overrides FeatureSupport.GetVersionPresent(Object).)
Public method IsPresent(Object) Determines whether any version of the specified feature is installed in the system. (Inherited from FeatureSupport.)
Public method Static member IsPresent(SystemParameter) Retrieves a value indicating whether the operating system supports the specified feature or metric.
Public method IsPresent(Object, Version) Determines whether the specified or newer version of the specified feature is installed in the system. (Inherited from FeatureSupport.)
Protected method MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
Public method ToString Returns a string that represents the current object. (Inherited from Object.)
Top
Fields

  Name Description
Public field Static member LayeredWindows Represents the layered, top-level windows feature. This field is read-only.
Public field Static member Themes Represents the operating system themes feature. This field is read-only.
Top
Remarks

Use the static instance of this class provided in the Feature property to query for operating system features. You cannot create an instance of this class.

To determine the version of a feature, call the GetVersionPresent method. To determine if a feature or a specific version is present, call the IsPresent method and specify the feature to look for with the feature identifiers provided in this class.

Examples

The following example uses OSFeature to query the operating system to determine if the LayeredWindows feature is installed. The example presents two different ways of checking to see whether the feature is present. In the first method, myVersion is checked to see if it is null. If the version is null, the feature is not installed. In the second method, the example calls the base class method IsPresent to see if the feature is installed. The results are displayed in a text box.

This code assumes textBox1 has been created and placed on a form.

Visual Basic

 Private Sub LayeredWindows()
     ' Gets the version of the layered windows feature.
     Dim myVersion As Version = _
        OSFeature.Feature.GetVersionPresent(OSFeature.LayeredWindows)

     ' Prints whether the feature is available.
     If (myVersion IsNot Nothing) Then
         textBox1.Text = "Layered windows feature is installed." & _
            ControlChars.CrLf
     Else
         textBox1.Text = "Layered windows feature is not installed." & _
            ControlChars.CrLf
     End If 
     'This is an alternate way to check whether a feature is present.
     If OSFeature.Feature.IsPresent(OSFeature.LayeredWindows) Then
         textBox1.Text &= "Again, layered windows feature is installed."
     Else
         textBox1.Text &= "Again, layered windows feature is not installed."
     End If
 End Sub



C#

private void LayeredWindows() {
   // Gets the version of the layered windows feature.
   Version myVersion = OSFeature.Feature.GetVersionPresent(OSFeature.LayeredWindows);

   // Prints whether the feature is available.
   if (myVersion != null)
      textBox1.Text = "Layered windows feature is installed." + '\n';
   else
      textBox1.Text = "Layered windows feature is not installed." + '\n';

   // This is an alternate way to check whether a feature is present.
   if (OSFeature.Feature.IsPresent(OSFeature.LayeredWindows))
      textBox1.Text += "Again, layered windows feature is installed.";
   else
      textBox1.Text += "Again, layered windows feature is not installed.";
}



Visual C++

private:
   void LayeredWindows()
   {
      // Gets the version of the layered windows feature.
      Version^ myVersion = OSFeature::Feature->GetVersionPresent(
         OSFeature::LayeredWindows );

      // Prints whether the feature is available.
      if ( myVersion != nullptr )
      {
         textBox1->Text = "Layered windows feature is installed.\n";
      }
      else
      {
         textBox1->Text = "Layered windows feature is not installed.\n";
      }


      // This is an alternate way to check whether a feature is present.
      if ( OSFeature::Feature->IsPresent( OSFeature::LayeredWindows ) )
      {
         textBox1->Text = String::Concat( textBox1->Text,
            "Again, layered windows feature is installed." );
      }
      else
      {
         textBox1->Text = String::Concat( textBox1->Text,
            "Again, layered windows feature is not installed." );
      }
   }


Version Information

.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
Platforms

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
See Also

Reference