IMediaEvent::GetEvent 方法 (control.h)

[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayerIMFMediaEngine音訊/視訊擷取 ,而不是 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 值。 可能的值包括下表所示的值。

傳回碼 描述
S_OK
成功。
E_ABORT
已超過逾時的設定。

備註

如果佇列中沒有事件,這個方法最多會等候 msTimeout 毫秒,讓事件抵達。 避免使用 INFINITE 的逾時間隔,因為執行緒在 等候 GetEvent 時無法處理任何訊息。 如果您從處理 Windows 訊息的相同執行緒呼叫 GetEvent ,請只指定小型等候時間,以便持續回應使用者輸入。

呼叫 GetEvent 之後,呼叫 IMediaEvent::FreeEventParams 方法來釋放為事件參數配置的任何資源。

如需通知碼和事件參數值的清單,請參閱 事件通知代碼

因為這個方法會從篩選圖形事件佇列中移除事件,所以無法讓多個用戶端監視來自相同圖形的事件。

規格需求

   
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 control.h (包含 Dshow.h)
程式庫 Strmiids.lib

另請參閱

錯誤和成功碼

IMediaEvent 介面

IMediaEventEx