CBaseReferenceClock.AdviseTime 方法

[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayerIMFMediaEngine音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

方法 AdviseTime 创建一次性建议请求。 此方法实现 IReferenceClock::AdviseTime 方法。

语法

HRESULT AdviseTime(
   REFERENCE_TIME baseTime,
   REFERENCE_TIME streamTime,
   HEVENT         hEvent,
   DWORD_PTR      *pdwAdviseToken
);

参数

baseTime

基准参考时间,以 100 纳秒为单位。

streamTime

流偏移时间,以 100 纳秒为单位。

hEvent

由调用方创建的事件的句柄。

pdwAdviseToken

指向接收建议请求标识符的变量的指针。

返回值

返回下表中显示的 HRESULT 值之一。

返回代码 说明
S_OK
成功
E_INVALIDARG
无效的时间值
E_OUTOFMEMORY
失败
E_POINTER
NULL 指针参数

备注

此方法为引用时间 baseTime + streamTime 创建一次性建议请求。 总和必须大于零且小于 MAX_TIME,否则该方法返回E_INVALIDARG。 在请求的时间,时钟向 hEvent 参数中指定的事件发出信号。

若要在到达时间之前取消通知,请调用 CBaseReferenceClock::Unadvise 方法并传递从此调用返回的 pdwAdviseToken 值。 通知发生后,时钟会自动清除它,因此无需调用 Unadvise。 但是,这样做不是错误。

要求

要求
标头
Refclock.h (包括 Streams.h)

Strmbase.lib (零售版本) ;
Strmbasd.lib (调试生成)

另请参阅

CBaseReferenceClock 类