IMFMediaType::IsEqual 方法 (mfobjects.h)

比较两种媒体类型,并确定它们是否相同。 如果它们不相同,则 方法指示这两种格式的不同之处。

语法

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

参数

[in] pIMediaType

指向要比较的媒体类型的 IMFMediaType 接口的指针。

[out] pdwFlags

接收零个或多个标志的按位 OR ,指示两种媒体类型之间的相似程度。 定义了以下标志。

含义
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_DATAMF_MT_FRAME_RATE_RANGE_MINMF_MT_FRAME_RATE_RANGE_MAX 属性的值)。

具体来说,方法采用具有较少数量的属性的媒体类型,并检查该类型的每个属性是否存在于其他媒体类型中,并且具有相同的值, (不包括 MF_MT_USER_DATAMF_MT_FRAME_RATE_RANGE_MINMF_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

如果安装了 Windows Media Format 11 SDK 可再发行组件,则此接口在以下平台上可用:

  • 具有 Service Pack 2 的 Windows XP (SP2) 及更高版本。
  • Windows XP Media Center Edition 2005 KB900325 (Windows XP Media Center Edition 2005) 和安装KB925766 (2006 年 10 月更新汇总的 Windows XP Media Center Edition) 。

要求

要求
最低受支持的客户端 Windows Vista [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2008 [桌面应用 | UWP 应用]
目标平台 Windows
标头 mfobjects.h (包括 Mfidl.h)
Library Mfuuid.lib

另请参阅

IMFAttributes::Compare

IMFMediaType