DCAMprop DLL
VCD プロパティ技術関連項目>VCDプロパティを使ってスペシャルプロパティにアクセスし調整することができます。ここではそれらDCAM Prop DLLの関数やプロシージャの代わりとなるものに関して説明します。
IsPhysicalUnits%%%, SetPhysicalUnits%%%
もし、物理単位機能がプロパティ%%%において支援されていれば, VCD プロパティはマップストリングインターフェース ( IVCDMapStringsPropertyクラスライブラリリファレンス>クラス>IVCDMapStringsProperty )を提供します。特定のデバイスには特別にドライバをセットアップして物理単位をサポートできるようにする必要があります。詳細についてはデバイスのマニュアルをご参照ください。”absolute value(絶対値)” ( IVCDAbsoluteValuePropertyクラスライブラリリファレンス>クラス>IVCDAbsoluteValueProperty )という新しいインターフェースが 使用できるようになっており、これはマップストリングインターフェースの物理単位のように値に意味を持たせるものです。また高い解像度にも対応しています。サポートしているのであれば絶対値インターフェースを使用することが推奨されます。
IsWhiteBalance%%%, GetWhiteBalace%%%, SetWhiteBalance%%%
基本的にこれらの関数を扱うのには2つ方法があります。ひとつはCSimplePropertyAccessクラスライブラリリファレンス>ヘルパークラス>CSimplePropertyAccessクラスを利用することです。このクラスの使い方に関しては ユーザーズガイドのUsing the VCD Simple Property Classプログラマーズガイド>VCD Propertiesの基本的な使用法において説明しています。そのヘルパークラスはプロパティ値の設定、取得をするためのメソッドと特定のプロパティが利用可能かどうかをチェックするメソッドを提供します。このヘルパークラスのメソッドには全てプロパティを特定するためのIDが必要となります。 "WhiteBalanceBlue" や "WhiteBalanceRed"のIDはそれぞれVCDElement_WhiteBalanceBlue、 VCDElement_WhiteBalanceRedとなります。これについての詳細はCSimplePropertyAccessクラスライブラリリファレンス>ヘルパークラス>CSimplePropertyAccessクラスを参照ください。
もう一つの方法は新しいVCDプロパティを直接使うことです。ユーザーズガイドのVCDプロパティの基本機能プログラマーズガイド>VCD Propertiesの基本的な使用法、 VCDプロパティの一覧を表示させるプログラマーズガイド>VCD Propertiesの一覧を表示させるにてその詳細を説明しています。新しいVCDプロパティを使う際には、それらがどのように構成されているのかを理解することが重要です。IVCDPropertyItemクラスライブラリリファレンス>クラス>IVCDPropertyItems、 IVCDPropertyItemクラスライブラリリファレンス>クラス>IVCDPropertyItems 、 IVCDPropertyItemクラスライブラリリファレンス>クラス>IVCDPropertyItemsというそれぞれのアイテムが1つ以上のエレメント(要素)を持ち、そしてそのエレメントは1つ以上のインターフェースを持っています。そのインターフェースは関連するプロパティ要素の変更を可能にします。"WhiteBalance%%%"が使えるかどうかを確認するためには、VCDID_WhiteBalanceとVCDElement_WhiteBalance%%%をパラメータとして IVCDPropertyItems::findElementクラスライブラリリファレンス>クラス>IVCDPropertyItems>IVCDPropertyItems::findElement Methodメソッドを使います。VCDID_WhiteBalanceはプロパティ項目を表し、 VCDElement_WhiteBalance%%%はエレメント "WhiteBalanceRed" もしくは "WhiteBalanceBlue"を表します。もしそのプロパティがサポートされているのであれば戻り値は各要素を返します。そうでない場合には, 0が返されます。
"WhiteBalance%%%"を取得もしくは設定する場合、
IVCDPropertyItems::findInterfaceクラスライブラリリファレンス>クラス>IVCDPropertyItems>IVCDPropertyItems::findInterface Method、IVCDPropertyElement::getInterfaceクラスライブラリリファレンス>クラス>IVCDPropertyElement>IVCDPropertyElement::getInterface Method、IVCDPropertyElement::getInterfacePtrクラスライブラリリファレンス>クラス>IVCDPropertyItems>IVCDPropertyElement::getInterfacePtr Methodのいずれかのメソッドで適切なインターフェースを取得してください。そうすればそれのメソッドを使ってプロパティの調整ができるようになります。詳細はIVCDPropertyInterfaceクラスライブラリリファレンス>クラス>IVCDPropertyInterfaceをご覧ください。
// サポートされているプロパティ項目の取得
tIVCDPropertyItemsPtr pItems = m_Grabber.getAvailableVCDProperties();
// WhiteBalanceRed用のレンジインターフェースの呼び出し
tIVCDRangePropertyPtr pRange = 0;
if ( pItems->findInterfacePtr( VCDID_WhiteBalance, VCDElement_WhiteBalanceRed, pRange ) != 0 )
{
// WhiteBalanceRedプロパティの値でスライダーm_sldWhiteBalanceRedを初期化
m_sldWhiteBalanceRed.SetRange( pRange->getRangeMin(), pRange->getRangeMax() );
m_sldWhiteBalanceRed.SetPos( pRange->getValue() );
m_sldWhiteBalanceRed.EnableWindow();
}
else
{
m_sldWhiteBalanceRed.EnableWindow( FALSE );
}
IsHorizontalFlipAvailable, GetHorizontalFlip, SetHorizontalFlip
水平反転が使用できるかできるかどうかはGrabber::isFlipHAvailableクラスライブラリリファレンス>クラス>Grabber>Grabber::isFlipHAvailable Methodメソッドを使ってチェックできます。水平反転の取得、設定にはGrabber::getFlipHクラスライブラリリファレンス>クラス>Grabber>Grabber::getFlipH MethodとGrabber::setFlipHクラスライブラリリファレンス>クラス>Grabber>Grabber::setFlipH Methodメソッドを使用します。