Freigeben über


IMFMediaSession::SetTopology-Methode (mfidl.h)

Legt eine Topologie für die Mediensitzung fest.

Syntax

HRESULT SetTopology(
  [in] DWORD       dwSetTopologyFlags,
  [in] IMFTopology *pTopology
);

Parameter

[in] dwSetTopologyFlags

Bitweise OR mit null oder mehr Flags aus der MFSESSION_SETTOPOLOGY_FLAGS-Enumeration .

[in] pTopology

Zeiger auf die IMFTopology-Schnittstelle des Topologieobjekts.

Rückgabewert

Die Methode gibt ein HRESULT zurück. Mögliches Werte (aber nicht die Einzigen) sind die in der folgenden Tabelle.

Rückgabecode BESCHREIBUNG
S_OK
Die Methode wurde erfolgreich ausgeführt.
MF_E_INVALIDREQUEST
Der Vorgang kann nicht im aktuellen Zustand der Mediensitzung ausgeführt werden.
MF_E_SHUTDOWN
Die Mediensitzung wurde heruntergefahren.
MF_E_TOPO_INVALID_TIME_ATTRIBUTES
Die Topologie weist ungültige Werte für mindestens eines der folgenden Attribute auf:
NS_E_DRM_DEBUGGING_NOT_ALLOWED
Geschützte Inhalte können beim Debuggen nicht wiedergegeben werden.

Hinweise

Wenn pTopology eine vollständige Topologie ist, legen Sie das flag MFSESSION_SETTOPOLOGY_NORESOLUTION im dwSetTopologyFlags-Parameter fest. Andernfalls wird angenommen, dass es sich bei der Topologie um eine partielle Topologie handelt. Die Mediensitzung verwendet den Topologieladeprogramm, um eine partielle Topologie in eine vollständige Topologie aufzulösen.

Wenn die Mediensitzung derzeit angehalten oder beendet ist, wird die SetTopology-Methode erst nach dem nächsten Aufruf von IMFMediaSession::Start wirksam.

Wenn die Mediensitzung derzeit oder beim nächsten Aufruf von Start ausgeführt wird, führt die SetTopology-Methode Folgendes aus:

  • Wenn das flag MFSESSION_SETTOPOLOGY_IMMEDIATE in dwSetTopologyFlags festgelegt ist, beendet die Mediensitzung die aktuelle Präsentation sofort, löscht alle ausstehenden Topologien und verwendet pTopology , um eine neue Präsentation zu starten.
  • Andernfalls wird die pTopology von der Mediensitzung in die Warteschlange eingereiht und die neue Präsentation gestartet, wenn die aktuelle Präsentation abgeschlossen ist. Wenn keine aktuelle Präsentation vorhanden ist, beginnt die neue Präsentation sofort.
  • Ab Windows 7 können Sie auch das flag MFSESSION_SETTOPOLOGY_CLEAR_CURRENT angeben, um die aktuelle Topologie zu löschen, aber alle anderen ausstehenden Topologien in der Warteschlange belassen.
Diese Methode ist asynchron. Wenn die Methode S_OK zurückgibt, sendet die Mediensitzung nach Abschluss des Vorgangs ein MESessionTopologySet-Ereignis . Wenn die Mediensitzung derzeit angehalten und beendet ist, sendet die Mediensitzung das MESessionTopologySet-Ereignis erst nach dem nächsten Aufruf von IMFMediaSession::Start

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile mfidl.h
Bibliothek Mfuuid.lib

Weitere Informationen

IMFMediaSession