次の方法で共有


DV カムコーダ用の外部デバイス インターフェイス

WDM ビデオ キャプチャ フィルタは、カムコーダの制御用に以下の 3 つのインターフェイスを公開している。

IAMExtDevice 外部デバイス制御用の基本インターフェイス。
IAMExtTransport VCR 機能を制御する。
IAMTimecodeReader デバイスからタイムコードを読み取る。

注 : MSDV カムコーダ ドライバと共にこれらのインターフェイスを使う場合は、ヘッダー ファイル XPrtDefs.h をプロジェクトに含める。

キャプチャ デバイスを選択し、キャプチャ フィルタのインスタンスを生成した後、フィルタにこれらのインターフェイスの有無を問い合わせる。以下の例では、インターフェイス ポインタと共に、各インターフェイスの利用可能性を示すブール型の値を保持するカスタム構造体を宣言している。

struct _MyDevCap
{
    IAMExtDevice       *pDevice;
    IAMExtTransport    *pTransport;
    IAMTimecodeReader  *pTimecode;
    BOOL                bHasDevice;
    BOOL                bHasTransport;
    BOOL                bHasTimecode;
} MyDevCap;

HRESULT hr;
IBaseFilter *pDVCam;  // キャプチャ フィルタへのポインタ。

// キャプチャ フィルタのインスタンスを作成する (省略)。

hr = pDVCam->QueryInterface(IID_IAMExtDevice, (void **)&MyDevCap.pDevice);
MyDevCap.bHasDevice = (SUCCEEDED(hr));

hr = pDVCam->QueryInterface(IID_IAMExtTransport, (void **)&MyDevCap.pTransport);
MyDevCap.bHasTransport = (SUCCEEDED(hr));

hr = pDVCam->QueryInterface(IID_IAMTimecodeReader, (void **)&MyDevCap.pTimecode);
MyDevCap.bHasTimecode = (SUCCEEDED(hr));