IFilterMapper2::EnumMatchingFilters 方法 (strmif.h)
[與此頁面相關的功能 DirectShow 是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft 強烈建議新程式代碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議使用舊版 API 的現有程式代碼盡可能重寫為使用新的 API。
方法 EnumMatchingFilters
會列舉符合指定需求的已註冊篩選。
語法
HRESULT EnumMatchingFilters(
[out] IEnumMoniker **ppEnum,
[in] DWORD dwFlags,
[in] BOOL bExactMatch,
[in] DWORD dwMerit,
[in] BOOL bInputNeeded,
[in] DWORD cInputTypes,
[in] const GUID *pInputTypes,
[in] const REGPINMEDIUM *pMedIn,
[in] const CLSID *pPinCategoryIn,
[in] BOOL bRender,
[in] BOOL bOutputNeeded,
[in] DWORD cOutputTypes,
[in] const GUID *pOutputTypes,
[in] const REGPINMEDIUM *pMedOut,
[in] const CLSID *pPinCategoryOut
);
參數
[out] ppEnum
接收 IEnumMoniker 介面的指標。 使用此介面指標可從列舉中擷取篩選 Monikers。 呼叫端必須釋放 介面。
[in] dwFlags
保留的 必須是零。
[in] bExactMatch
布爾值,指出是否需要完全相符專案。 如需詳細資訊,請參閱「備註」。
[in] dwMerit
最低價值。 列舉會排除具有較少優點值的篩選。 如需優點值的清單,請參閱 優點。 如果 dwMerit 高於 MERIT_DO_NOT_USE,列舉也會排除類別的篩選條件小於或等於MERIT_DO_NOT_USE。 (請參閱 篩選類別.)
[in] bInputNeeded
布爾值,指出篩選條件是否必須有輸入針腳。 如果值為 TRUE,篩選條件必須至少有一個輸入針腳。
[in] cInputTypes
pInputTypes 中指定的輸入媒體類型數目。
[in] pInputTypes
指定主要類型和子類型的 GUID 組陣列指標,輸入針腳要相符。 陣列的大小為 2 * cInputTypes。 陣列可以是 NULL。 個別陣列成員可以GUID_NULL,其符合任何類型。 (請參閱 媒體類型.)
[in] pMedIn
REGPINMEDIUM 結構的指標,指定輸入針腳的媒體。 如有需要,請將 設定為 NULL 。
[in] pPinCategoryIn
指定輸入針腳類別目錄之 GUID 的指標。 (請參閱 Pin 屬性 Set.) 視需要設定為 NULL 。
[in] bRender
布爾值,指定篩選條件是否必須轉譯其輸入。 如果 為 TRUE,則指定的篩選條件必須轉譯其輸入。 (這個值會對應至 REGFILTERPINS 結構中的 bRendered 欄位,用來註冊篩選的 pins.)
[in] bOutputNeeded
布爾值,指定篩選條件是否必須有輸出針腳。 如果 為 TRUE,篩選條件必須至少有一個輸出針腳。
[in] cOutputTypes
pOutputTypes 中指定的輸入媒體類型數目。
[in] pOutputTypes
指定主要類型和子類型的 GUID 組陣列指標,輸出針腳要相符。 陣列的大小為 2 * cOutputTypes。 陣列可以是 NULL。 個別陣列成員可以GUID_NULL,其符合任何類型。
[in] pMedOut
指定輸出針腳之媒體的 REGPINMEDIUM 結構的指標。 如有需要,請將 設定為 NULL 。
[in] pPinCategoryOut
指定輸出釘選類別之 GUID 的指標。 (請參閱 Pin 屬性 Set.) 視需要設定為 NULL 。
傳回值
傳回 HRESULT 值。 可能的值包括下表所示的值。
傳回碼 | 描述 |
---|---|
|
Success |
|
失敗 |
|
記憶體不足 |
|
NULL 指標自變數 |
備註
若要尋找輸入針腳符合指定之媒體類型的篩選,請宣告陣列,其中主要類型 GUID 和子類型 GUID 以配對排序。 在 pInputTypes 參數中傳遞陣列位址,並將 cInputTypes 參數設定為等於 (的配對數目,也就是數位大小的一半) :
C++ |
---|
GUID arrayInTypes[2];arrayInTypes[0] = MEDIATYPE_Video;arrayInTypes[1] = GUID_NULL; |
如果 bExactMatch 參數的值為 TRUE,這個方法會尋找完全符合您為媒體類型、釘選類別和釘選媒體指定的值的篩選條件。 如果值為 FALSE,則針對這些專案註冊 NULL 值的篩選會被視為相符專案。 (實際上,登錄中的 NULL 值可作為通配符。)
如果您為媒體類型、釘選類別或釘選媒體指定 NULL ,則會將任何篩選視為該參數的相符專案。
如果釘選未註冊任何媒體類型,則此方法不會將其視為媒體類型的相符專案。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | strmif.h (包含 Dshow.h) |
程式庫 | Strmiids.lib |