Compartilhar via


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

Define uma topologia na Sessão de Mídia.

Sintaxe

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

Parâmetros

[in] dwSetTopologyFlags

OR bit a bit de zero ou mais sinalizadores da enumeração MFSESSION_SETTOPOLOGY_FLAGS.

[in] pTopology

Ponteiro para a interface IMFTopology do objeto de topologia.

Valor retornado

O método retorna um HRESULT. Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir.

Código de retorno Descrição
S_OK
O método foi bem-sucedido.
MF_E_INVALIDREQUEST
A operação não pode ser executada no estado atual da Sessão de Mídia.
MF_E_SHUTDOWN
A Sessão de Mídia foi desligada.
MF_E_TOPO_INVALID_TIME_ATTRIBUTES
A topologia tem valores inválidos para um ou mais dos seguintes atributos:
NS_E_DRM_DEBUGGING_NOT_ALLOWED
O conteúdo protegido não pode ser reproduzido durante a depuração.

Comentários

Se pTopology for uma topologia completa, defina o sinalizador MFSESSION_SETTOPOLOGY_NORESOLUTION no parâmetro dwSetTopologyFlags . Caso contrário, a topologia será considerada uma topologia parcial. A Sessão de Mídia usa o carregador de topologia para resolve uma topologia parcial em uma topologia completa.

Se a Sessão de Mídia estiver em pausa ou interrompida no momento, o método SetTopology não terá efeito até a próxima chamada para IMFMediaSession::Start.

Se a Sessão de Mídia estiver em execução no momento ou na próxima chamada para Iniciar, o método SetTopology fará o seguinte:

  • Se o sinalizador MFSESSION_SETTOPOLOGY_IMMEDIATE estiver definido em dwSetTopologyFlags, a Sessão de Mídia encerrará a apresentação atual imediatamente, limpará todas as topologias pendentes e usará pTopology para iniciar uma nova apresentação.
  • Caso contrário, a Sessão de Mídia enfileira pTopology e inicia a nova apresentação quando a apresentação atual é concluída. Se não houver nenhuma apresentação atual, a nova apresentação será iniciada imediatamente.
  • A partir do Windows 7, você também pode especificar o sinalizador MFSESSION_SETTOPOLOGY_CLEAR_CURRENT para limpar a topologia atual, mas deixar quaisquer outras topologias pendentes na fila.
Esse método é assíncrono. Se o método retornar S_OK, a Sessão de Mídia enviará um evento MESessionTopologySet quando a operação for concluída. Se a Sessão de Mídia estiver em pausa, a Sessão de Mídia não enviará o evento MESessionTopologySet até a próxima chamada para IMFMediaSession::Start

Requisitos

   
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho mfidl.h
Biblioteca Mfuuid.lib

Confira também

IMFMediaSession