次の方法で共有


DVビデオカメラ用外部デバイスインタフェース

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayerIMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]

WDM ビデオ キャプチャ フィルターは、ビデオカメラを制御するための 3 つのインターフェイスを公開します。

Label
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;  // Pointer to the capture filter.

// Create an instance of the capture filter (not shown).

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

DVビデオカメラの制御