WIA 項目のフラグおよびカテゴリの使用例
このトピックは、Windows Vista以降に該当します。
このセクションでは、Windows Vista のスキャナーとカメラの項目ツリーを、WIA 項目フラグと WIA カテゴリと共に示します。 図は、Windows Vista 以降のカメラ項目ツリーとスキャナー項目ツリーの外観を示しています。 カメラ項目ツリーとスキャナー項目ツリーの両方の図が 2 つあります。 いずれも、最初の図は必要な WIA 項目フラグを示し、2 番目の図は、どの WIA カテゴリが使用されているかを示しています。 このコード例は、フラグとカテゴリの組み合わせを使用するためにアプリケーションが実行する操作の例です。
次の図は、カメラ項目ツリー、および設定する必要がある WIA_ITEM_FLAGS プロパティのフラグを示しています。
前の図では、左側のツリーはカメラ項目ツリーを表しています。 右側の吹き出しには、該当のデバイスで必要となる WIA 項目フラグを示しています。
次の図は、カメラ項目ツリー、および設定する必要がある WIA_IPA_ITEM_CATEGORY プロパティのカテゴリを示しています。
前の図では、左側のツリーはカメラ項目ツリーを表しています。 右側の吹き出しには、該当のデバイスで使用する必要があるカテゴリを示しています。
次の図は、ドキュメント フィーダーおよびフィルム スキャナーを備えたスキャナーの項目ツリー、および設定する必要がある WIA_ITEM_FLAGS プロパティのフラグを示しています。
前の図では、左側のツリーはスキャナー項目ツリーを表しています。 右側の吹き出しには、該当のデバイスで必要となる WIA 項目フラグを示しています。
次の図は、スキャナーの項目ツリー、および設定する必要がある WIA_IPA_ITEM_CATEGORY プロパティのカテゴリを示しています。
前の図では、左側のツリーはスキャナー項目ツリーを表しています。 右側の吹き出しには、該当のデバイスで設定する必要がある WIA_IPA_ITEM_CATEGORY プロパティのカテゴリが含まれています。
WIA で定義されているすべてのカテゴリの全一覧、および各カテゴリの有効な WIA 項目フラグに関する情報は、WIA_IPA_ITEM_CATEGORY を参照してください。
WIA 項目フラグの全一覧は、WIA_IPA_ITEM_FLAGS を参照してください。
次のコード例は、アプリケーションが WIA 項目ツリーで見つかった WIA 項目を分類するに当たり、WIA_IPA_ITEM_FLAGSプロパティとWIA_IPA_ITEM_CATEGORY プロパティの組み合わせを使用する方法を示しています。
HRESULT hr = S_OK;
PROPSPEC ps[2] = {{PRSPEC_PROPID,WIA_IPA_ITEM_FLAGS},
{PRSPEC_PROPID, WIA_IPA_ITEM_CATEGORY}};
PROPVARIANT pv[2] = {0};
hr = pIWiaPropertyStorage->ReadMultiple(2, ps, pv);
if (hr == S_OK)
{
if (pv[0].lVal & WiaItemTypeProgrammableDataSource)
{
// Item is a programmable data source.
}
else
{
// Item is NOT a programmable data source and there must be
// some data associated with the device, or a folder.
// Use the WIA item flags to further classify the item.
if (pv[0].lVal & WiaItemTypeImage)
{
// Item represents image data.
}
if (pv[0].lVal & WiaItemTypeAudio)
{
// Item represents audio data.
}
if (pv[0].lVal & WiaItemTypeVideo)
{
// Item represents video data.
}
if (pv[0].lVal & WiaItemTypeDocument)
{
// Item represents document data.
}
}
// Read the category to properly use the item.
switch(pv[1].lVal)
{
case WIA_CATEGORY_FINISHED_FILE:
// Item is a finished file item.
break;
case WIA_CATEGORY_FLATBED:
// Item is a flatbed scanner item.
break;
case WIA_CATEGORY_FILM:
// Item is a film scanning item.
break;
case WIA_CATEGORY_FEEDER:
// Item is a document feeder scanner item.
break;
default:
// Item is not a WIA-defined item (possibly vendor specific?).
break;
}
...
}
...