Поделиться через


Метод IMFTopoLoader::Load (mfidl.h)

Создает полностью загруженную топологию на основе частичной входной топологии.

Синтаксис

HRESULT Load(
  [in]  IMFTopology *pInputTopo,
  [out] IMFTopology **ppOutputTopo,
  [in]  IMFTopology *pCurrentTopo
);

Параметры

[in] pInputTopo

Указатель на интерфейс IMFTopology частичной топологии, который требуется разрешить.

[out] ppOutputTopo

Получает указатель на интерфейс IMFTopology завершенной топологии. Вызывающий объект должен освободить интерфейс .

[in] pCurrentTopo

Указатель на интерфейс IMFTopology предыдущей полной топологии. Загрузчик топологии может повторно использовать объекты из этой топологии в новой топологии. Этот параметр может принимать значение NULL. См. заметки.

Возвращаемое значение

Метод возвращает HRESULT. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице.

Код возврата Описание
S_OK
Метод выполнен успешно.
MF_E_TOPO_SINK_ACTIVATES_UNSUPPORTED
Один или несколько выходных узлов содержат указатели IMFActivate . Вызывающий объект должен привязать выходные узлы к приемникам мультимедиа. См. раздел Привязка выходных узлов к приемникам мультимедиа.

Комментарии

Этот метод создает все промежуточные преобразования, необходимые для завершения топологии. Он также задает типы входных и выходных носителей для всех объектов в топологии. Если метод выполнен успешно, полная топология возвращается в параметре ppOutputTopo .

Параметр pCurrentTopo можно использовать для предоставления полной топологии, которая была загружена ранее. Если эта топология содержит объекты, необходимые в новой топологии, загрузчик топологии может повторно использовать их, не создавая повторно. Такое кэширование потенциально может ускорить процесс. Объекты из pCurrentTopo не будут перенастроены, поэтому можно указать топологию, которая активно выполняет потоковую передачу данных. Например, пока топология все еще выполняется, можно предварительно загрузить следующую топологию.

Перед вызовом этого метода необходимо убедиться, что выходные узлы в частичной топологии имеют допустимые указатели IMFStreamSink , а не указатели IMFActivate . Сеанс мультимедиа автоматически выполняет это действие в методе IMFMediaSession::SetTopology . Однако при вызове Load перед вызовом SetTopology необходимо привязать выходные узлы вручную. Дополнительные сведения см. в разделе Привязка выходных узлов к приемникам мультимедиа.

Требования

   
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header mfidl.h
Библиотека Mfuuid.lib

См. также раздел

Расширенное построение топологии

IMFTopoLoader

Топологии