IMFTransform::P rocessEvent 方法 (mftransform.h)
將事件傳送至此媒體基礎轉換上的輸入資料流程, (MFT) 。
語法
HRESULT ProcessEvent(
[in] DWORD dwInputStreamID,
[in] IMFMediaEvent *pEvent
);
參數
[in] dwInputStreamID
輸入資料流程識別碼。 若要取得資料流程識別碼的清單,請呼叫 IMFTransform::GetStreamIDs。
[in] pEvent
事件物件的 IMFMediaEvent 介面指標。
傳回值
方法會傳回 HRESULT。 可能的值包括 (但不限於) 下表中的這些值。
傳回碼 | 描述 |
---|---|
|
此方法已成功。 |
|
未實作。 |
|
不正確資料流程編號。 |
|
媒體類型不會在一或多個資料流程上設定。 |
|
管線不應該傳播事件。 |
備註
MFT 可以處理傳送事件下游,也可以讓管線執行此動作,如傳回值所示:
- E_NOTIMPL:MFT 會忽略所有事件,而管線應該傳送下游的所有事件。 管線收到這個傳回值之後,可能不會再次呼叫 ProcessEvent 。
- S_OK:MFT 已檢查此事件,但管線應該傳送事件下游。 在內部,MFT 可能會以某種方式回應事件,或者可能會忽略事件。
- MF_S_TRANSFORM_DO_NOT_PROPAGATE_EVENT:管線不應該傳播此事件下游。 MFT 會傳送下游事件,否則 MFT 會取用事件,而不是將它傳送至下游。 如果事件應該在此 MFT 停止,且不會進一步下游移動,則 MFT 應該只取用事件。 但在大部分情況下,事件應該會流向下游。
事件必須以之前和之後的範例序列化。 將事件附加至事件後面的輸出範例。 (管線會先處理事件,然後再處理 sample.) 如果 MFT 在 對 IMFTransform::P rocessInput 和 ProcessOutput的呼叫之間保留一或多個範例,MFT 應該處理下游的所有事件,因為在此情況下,管線無法將輸入範例與輸出範例相互關聯。
如果 MFT 沒有保留樣本,而且不需要檢查任何事件,它可以傳回 E_NOTIMPL。
如果在包含 mftransform.h 之前定義 MFT_UNIQUE_METHOD_NAMES ,這個方法會重新命名 為 MFTProcessEvent。 請參閱 建立混合式 DMO/MFT 物件。
需求
最低支援的用戶端 | Windows Vista [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2008 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | mftransform.h |
程式庫 | Mfuuid.lib |