デバイス タイプ
キャプチャ デバイスに関する情報で最も重要なものは、デバイスが VCR 機能を持っているのか、単なるカメラなのかという情報だ。これを調べるには、値 ED_DEVCAP_DEVICE_TYPE を指定して IAMExtDevice::GetCapability メソッドを呼び出す。このメソッドが値 ED_DEVTYPE_VCR を返した場合、デバイスは VCR であり、ポーズ、停止、早送り、巻き戻しなどの機能を持っている。以下のコードは、デバイス タイプを問い合わせる方法を示したものである。
if (MyDevCap.bHasDevice)
{
LONG lDeviceType = 0;
MyDevCap.pDevice->GetCapability(ED_DEVCAP_DEVICE_TYPE, &lDeviceType, 0);
if (lDeviceType == ED_DEVTYPE_VCR)
{
// デバイスは VCR である。すべての VCR 機能を有効にする。
}
else
{
// デバイスはカメラである。
// 録画と録画ポーズを有効にする。他の機能は無効にする。
}
}
カムコーダは通常、VCR 機能とカメラ機能を切り替えることができる。カムコーダは、対応するデバイス タイプを返す。カムコーダがオフラインになった場合は、次に使用可能になったときにもう一度問い合わせる必要がある。デバイスが削除されると、フィルタ グラフ マネージャが EC_DEVICE_LOST イベントを送信する。