次の方法で共有


CDynamicOutputPin.StartUsingOutputPin メソッド

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

メソッドは StartUsingOutputPin 、ストリーミング操作のピンへのアクセスを取得します。

構文

virtual HRESULT StartUsingOutputPin();

パラメーター

このメソッドにはパラメーターはありません。

戻り値

HRESULT 値を返します。 次の表に示す値を指定できます。

リターン コード 説明
S_OK
成功しました。
E_UNEXPECTED
予期しないエラー。
VFW_E_STATE_CHANGED
フィルターが停止したか、ピンのフラッシュが開始されました。

解説

接続された入力ピンにデータを配信するメソッド、または接続のメディアの種類を変更するメソッドを呼び出す前に、このメソッドを呼び出します。 たとえば、この規則は次のメソッドに適用されます。

その後、 CDynamicOutputPin::StopUsingOutputPin メソッドを 呼び出して、ピンへのアクセスを解放します。

ピンがブロックされている場合は、 StartUsingOutputPin ピンのブロックが解除されるまで待ちます。 メソッドの待機中にフィルターが停止した場合、メソッドはすぐにVFW_E_STATE_CHANGEDを返します。 Pin は、StopUsingOutputPin への対応する呼び出しなしで呼び出された回数StartUsingOutputPinを保持します。 この数が 0 以外の間に別のスレッドがピンをブロックしようとすると、そのブロック状態が "保留中" に設定されます。 StopUsingOutputPin の最後の呼び出しで、すべてのストリーミング操作が完了すると、ピンはブロックされます。

このメソッドを呼び出すときは、 CDynamicOutputPin::m_BlockStateLock critical セクションを保持しないでください。 それ以外の場合、ピンがブロックされている場合はブロック解除されず、デッドロックが発生します。

要件

要件
ヘッダー
Amfilter.h (Streams.h を含む)
ライブラリ
Strmbase.lib (製品版ビルド);
Strmbasd.lib (デバッグ ビルド)

関連項目

CDynamicOutputPin クラス