次の方法で共有


IFilterGraph2::ReconnectEx

ReconnectEx メソッドは、既存のピン接続を切断し、指定されたメディア タイプを使って同じピンに再接続する。

アプリケーションからこのメソッドを呼び出さないこと。このメソッドは、グラフ作成プロセス中に、フィルタによって呼び出される。

構文

  HRESULT ReconnectEx(
  IPin *ppin,
  const AM_MEDIA_TYPE *pmt
);

パラメータ

ppin

[in] 切断および再接続するピンへのポインタ。

pmt

[in] 再接続に使うメディア タイプへのポインタ。既存のメディア タイプを使うには、NULL を指定する。

戻り値

HRESULT 値を返す。可能な値は次のとおりである。

説明
S_OK 成功。
S_FALSE ピンが接続されていない。エラーなし。
E_FAIL 失敗。
E_POINTER NULL ポインタ引数。
VFW_E_NOT_STOPPED フィルタが停止していないが、実行中の再接続がサポートされていない。

注意

フィルタは、このメソッドを呼び出して、ピン接続を再ネゴシエートする。このメソッドは、別のスレッドで実行される。このメソッドを呼び出す前に、他のピンで IPin::QueryAccept を呼び出し、再接続の試みが成功したかどうかを確認すること。このメソッドは、QueryAccept から S_OK が返されない限り、呼び出さないこと。S_OK が返されないのにこのメソッドを呼び出すと、再接続は非同期に実行されるので、ReconnectEx メソッドが成功しても、再接続には失敗する場合がある。その場合、フィルタ グラフは互換性のない状態になる。

このメソッドは、メディア タイプを指定することによって、IFilterGraph::Reconnect メソッドを強化している。このメソッドを使えば、再接続が成功する可能性が高くなる。

参照