共用方式為


IGraphBuilder::AddSourceFilter 方法 (strmif.h)

[與此頁面相關的功能 DirectShow 是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft 強烈建議新程式代碼盡可能使用 MediaPlayerIMFMediaEngine音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議使用舊版 API 的現有程式代碼盡可能重寫為使用新的 API。

方法會將 AddSourceFilter 指定檔案的來源篩選新增至篩選圖形。

語法

HRESULT AddSourceFilter(
  [in]  LPCWSTR     lpcwstrFileName,
  [in]  LPCWSTR     lpcwstrFilterName,
  [out] IBaseFilter **ppFilter
);

參數

[in] lpcwstrFileName

指定要載入的檔案名。

[in] lpcwstrFilterName

指定來源篩選的名稱。

[out] ppFilter

接收篩選條件 IBaseFilter 介面的指標。 呼叫端必須釋放 介面。

傳回值

傳回 HRESULT。 可能的值如下。

傳回碼 描述
S_OK
成功。
E_NOINTERFACE
來源篩選不支援 IFileSourceFilter 介面。
E_OUTOFMEMORY
記憶體不足。
E_POINTER
NULL 指標自變數。
VFW_E_CANNOT_LOAD_SOURCE_FILTER
無法載入此檔案的來源篩選。
VFW_E_NOT_FOUND
找不到檔案或物件。
VFW_E_UNKNOWN_FILE_TYPE
無法辨識此檔案的媒體類型。

備註

這個方法會搜尋可讀取指定檔案的已安裝篩選。 如果找到其中一個,方法會將它新增至篩選圖形,並傳回篩選之 IBaseFilter 介面的指標。 若要判斷檔案的媒體類型和壓縮配置,Filter Graph Manager 會讀取檔案的前幾個位元組,尋找特定位元組模式,如 註冊自定義檔類型一文中所述。

應用程式負責建置篩選圖形的其餘部分。 若要這樣做,請呼叫 IBaseFilter::EnumPins 以列舉來源篩選上的輸出針腳。 然後使用 IGraphBuilder::Connect 方法或 IGraphBuilder::Render 方法。

如果方法成功, IBaseFilter 介面具有未處理的參考計數。 呼叫端必須釋放 介面。

若要轉譯檔案以進行預設播放,請使用 IGraphBuilder::RenderFile 方法。

Filter Graph Manager 會保留篩選的參考計數,直到從圖形中移除篩選或篩選圖形管理員釋放為止。

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 strmif.h (包含 Dshow.h)
程式庫 Strmiids.lib

另請參閱

錯誤和成功碼

IGraphBuilder 介面