プロパティ情報の取得

ここでは選択したデバイスがサポートするプロパティ情報の取得の仕方について説明します。

このプログラムはディレクトリ%TOPLEVEL%\Samples\VCx\SimplePropertyにございます。
たとえばVC2010++では%TOPLEVEL%\Samples\VC10となり、VC8では%TOPLEVEL%\Samples\VC8となります。
プログラムを実行するため、ディレクトリ内のソリューションファイルSimpleProperty.slnを開き、メニューからビルド -> ビルド SimplePropertyと選択します。
そこからデバッグ -> スタートと選択することでプログラムを実行することができます。

プログラムがGrabber::showDevicePageクラスライブラリリファレンス>クラス>Grabber>Grabber::showDevicePage Methodを使ってユーザーにデバイスを選択させます。

デバイスプロパティにアクセスするために%TOPLEVEL%\Samples\VC71\Commonディレクトリ内のCSimplePropertyAccessクラスライブラリリファレンス>ヘルパークラス>CSimplePropertyAccess>CSimplePropertyAccessクラスが使われます。

CSimplePropertyAccess prop( grabber.getAvailableVCDProperties() );

if( prop.isAvailable( VCDID_Brightness ) )
{
  std::cout << "Brightness property available" << std::endl;

  if( prop.getAuto( VCDID_Brightness ) )
  {
    std::cout << "Brightness auto enabled" << std::endl;
  }
  else
  {
    std::cout << "Brightness auto disabled" << std::endl;

    long val = prop.getValue( VCDID_Brightness );
    std::cout << "Current Brightness value: " << val << std::endl;

    long min = prop.getRangeMin( VCDID_Brightness );
    long max = prop.getRangeMax( VCDID_Brightness );
    std::cout << "Brightness Range: [" << min << ".." << max << "]" << std::endl;
  }

VCDID_Brightnessクラスライブラリリファレンス>定数>tandard Property Item GUIDs (標準プロパティ項目GUID)をパラメータとしてCSimplePropertyAccess::isAvailableクラスライブラリリファレンス>ヘルパークラス>CSimplePropertyAccess>CSimplePropertyAccess::isAvailable Methodを呼び出すことで、プログラムはデバイスが "brightness" プロパティをサポートしているかをチェックします。

サポートされている場合、CSimplePropertyAccess::getAutoクラスライブラリリファレンス>ヘルパークラス>CSimplePropertyAccess>CSimplePropertyAccess::getAuto Methodが呼び出されその設定が自動かどうかをチェックします。

"brightness"プロパティがオート設定でなかった場合、 CSimplePropertyAccess::getValueクラスライブラリリファレンス>ヘルパークラス>CSimplePropertyAccess>CSimplePropertyAccess::getValue Methodが呼び出され現在の"brightness "の値を取得します。