Click to Rate and Give Feedback
MSDN
MSDN Library
.NET Development
.NET Framework 4
Collapse All/Expand All Collapse All
.NET Framework Class Library
FeatureSupport Class

Provides static methods for retrieving feature information from the current system.

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

Namespace:  System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)
Visual Basic
Public MustInherit Class FeatureSupport _
    Implements IFeatureSupport
C#
public abstract class FeatureSupport : IFeatureSupport
Visual C++
public ref class FeatureSupport abstract : IFeatureSupport
F#
[<AbstractClass>]
type FeatureSupport =  
    class
        interface IFeatureSupport
    end

The FeatureSupport type exposes the following members.

  NameDescription
Protected methodFeatureSupportInitializes a new instance of the FeatureSupport class.
Top
  NameDescription
Public methodEquals(Object)Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodGetHashCodeServes as a hash function for a particular type. (Inherited from Object.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodGetVersionPresent(Object)When overridden in a derived class, gets the version of the specified feature that is available on the system.
Public methodStatic memberGetVersionPresent(String, String)Gets the version of the specified feature that is available on the system.
Public methodIsPresent(Object)Determines whether any version of the specified feature is installed in the system.
Public methodIsPresent(Object, Version)Determines whether the specified or newer version of the specified feature is installed in the system.
Public methodStatic memberIsPresent(String, String)Determines whether any version of the specified feature is installed in the system. This method is static.
Public methodStatic memberIsPresent(String, String, Version)Determines whether the specified or newer version of the specified feature is installed in the system. This method is static.
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)
Top

Use the static methods of this class when the classes you query for feature information implement the IFeatureSupport interface. Otherwise, inherit from FeatureSupport and provide your own implementation. For an implementation of this class, see OSFeature.

To get the version number of a feature, call GetVersionPresent. Call IsPresent to determine if a particular feature or version of a feature is installed.

Notes to Inheritors

When you inherit from FeatureSupport, you must override the GetVersionPresent method. When you override this method, check that the class that you use for the feature parameter is the same as the class used for this parameter in the IsPresent method. If the two feature parameters differ, you also must override IsPresent.

The following example uses the OSFeature implementation of FeatureSupport and queries for the LayeredWindows feature. The version is checked to see if it is nullNothingnullptra null reference (Nothing in Visual Basic), to determine whether the feature is present. The result is 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." );
      }
   }

.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

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.
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Tags What's this?: Add a tag
Community Content   What is Community Content?
Add new content RSS  Annotations
Processing
© 2012 Microsoft. All rights reserved. Terms of Use | Trademarks | Privacy Statement
Page view tracker