DVビデオカメラ用外部デバイスインタフェース
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/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));
関連トピック