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


Метод IMFMediaType::IsEqual (mfobjects.h)

Сравнивает два типа мультимедиа и определяет, идентичны ли они. Если они не идентичны, метод указывает, чем отличаются два формата.

Синтаксис

HRESULT IsEqual(
  [in]  IMFMediaType *pIMediaType,
  [out] DWORD        *pdwFlags
);

Параметры

[in] pIMediaType

Указатель на интерфейс IMFMediaType для сравниваемого типа носителя.

[out] pdwFlags

Получает побитовое значение ИЛИ , равное нулю или большему значению флагов, указывающее степень сходства между двумя типами мультимедиа. Определены следующие флаги.

Значение Значение
MF_MEDIATYPE_EQUAL_MAJOR_TYPES
0x00000001
Основные типы одинаковы. Основной тип задается атрибутом MF_MT_MAJOR_TYPE .
MF_MEDIATYPE_EQUAL_FORMAT_TYPES
0x00000002
Подтипы совпадают, либо ни один из типов мультимедиа не имеет подтипа. Подтип задается атрибутом MF_MT_SUBTYPE .
MF_MEDIATYPE_EQUAL_FORMAT_DATA
0x00000004
Атрибуты в одном из типов мультимедиа являются подмножеством атрибутов в другом, и значения этих атрибутов совпадают, за исключением значений атрибутов MF_MT_USER_DATA, MF_MT_FRAME_RATE_RANGE_MIN и MF_MT_FRAME_RATE_RANGE_MAX .

В частности, метод принимает тип носителя с меньшим количеством атрибутов и проверяет, присутствует ли каждый атрибут этого типа в другом типе мультимедиа и имеет ли то же значение (не включая MF_MT_USER_DATA, MF_MT_FRAME_RATE_RANGE_MIN и MF_MT_FRAME_RATE_RANGE_MAX).

Для выполнения других сравнений используйте метод IMFAttributes::Compare . Например, метод Compare может проверить наличие идентичных атрибутов или проверить пересечение двух наборов атрибутов. Дополнительные сведения см. в разделе MF_ATTRIBUTES_MATCH_TYPE.

MF_MEDIATYPE_EQUAL_FORMAT_USER_DATA
0x00000008
Пользовательские данные идентичны или ни одно из типов мультимедиа не содержит пользовательские данные. Данные пользователя задаются атрибутом MF_MT_USER_DATA .

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

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

Код возврата Описание
S_FALSE
Типы не равны. Изучите параметр pdwFlags , чтобы определить, чем отличаются типы.
S_OK
Типы равны.
E_INVALIDARG
Один или оба типа мультимедиа недопустимы.

Комментарии

Оба типа мультимедиа должны иметь основной тип, иначе метод возвращает E_INVALIDARG.

Если метод выполнен успешно и все флаги сравнения заданы в pdwFlags, возвращаемое значение будет S_OK. Если метод выполняется успешно, но один или несколько флагов сравнения не заданы, метод возвращает S_FALSE.

Этот интерфейс доступен на следующих платформах, если установлены распространяемые компоненты пакета SDK формата 11 для Windows Media:

  • Windows XP с пакетом обновления 2 (SP2) и более поздних версий.
  • Windows XP Media Center Edition 2005 с установленным KB900325 (Windows XP Media Center Edition 2005) и KB925766 (накопительный пакет обновления для Windows XP Media Center Edition за октябрь 2006 г.).

Требования

Требование Значение
Минимальная версия клиента Windows Vista [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header mfobjects.h (включая Mfidl.h)
Библиотека Mfuuid.lib

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

IMFAttributes::Compare

IMFMediaType