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));