ICodecAPI::RegisterForEvent 方法 (strmif.h)
[與此頁面相關的功能 DirectShow 是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft 強烈建議新程式代碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議使用舊版 API 的現有程式代碼盡可能重寫為使用新的 API。
RegisterForEvent 方法會註冊應用程式以接收編解碼器的事件。
語法
HRESULT RegisterForEvent(
[in] const GUID *Api,
[out] LONG_PTR userData
);
參數
[in] Api
指定事件的 GUID 指標。 事件類別有三種:
值 | 意義 |
---|---|
|
編解碼器會在編解碼器的屬性變更時通知應用程式。 事件數據是已變更之屬性的 GUID 清單。 |
|
編解碼器會在指定的屬性變更時通知應用程式。 一般而言,編解碼器會針對一組有限的屬性支援這種類型的通知,如果有的話。 |
|
實作相依。 |
[out] userData
呼叫端定義數據的指標。 應用程式會在 lParam1 事件參數中接收此指標。
傳回值
這個方法可以傳回其中一個值。
傳回碼 | 描述 |
---|---|
|
此方法已成功。 |
|
未實作。 編解碼器不支援事件通知,或不支援 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 |