DCAMprop DLL
Version 1.41においてスペシャルDCAM プロパティへのアクセスを提供していたDCAM Prop DLL は必要なくなり、新しい VCDプロパティ技術関連項目>VCDプロパティを使ってスペシャルプロパティにアクセスし制御することができます。ここではそれらDCAM Prop DLLの関数やプロシージャの代わりとなるものに関して説明します。
IsPhysicalUnits%%%, SetPhysicalUnits%%%
もし、物理単位機能がプロパティ%%%において支援されていれば, VCD プロパティはマップストリングインターフェース ( VCDMapStringsPropertyクラスライブラリリファレンス>クラス>VCDMapStringsProperty )を提供します。特定のデバイスには特別にドライバをセットアップして物理単位機能 をサポートできるようにすることも必要かもしれません。 詳細についてはデバイスのマニュアルをご参照ください。絶対値インターフェース ( VCDAbsoluteValuePropertyクラスライブラリリファレンス>クラス>VCDAbsoluteValueProperty )という新しいインターフェースが 使用できるようになっており、これはマップストリングインターフェースの物理単位機能のように値に意味を持たせるものです。また高い解像度にも対応しています。 サポートしているのであれば絶対値インターフェースを使用することが推奨されます。
IsWhiteBalance%%%, GetWhiteBalace%%%, SetWhiteBalance%%%
基本的にこれらの関数を扱うのには2つ方法があります。ひとつは VCDSimplePropertyクラスライブラリリファレンス>クラス>VCDSimpleProperty クラスを利用することです。このクラスの使い方に関しては ユーザーズガイドのUsing the VCD Simple Property Classプログラマーズガイド>VCDSimplePropertyを使用する において説明しています。そのヘルパークラスはプロパティ値の設定、呼び出しをするためのメソッドと特定のプロパティが利用可能かどうかをチェックするメソッドを提供します。このヘルパークラスのメソッドには全てプロパティを特定するためのIDが必要となります。
"WhiteBalanceBlue" や "WhiteBalanceRed"のIDはそれぞれVCDElement_WhiteBalanceBlue、VCDElement_WhiteBalanceRedとなります。これについての詳細はVCDSimplePropertyクラスライブラリリファレンス>クラス>VCDSimpleProperty クラスを参照ください。
もう一つの方法は新しい VCDプロパティを直接使うことです。ユーザーズガイドのVCDプロパティの基本機能プログラマーズガイド>VCD Propertiesの基本的な使用法、VCDプロパティの一覧を表示させるプログラマーズガイド>VCD Propertiesの一覧を表示させる にてその詳細を説明しています。新しいVCDプロパティを使う際には、それらがどのように構成されているのかを理解することが重要となります。VCDPropertyItemクラスライブラリリファレンス>クラス>VCDPropertyItems、VCDPropertyElementクラスライブラリリファレンス>クラス>VCDPropertyElements 、 VCDPropertyInterfaceクラスライブラリリファレンス>クラス>VCDPropertyInterfacesというそれぞれのアイテムが1つ以上のエレメント(要素)を持ち、そしてそのエレメントは1つ以上のインターフェースを持っています。そのインターフェースは関連するプロパティ要素の変更を可能にします。"WhiteBalance%%%"が使えるかどうかを確認するためには、VCDID_WhiteBalance + ":" + VCDElement_WhiteBalance%%% をパラメータとして VCDPropertyItems.FindElementクラスライブラリリファレンス>クラス>VCDPropertyItems>VCDPropertyItems.FindElement Method メソッドを 使います。VCDID_WhiteBalanceはプロパティ項目を表し、VCDElement_WhiteBalance%%%はエレメント "WhiteBalanceRed" もしくは"WhiteBalanceBlue"を表します。もしそのプロパティがサポートされているのであれば戻り値は各要素を返します。そうでない場合には、Nothingが返されます。
"WhiteBalance%%%"を取得もしくは設定する場合、VCDPropertyItems.FindInterfaceクラスライブラリリファレンス>クラス>VCDPropertyItems>VCDPropertyItems.FindInterface Method、VCDPropertyElement.FindInterfaceクラスライブラリリファレンス>クラス>VCDPropertyElement>VCDPropertyElement.FindInterface Method、VCDPropertyElements.FindInterfaceクラスライブラリリファレンス>クラス>VCDPropertyElements>VCDPropertyElements.FindInterface Method のいずれかのメソッドで適切なインターフェースを取得してください。そうすればそれのメソッドを使ってプロパティの調整ができるようになります。詳細は VCDPropertyInterfaceクラスライブラリリファレンス>クラス>VCDPropertyInterfaceをご覧ください。
' レンジインターフェースの宣言
Dim Range As ICImagingControl.VCDRangeProperty
' WhiteBalanceRed用のレンジインターフェースの呼び出し
Range = ICImagingControl1.VCDPropertyItems.FindInterface( VCDHelpers.VCDIDs.VCDID_WhiteBalance + ":" + _
VCDHelpers.VCDIDs.VCDElement_WhiteBalanceRed + ":" + _
VCDHelpers.VCDIDs.VCDInterface_Range )
' WhiteBalanceRedプロパティの値でスライダーsldWhiteBalanceRedを初期化
sldWhiteBalanceRed.Minimum = Range.RangeMin
sldWhiteBalanceRed.Maximum = Range.RangeMax
sldWhiteBalanceRed.Value = Range.Value
sldWhiteBalanceRed.Enabled = True
Else
sldWhiteBalanceRed.Enabled = False
End If
// レンジインターフェースの宣言
private ICImagingControl.VCDRangeProperty Range;
// WhiteBalanceRed用のレンジインターフェースの呼び出し
Range = (ICImagingControl.VCDRangeProperty)IcImagingControl1.VCDPropertyItems.FindInterface(
VCDHelpers.VCDIDs.VCDID_WhiteBalance + ":" +
VCDHelpers.VCDIDs.VCDElement_WhiteBalanceRed + ":" +
VCDHelpers.VCDIDs.VCDInterface_Range );
// WhiteBalanceRedプロパティの値でスライダーsldWhiteBalanceRedを初期化
if ( Range != null )
{
sldWhiteBalanceRed.Minimum = Range.RangeMin
sldWhiteBalanceRed.Maximum = Range.RangeMax
sldWhiteBalanceRed.Value = Range.Value
sldWhiteBalanceRed.Enabled = True
}
else
{
sldWhiteBalanceRed.Enabled = False
}
IsHorizontalFlipAvailable, GetHorizontalFlip, SetHorizontalFlip
水平反転が使用できるかどうかは DeviceFlipHorizontalAvailableクラスライブラリリファレンス>クラス>ICImagingControl>ICImagingControl.DeviceFlipHorizontalAvailable Property プロパティを使ってチェックできます。 水平反転の取得、設定には DeviceFlipHorizontalクラスライブラリリファレンス>クラス>ICImagingControl>ICImagingControl.DeviceFlipHorizontal Property プロパティを使います。