IMFMediaSession::SetTopology メソッド (mfidl.h)
メディア セッションのトポロジを設定します。
構文
HRESULT SetTopology(
[in] DWORD dwSetTopologyFlags,
[in] IMFTopology *pTopology
);
パラメーター
[in] dwSetTopologyFlags
MFSESSION_SETTOPOLOGY_FLAGS列挙からの 0 個以上のフラグのビットごとの OR。
[in] pTopology
トポロジ オブジェクトの IMFTopology インターフェイスへのポインター。
戻り値
このメソッドは HRESULT を返します。 有効な値を次の表に示しますが、これ以外にもあります。
リターン コード | 説明 |
---|---|
|
メソッドが成功しました。 |
|
メディア セッションの現在の状態では操作を実行できません。 |
|
メディア セッションがシャットダウンされました。 |
|
トポロジには、次の属性の 1 つ以上の無効な値があります。 |
|
デバッグ中は、保護されたコンテンツを再生できません。 |
解説
pTopology が完全なトポロジの場合は、dwSetTopologyFlags パラメーターに MFSESSION_SETTOPOLOGY_NORESOLUTION フラグを設定します。 それ以外の場合、トポロジは部分トポロジであると見なされます。 メディア セッションでは、トポロジ ローダーを使用して、部分的なトポロジを完全なトポロジに解決します。
メディア セッションが現在一時停止または停止されている場合、 SetTopology メソッドは、 次に IMFMediaSession::Start を呼び出すまで有効になりません。
メディア セッションが現在実行中の場合、または次に Start を呼び出した場合、 SetTopology メソッドは次の処理を行います。
- dwSetTopologyFlags で MFSESSION_SETTOPOLOGY_IMMEDIATE フラグが設定されている場合、メディア セッションは現在のプレゼンテーションを直ちに終了し、保留中のすべてのトポロジをクリアし、pTopology を使用して新しいプレゼンテーションを開始します。
- それ以外の場合、メディア セッションは pTopology をキューに入れ、現在のプレゼンテーションが完了すると新しいプレゼンテーションを開始します。 現在のプレゼンテーションがない場合は、新しいプレゼンテーションがすぐに開始されます。
- Windows 7 以降では、 MFSESSION_SETTOPOLOGY_CLEAR_CURRENT フラグを指定して現在のトポロジをクリアし、他の保留中のトポロジはキューに残すこともできます。
要件
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | mfidl.h |
Library | Mfuuid.lib |