Microsoft DirectX 8.0 |
アクティブな出力ピンからデータ フローをブロックする。このインターフェイスは動的再接続可能な出力ピンによって公開される。このインターフェイスを使ってフィルタ グラフなしで動的再接続を開始する。詳細については、「動的グラフ作成」を参照すること。
フィルタ開発者へ : 動的な再接続をサポートするパーサー フィルタとキャプチャ フィルタでは、その出力ピン上でこのインターフェイスをサポートしなければならない。通常、その他のタイプのフィルタでは、このインターフェイスを実装する必要はない。
IUnknown メソッド 説明 QueryInterface サポートされているインターフェイスへのポインタを取得する。 AddRef 参照カウントをインクリメントする。 Release 参照カウントをデクリメントする。 IPinFlowControl メソッド 説明 Block ピンからのデータ フローをブロック、あるいはブロック解除する。
ピンからのデータフローをブロック、あるいはブロック解除する。
構文
HRESULT Block( DWORD dwBlockFlags, HANDLE hEvent, );
パラメータ
- dwBlockFlags
- [in] ピンをブロックするかブロック解除するかを示すフラグ。以下の値でなければならない :
- ゼロ : ピンからのデータ フローをブロック解除する。
- AM_PIN_FLOW_CONTROL_BLOCK: ピンからのデータ フローをブロックする。
- hEvent
- [in] イベント オブジェクトのハンドルまたは NULL。このパラメータが NULL でない場合、メソッドは非同期になり、即座に戻る。操作が完了すると、イベントが通知済になる。このパラメータが NULL の場合、メソッドは同期になり、ピンがブロックされるまで完了しない。dwBlockFlags がゼロなら、このパラメータは NULL でなければならない。
戻り値
HRESULT 値を返す。以下のいずれかの値。
S_FALSE ピンは既にブロック解除されている。 S_OK 成功。 VFW_E_PIN_ALREADY_BLOCKED ピンは他のスレッドによって既にブロックされている。 VFW_E_PIN_ALREADY_BLOCKED_ON_THIS_THREAD ピンは呼び出しているスレッドによって既にブロックされている。
注意
このメソッドは同期も非同期も可能である :
- 非同期に呼び出すには、CreateEvent 関数を使ってイベントオブジェクトを作成する。イベント ハンドルを hEvent パラメータに渡す。メソッドはすぐに戻り、操作が完了するとイベントを通知する。WaitForSingleObject のような待ち関数を呼び出してそのイベントを待つこと。
- 同期して呼び出すには、hEvent パラメータを NULL に設定する。そのメソッドは完了するまでブロックする。メソッドはピンがサンプル出力する用意ができるまで完了しない可能性がある。フィルタがポーズなら、メソッドは完全にブロックする可能性がある。それゆえ、メインのアプリケーションスレッドからこのメソッドを同期して呼び出すべきではない。