共用方式為


IAMStreamConfig::SetFormat 方法 (strmif.h)

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

方法 SetFormat 會在針腳上設定輸出格式。

語法

HRESULT SetFormat(
  [in] AM_MEDIA_TYPE *pmt
);

參數

[in] pmt

指定新格式 之AM_MEDIA_TYPE 結構的指標。

傳回值

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

傳回碼 描述
S_OK
成功。
E_OUTOFMEMORY
記憶體不足。
E_POINTER
NULL 指標值。
VFW_E_INVALIDMEDIATYPE
此媒體類型無效。
VFW_E_NOT_CONNECTED
輸入針腳未連接。
VFW_E_NOT_STOPPED
無法設定類型;篩選條件未停止。
VFW_E_WRONG_STATE
無法設定類型;篩選條件未停止。

備註

這個方法會指定輸出針腳的格式。 如果針腳未連線,則會針對下一個連線使用此格式。 如果針腳已連線,它會嘗試使用此格式重新連線。 如果另一個針腳拒絕新的類型,此方法可能會失敗。

如果這個方法成功, 後續對IPin::EnumMediaTypes 方法的呼叫將會傳回新的類型,而沒有其他方法。

在大部分的篩選上,如果篩選已暫停或執行,這個方法就會失敗。 在某些壓縮篩選條件上,如果篩選條件的輸入針腳未連線,方法就會失敗。

使用某些篩選條件,您可以使用 NULL 值呼叫這個方法,將針腳重設為其預設格式。

篩選開發人員:下列備註說明如何實作此方法:

如果輸出針腳未連線,而且該針腳支援指定的媒體類型,請傳回S_OK。 儲存媒體類型,並在 CBasePin::GetMediaType 方法中將其提供為零格式。 請勿提供其他格式,並在 CBasePin::CheckMediaType 方法中拒絕其他格式。

如果針腳已連線,且針腳支持媒體類型,請重新連接該類型的針腳。 如果另一個針腳拒絕新的類型,請傳回VFW_E_INVALIDMEDIATYPE並還原原始連線。

規格需求

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

另請參閱

錯誤和成功碼

IAMStreamConfig 介面