Método IMFMediaSession::SetTopology (mfidl.h)

Establece una topología en la sesión multimedia.

Sintaxis

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

Parámetros

[in] dwSetTopologyFlags

OR bit a bit de cero o más marcas de la enumeración MFSESSION_SETTOPOLOGY_FLAGS.

[in] pTopology

Puntero a la interfaz IMFTopology del objeto de topología.

Valor devuelto

El método devuelve un valor HRESULT. Entre los valores posibles se incluyen los que se indican en la tabla siguiente, entre otros.

Código devuelto Descripción
S_OK
El método se ha llevado a cabo de forma correcta.
MF_E_INVALIDREQUEST
La operación no se puede realizar en el estado actual de la sesión multimedia.
MF_E_SHUTDOWN
Se ha cerrado la sesión multimedia.
MF_E_TOPO_INVALID_TIME_ATTRIBUTES
La topología tiene valores no válidos para uno o varios de los siguientes atributos:
NS_E_DRM_DEBUGGING_NOT_ALLOWED
No se puede reproducir el contenido protegido durante la depuración.

Comentarios

Si pTopology es una topología completa, establezca la marca MFSESSION_SETTOPOLOGY_NORESOLUTION en el parámetro dwSetTopologyFlags . De lo contrario, se supone que la topología es una topología parcial. La sesión multimedia usa el cargador de topologías para resolver una topología parcial en una topología completa.

Si la sesión multimedia está actualmente en pausa o detenida, el método SetTopology no surte efecto hasta la siguiente llamada a IMFMediaSession::Start.

Si la sesión multimedia se está ejecutando actualmente o en la siguiente llamada a Start, el método SetTopology hace lo siguiente:

  • Si la marca MFSESSION_SETTOPOLOGY_IMMEDIATE se establece en dwSetTopologyFlags, la sesión multimedia finaliza la presentación actual inmediatamente, borra todas las topologías pendientes y usa pTopology para iniciar una nueva presentación.
  • De lo contrario, la sesión multimedia pone en cola la topología pTopology e inicia la nueva presentación cuando se ha completado la presentación actual. Si no hay ninguna presentación actual, la nueva presentación se inicia inmediatamente.
  • A partir de Windows 7, también puedes especificar la marca MFSESSION_SETTOPOLOGY_CLEAR_CURRENT para borrar la topología actual, pero dejar cualquier otra topología pendiente en la cola.
Este método es asincrónico. Si el método devuelve S_OK, la sesión multimedia envía un evento MESessionTopologySet cuando se completa la operación. Si la sesión multimedia está actualmente en pausa para detenerse, la sesión multimedia no envía el evento MESessionTopologySet hasta la siguiente llamada a IMFMediaSession::Start

Requisitos

   
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado mfidl.h
Library Mfuuid.lib

Consulte también

IMFMediaSession