次の方法で共有


IPinFlowControl::Block メソッド (strmif.h)

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

メソッドは Block 、ピンからのデータ フローをブロックまたはブロック解除します。

構文

HRESULT Block(
  [in] DWORD  dwBlockFlags,
  [in] HANDLE hEvent
);

パラメーター

[in] dwBlockFlags

ピンをブロックまたはブロック解除するかどうかを示すフラグ。 次のいずれかの値を指定する必要があります。

  • ゼロ: ピンからのデータ フローのブロックを解除します。
  • AM_PIN_FLOW_CONTROL_BLOCK: ピンからのデータ フローをブロックします。

[in] hEvent

イベント オブジェクトまたは NULL へのハンドル。 このパラメーターが NULL 以外の場合、メソッドは非同期であり、直ちにを返します。 イベントは、操作の完了時に通知されます。 このパラメーターが NULL の場合、メソッドは同期的であり、ピンがブロックされるまで完了しません。 dwBlockFlags が 0 の場合、このパラメーターは NULL である必要があります。

戻り値

HRESULT 値を返します。 使用可能な値は次のとおりです。

リターン コード 説明
S_FALSE
ピンは既にブロック解除されています。
S_OK
正常終了しました。
VFW_E_PIN_ALREADY_BLOCKED
ピンは既に別のスレッドでブロックされています。
VFW_E_PIN_ALREADY_BLOCKED_ON_THIS_THREAD
ピン留めは、呼び出し元のスレッドで既にブロックされています。

注釈

このメソッドは、同期または非同期にすることができます。

  • 非同期的に呼び出すには、 CreateEvent 関数を使用してイベント オブジェクトを作成します。 hEvent パラメーターにイベント ハンドルを渡します。 メソッドは直ちにを返し、操作が完了したときにイベントを通知します。 WaitForSingleObject などの wait 関数を呼び出して、イベントを待機します。
  • このメソッドを同期的に呼び出すには、 hEvent パラメーターを NULL に設定 します。 メソッドは、完了するまでブロックします。 メソッドは、ピンがサンプルを配信する準備ができるまで完了しない場合があります。 フィルターが一時停止されている場合、メソッドは無期限にブロックされる可能性があります。 そのため、メイン アプリケーション スレッドから同期的にこのメソッドを呼び出さないでください。

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー strmif.h (Dshow.h を含む)
Library Strmiids.lib

こちらもご覧ください

動的再接続

エラーコードと成功コード

IPinFlowControl インターフェイス