共用方式為


iCaptureGraphBuilder2::SetOutputFileName 方法 (strmif.h)

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

方法 SetOutputFileName 會建立篩選圖形的檔案寫入區段。

語法

HRESULT SetOutputFileName(
  [in]  const GUID      *pType,
  [in]  LPCOLESTR       lpstrFile,
  [out] IBaseFilter     **ppf,
  [out] IFileSinkFilter **ppSink
);

參數

[in] pType

GUID 的指標,代表輸出的媒體子類型或類別標識碼, (多任務器篩選條件或檔案寫入器篩選的 CLSID) 。 如果您指定媒體子類型,它必須是下列其中一項:

Description
MEDIASUBTYPE_Avi 影音交錯技術 (AVI)
MEDIASUBTYPE_Asf 進階系統格式 (ASF)

[in] lpstrFile

包含輸出檔名之寬字元字串的指標。

[out] ppf

接收多任務器 IBaseFilter 介面之指標的位址。

[out] ppSink

接收檔案寫入器 之 IFileSinkFilter 介面的指標位址。 可以是 NULL

傳回值

傳回 HRESULT 值。 可能的值如下。

傳回碼 描述
S_OK
成功。
E_FAIL
失敗。
E_POINTER
NULL 指標自變數。

備註

這個方法會根據 pType 參數的值建立多任務器篩選。 針對 AVI,它會建立 AVI Mux 篩選器。 針對 ASF,它會建立 WM ASF 寫入器。 針對其他值,它會建立CLSID所識別的篩選。 它會將多任務器新增至篩選圖形,並在ppf 參數中傳回其IBaseFilter介面的指標。

如果多任務器支援 IFileSinkFilter 介面,此方法會使用 lpwstrFile 參數中指定的值,呼叫 IFileSinkFilter::SetFileName 來設定輸出檔名。 如果多任務器不支援 IFileSinkFilter 介面,方法會將 檔案寫入器篩選 新增至篩選圖形、將多任務器連接到檔案寫入器,並使用檔案寫入器的 IFileSinkFilter 介面來呼叫 SetFileName。 如果 pSink 參數不是 NULL,它會接收 IFileSinkFilter 介面的指標。

您可以使用 ppf 參數中傳回的多任務器篩選指標,做為 ICaptureGraphBuilder2::RenderStream 方法中的 pSink 參數。

對於自定義多任務器篩選,如果篩選條件在連接輸入針腳之前不支援其輸出針腳上的連接,方法就會失敗。 例如,SDK 隨附的 WavDest 篩選範例 具有這項限制。

如果方法成功,則 ppf 參數中傳回的 IBaseFilter 介面具有未處理的參考計數。 如果方法成功且 pSink 不是 NULL,IFileSinkFilter 介面也有未處理的參考計數。 當您完成使用這些介面時,請務必釋放這兩個介面。

規格需求

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

另請參閱

錯誤和成功碼

ICaptureGraphBuilder2 介面