Share via


IReferenceClock::AdvisePeriodic 方法 (strmif.h)

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

方法 AdvisePeriodic 會建立定期建議要求。

語法

HRESULT AdvisePeriodic(
  [in]  REFERENCE_TIME startTime,
  [in]  REFERENCE_TIME periodTime,
  [in]  HSEMAPHORE     hSemaphore,
  [out] DWORD_PTR      *pdwAdviseCookie
);

參數

[in] startTime

第一個通知的時間,以100奈秒為單位。 必須大於零且小於 MAX_TIME。

[in] periodTime

通知之間的時間,以 100 奈秒為單位。 必須大於零。

[in] hSemaphore

呼叫端所建立之號誌的句柄。

[out] pdwAdviseCookie

接收建議要求標識碼之變數的指標。

傳回值

傳回 HRESULT 值。 可能的值如下。

傳回碼 描述
S_OK
成功。
E_INVALIDARG
無效的時間值。
E_OUTOFMEMORY
失敗。
E_POINTER
NULL 指標自變數。

備註

每次通知時,時鐘都會釋放 hSemaphore 參數中指定的號誌。 若不需要進一步通知,請呼叫 IReferenceClock::Unadvise ,並傳遞從此呼叫傳回的 pdwAdviseToken 值。

下列程式代碼範例會建立建議要求,從建立時發出 5 秒的訊號,並在之後每隔一秒再次發出訊號:

C++
IReferenceClock *pRefClock = NULL;取得未顯示)  (IReferenceClock 指標。

DWORD dwAdviseToken;HANDLE hSemaphore = CreateSemaphore (NULL, 0, 0x7FFFFFFF, NULL) ;REFERENCE_TIME rtPeriodTime = 10000000;REFERENCE_TIME rtNow 的一秒間隔;

pRefClock-GetTime> (&rtNow) ; pRefClock-AdvisePeriodic> (rtNow + (5 * rtPeriodTime) , rtPeriodTime, hSemaphore, &dwAdviseToken) ; ...

pRefClock->Unadvise(dwAdviseToken);

規格需求

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

另請參閱

錯誤和成功碼

IReferenceClock 介面