ICodecAPI::RegisterForEvent 方法 (strmif.h)

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

RegisterForEvent 方法會註冊應用程式以接收編解碼器的事件。

語法

HRESULT RegisterForEvent(
  [in]  const GUID *Api,
  [out] LONG_PTR   userData
);

參數

[in] Api

指定事件的 GUID 指標。 事件類別有三種:

意義
CODECAPI_CHANGELISTS
編解碼器會在編解碼器的屬性變更時通知應用程式。 事件數據是已變更之屬性的 GUID 清單。
在codecapi.h中定義的其中一個屬性 GUID。 (請參閱 編解碼器 API 屬性.)
編解碼器會在指定的屬性變更時通知應用程式。 一般而言,編解碼器會針對一組有限的屬性支援這種類型的通知,如果有的話。
編解碼器所定義的專屬事件 GUID。
實作相依。

[out] userData

呼叫端定義數據的指標。 應用程式會在 lParam1 事件參數中接收此指標。

傳回值

這個方法可以傳回其中一個值。

傳回碼 描述
S_OK
此方法已成功。
E_NOTIMPL
未實作。 編解碼器不支援事件通知,或不支援 Api 參數中指定的事件 GUID。

備註

每當編碼器編解碼器傳送事件時,應用程式就會收到 EC_CODECAPI_EVENT 事件通知。 若要取得事件,請使用 IMediaEventEx 介面。

事件的 lParam2 參數是 CodecAPIEventData 結構的指標。 視事件 GUID 而定,此結構後面可以接著其他數據。 此數據的大小是由 dataLength 成員所指定。

GUID 事件資料
CODECAPI_CHANGELISTS GUID 的陣列。 每個 GUID 都會指定編解碼器屬性,其目前值或有效範圍已變更。 陣列的大小為 dataLength / sizeof(GUID)
在codecapi.h中定義的屬性 GUID。 無。
專屬事件 GUID。 實作相依。
 

如果編解碼器不支援指定的事件,方法會傳回 E_NOTIMPL。 編解碼器可能支援其他事件。

若要停用事件的通知,請呼叫 ICodecAPI::UnregisterForEvent

規格需求

需求
最低支援的用戶端 Windows XP with SP2 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2003 R2 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 strmif.h (包含 Dshow.h)
程式庫 Strmiids.lib

另請參閱

編解碼器 API 參考

編碼器 API

ICodecAPI