IGraphConfig::Reconfigure メソッド (strmif.h)
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
メソッドは Reconfigure
、フィルター グラフをロックし、アプリケーションまたはフィルターでコールバック関数を呼び出して動的再構成を実行します。
構文
HRESULT Reconfigure(
[in] IGraphConfigCallback *pCallback,
[in] PVOID pvContext,
[in] DWORD dwFlags,
[in] HANDLE hAbortEvent
);
パラメーター
[in] pCallback
アプリケーションまたはフィルターの IGraphConfigCallback コールバック インターフェイスへのポインター。
[in] pvContext
コールバック ルーチンに渡される PVOID 型の変数へのポインター。
[in] dwFlags
コールバック ルーチンに渡されるアプリケーション定義フラグ。
[in] hAbortEvent
イベントに対するハンドル。 呼び出し元がデータ処理スレッドのいずれかでを呼び出すフィルターの場合、このパラメーターは、フィルターが停止状態になったときに通知されるイベントのハンドルである必要があります。 それ以外の場合、このパラメーターは NULL にすることができます。 詳細については、「解説」を参照してください。
戻り値
成功した場合はS_OK、それ以外の場合はエラー コードを返します。 メソッドがフィルター グラフのロックを取得できなかった場合は、VFW_E_WRONG_STATEエラーが発生する可能性があります。コールバック ルーチンによって返された HRESULT 。または、グラフがフィルターを実行中の状態にできなかったことを示すエラー コード。
注釈
このメソッドは、アプリケーションまたはフィルターが特殊な動的グラフ構築を実装できるように提供されます。 ただし、ほとんどの場合、 IGraphConfig::Reconnect メソッドは適切であり、ほとんどの実装の詳細を処理するため、推奨される必要があります。
このメソッドを呼び出す前に、必要に応じてストリームをブロックし、グラフを介してデータをプッシュします ( 「IPinFlowControl::Block and IGraphConfig::P ushThroughData」を参照してください)。 コールバック メソッドが成功した場合は、 IGraphConfig::Reconfigure
すべてのフィルターを実行中の状態にしようとします。 (呼び出し元は、データ フローのブロックを解除する必要があります)。それ以外の場合は、コールバック メソッドから返されたエラー コードが返されます。
フィルターが独自のデータ処理スレッドのいずれかでこのメソッドを呼び出すと、デッドロックの可能性が生じます。 メソッドはフィルター グラフのロックを取得します。これにより、 IMediaFilter::Stop の呼び出しの受信時にフィルターが停止するのをブロックできます。 この状況を防ぐために、 メソッドは、フィルターによって提供されるイベント オブジェクトへのハンドルを受け取ります。 フィルターは、 Stop メソッドの呼び出しを受け取った場合にイベントを通知する必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | strmif.h (Dshow.h を含む) |
Library | Strmiids.lib |