Condividi tramite


Metodo IMFMediaSession::SetTopology (mfidl.h)

Imposta una topologia nella sessione multimediale.

Sintassi

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

Parametri

[in] dwSetTopologyFlags

OR bit per bit di zero o più flag dall'enumerazione MFSESSION_SETTOPOLOGY_FLAGS.

[in] pTopology

Puntatore all'interfaccia FMTo topologia dell'oggetto topologia.

Valore restituito

Il metodo restituisce un HRESULT. I valori possibili includono, ma non sono limitati a, quelli indicati nella tabella seguente.

Codice restituito Descrizione
S_OK
Il metodo è riuscito.
MF_E_INVALIDREQUEST
Impossibile eseguire l'operazione nello stato corrente della sessione multimediale.
MF_E_SHUTDOWN
La sessione multimediale è stata arrestata.
MF_E_TOPO_INVALID_TIME_ATTRIBUTES
La topologia ha valori non validi per uno o più degli attributi seguenti:
NS_E_DRM_DEBUGGING_NOT_ALLOWED
Impossibile riprodurre contenuto protetto durante il debug.

Commenti

Se pTo topologia è una topologia completa, impostare il flag di MFSESSION_SETTOPOLOGY_NORESOLUTION nel parametro dwSetTopologyFlags . In caso contrario, si presuppone che la topologia sia una topologia parziale. La sessione multimediale usa il caricatore della topologia per risolvere una topologia parziale in una topologia completa.

Se la sessione multimediale è attualmente sospesa o arrestata, il metodo SetTopology non ha effetto fino alla chiamata successiva a FMMediaSession::Start.

Se la sessione multimediale è attualmente in esecuzione o nella chiamata successiva a Start, il metodo SetTopology esegue le operazioni seguenti:

  • Se il flag di MFSESSION_SETTOPOLOGY_IMMEDIATE è impostato in dwSetTopologyFlags, la sessione multimediale termina immediatamente la presentazione corrente, cancella tutte le topologie in sospeso e usa pTopology per avviare una nuova presentazione.
  • In caso contrario, la pTo topologia della sessione multimediale viene accodato e avvia la nuova presentazione al termine della presentazione corrente. Se non è presente alcuna presentazione corrente, la nuova presentazione viene avviata immediatamente.
  • A partire da Windows 7, è anche possibile specificare il flag di MFSESSION_SETTOPOLOGY_CLEAR_CURRENT per cancellare la topologia corrente, ma lasciare qualsiasi altra topologia in sospeso nella coda.
Questo metodo è asincrono. Se il metodo restituisce S_OK, la sessione multimediale invia un evento MESessionTopologySet al termine dell'operazione. Se la sessione multimediale è attualmente sospesa per l'arresto, la sessione multimediale non invia l'evento MESessionTopologySet fino alla chiamata successiva a IMFMediaSession::Start

Requisiti

   
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione mfidl.h
Libreria Mfuuid.lib

Vedi anche

FMIMediaSession