次の方法で共有


IMFTopoLoader::Load メソッド (mfidl.h)

入力部分トポロジから完全に読み込まれたトポロジを作成します。

構文

HRESULT Load(
  [in]  IMFTopology *pInputTopo,
  [out] IMFTopology **ppOutputTopo,
  [in]  IMFTopology *pCurrentTopo
);

パラメーター

[in] pInputTopo

解決する部分トポロジの IMFTopology インターフェイスへのポインター。

[out] ppOutputTopo

完了したトポロジの IMFTopology インターフェイスへのポインターを受け取ります。 呼び出し元はインターフェイスを解放する必要があります。

[in] pCurrentTopo

前の完全なトポロジの IMFTopology インターフェイスへのポインター。 トポロジ ローダーは、新しいトポロジでこのトポロジのオブジェクトを再利用できます。 このパラメーターは、NULL でもかまいません。 「解説」を参照してください。

戻り値

このメソッドは HRESULT を返します。 有効な値を次の表に示しますが、これ以外にもあります。

リターン コード 説明
S_OK
メソッドが成功しました。
MF_E_TOPO_SINK_ACTIVATES_UNSUPPORTED
1 つ以上の出力ノードに IMFActivate ポインターが含まれています。 呼び出し元は、出力ノードをメディア シンクにバインドする必要があります。 「 出力ノードをメディア シンクにバインドする」を参照してください。

解説

このメソッドは、トポロジを完了するために必要な中間変換を作成します。 また、トポロジ内のすべてのオブジェクトに対して、入力メディアと出力メディアの種類も設定します。 メソッドが成功すると、完全なトポロジが ppOutputTopo パラメーターで返されます。

pCurrentTopo パラメーターを使用して、以前に読み込まれた完全なトポロジを指定できます。 このトポロジに新しいトポロジで必要なオブジェクトが含まれている場合、トポロジ ローダーは、オブジェクトを再度作成せずに再利用できます。 このキャッシュにより、プロセスが高速になる可能性があります。 pCurrentTopo のオブジェクトは再構成されないため、データをアクティブにストリーミングするトポロジを指定できます。 たとえば、トポロジの実行中は、次のトポロジを事前に読み込むことができます。

このメソッドを呼び出す前に、部分トポロジの出力ノードに、IMFActivate ポインターではなく、有効な IMFStreamSink ポインターがあることを確認する必要があります。 メディア セッションは、 IMFMediaSession::SetTopology メソッド内でこのアクションを自動的に実行します。 ただし、SetTopology を呼び出す前に Load を呼び出す場合は、出力ノードを手動でバインドする必要があります。 詳細については、「 出力ノードをメディア シンクにバインドする」を参照してください。

要件

   
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー mfidl.h
Library Mfuuid.lib

関連項目

高度なトポロジの構築

IMFTopoLoader

トポロジ