IMediaEvent::GetEvent 方法 (control.h)
[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]
方法 GetEvent
會從事件佇列擷取下一個事件通知。
語法
HRESULT GetEvent(
[out] long *lEventCode,
[out] LONG_PTR *lParam1,
[out] LONG_PTR *lParam2,
[in] long msTimeout
);
參數
[out] lEventCode
接收事件程式碼之變數的指標。
[out] lParam1
接收第一個事件參數之變數的指標。
[out] lParam2
接收第二個事件參數之變數的指標。
[in] msTimeout
逾時間隔,以毫秒為單位。 使用 INFINITE 封鎖直到有事件為止。
傳回值
傳回 HRESULT 值。 可能的值包括下表所示的值。
傳回碼 | 描述 |
---|---|
|
成功。 |
|
已超過逾時的設定。 |
備註
如果佇列中沒有事件,這個方法最多會等候 msTimeout 毫秒,讓事件抵達。 避免使用 INFINITE 的逾時間隔,因為執行緒在 等候 GetEvent
時無法處理任何訊息。 如果您從處理 Windows 訊息的相同執行緒呼叫 GetEvent
,請只指定小型等候時間,以便持續回應使用者輸入。
呼叫 GetEvent
之後,呼叫 IMediaEvent::FreeEventParams 方法來釋放為事件參數配置的任何資源。
如需通知碼和事件參數值的清單,請參閱 事件通知代碼。
因為這個方法會從篩選圖形事件佇列中移除事件,所以無法讓多個用戶端監視來自相同圖形的事件。
規格需求
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | control.h (包含 Dshow.h) |
程式庫 | Strmiids.lib |