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


Метод IEnumMediaTypes::Clone (strmif.h)

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]

Метод Clone создает копию перечислителя. Возвращаемый объект начинается с того же состояния перечисления, что и исходный.

Синтаксис

HRESULT Clone(
  [out] IEnumMediaTypes **ppEnum
);

Параметры

[out] ppEnum

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

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

Возвращает одно из следующих значений HRESULT .

Код возврата Описание
S_OK
Успешно.
E_OUTOFMEMORY
Недостаточно памяти.
E_POINTER
Аргумент указателя NULL.
VFW_E_ENUM_OUT_OF_SYNC
Состояние закрепления изменилось и теперь не согласуется с перечислителем.

Комментарии

Если набор типов мультимедиа изменяется, перечислитель больше не согласуется с закреплением, и метод возвращает VFW_E_ENUM_OUT_OF_SYNC. Удалите все данные, полученные в результате предыдущих вызовов перечислителя, так как они могут быть недопустимыми. Обновите перечислитель, вызвав метод Reset . Затем можно безопасно вызвать Clone метод .

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header strmif.h (включая Dshow.h)
Библиотека Strmiids.lib

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

Перечисление типов носителей

Коды ошибок и успешности

Интерфейс IEnumMediaTypes