다음을 통해 공유


FeatureSupport 클래스

현재 시스템에서 기능 정보를 검색하는 데 사용되는 static 메서드를 제공합니다.

네임스페이스: System.Windows.Forms
어셈블리: System.Windows.Forms(system.windows.forms.dll)

구문

‘선언
Public MustInherit Class FeatureSupport
    Implements IFeatureSupport
‘사용 방법
Dim instance As FeatureSupport
public abstract class FeatureSupport : IFeatureSupport
public ref class FeatureSupport abstract : IFeatureSupport
public abstract class FeatureSupport implements IFeatureSupport
public abstract class FeatureSupport implements IFeatureSupport

설명

기능 정보를 쿼리할 클래스에서 IFeatureSupport 인터페이스를 구현하는 경우에 이 클래스의 static 메서드를 사용합니다. 그렇지 않은 경우 FeatureSupport에서 상속하여 사용자가 직접 구현합니다. 이 클래스의 구현에 대한 자세한 내용은 OSFeature를 참조하십시오.

기능에 대한 버전 번호를 가져오려면 GetVersionPresent를 호출합니다. 특정 기능 또는 기능의 버전이 설치되어 있는지 확인하려면 IsPresent를 호출합니다.

상속자 참고 사항 FeatureSupport에서 상속할 때 GetVersionPresent 메서드를 재정의해야 합니다. 이 메서드를 재정의하는 경우 feature 매개 변수에 사용하는 클래스는 IsPresent 메서드에서 이 매개 변수에 사용하는 클래스와 같아야 합니다. 두 feature 매개 변수가 서로 다르면 IsPresent도 재정의해야 합니다.

예제

다음 예제에서는 FeatureSupportOSFeature 구현을 사용하고 LayeredWindows 기능을 조회합니다. 버전이 Null 참조(Visual Basic의 경우 Nothing)인지 확인하여 해당 기능이 있는지 여부를 알아냅니다. 결과가 텍스트 상자에 표시됩니다. 이 코드에서는 textBox1이 만들어진 후 폼에 배치되었다고 가정합니다.

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 Not (myVersion Is 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
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.";
}
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." );
      }
   }
private void LayeredWindows()
{
    // Gets the version of the layered windows feature.
    Version myVersion = OSFeature.get_Feature().GetVersionPresent
        (OSFeature.LayeredWindows);

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

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

상속 계층 구조

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

스레드로부터의 안전성

이 형식의 모든 public static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.

플랫폼

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

2.0, 1.1, 1.0에서 지원

참고 항목

참조

FeatureSupport 멤버
System.Windows.Forms 네임스페이스
OSFeature