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。 可能的值包括 (但不限於) 下表中的這些值。

傳回碼 Description
S_FALSE
類型不相等。 檢查 pdwFlags 參數,以判斷類型的差異。
S_OK
類型相等。
E_INVALIDARG
一或兩種媒體類型無效。

備註

這兩種媒體類型都必須有主要類型,否則方法會 傳回E_INVALIDARG

如果方法成功,而且所有比較旗標都是在 pdwFlags 中設定,則會 S_OK傳回值。 如果方法成功但未設定一或多個比較旗標,則方法會 傳回S_FALSE

如果已安裝 Windows Media Format 11 SDK 可轉散發元件,此介面可在下列平臺上使用:

  • Windows XP with Service Pack 2 (SP2) 和更新版本。
  • 已安裝 Windows XP Media Center Edition 2005 KB900325 (Windows XP Media Center Edition 2005) 和 KB925766 (2006 年 10 月更新匯總) 的 Windows XP Media Center Edition 2005。

規格需求

需求
最低支援的用戶端 Windows Vista [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 mfobjects.h (包含 Mfidl.h)
程式庫 Mfuuid.lib

另請參閱

IMFAttributes::Compare

IMFMediaType