CRefTime 类
[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayer、 IMFMediaEngine 和 媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
类 CRefTime
是用于管理引用时间的帮助程序类。
参考时间是以 100 纳秒为单位表示的时间单位。 此类与 REFERENCE_TIME 数据类型共享相同的数据布局,但添加了一些提供比较、转换和算术函数的方法和运算符。 有关参考时间的详细信息,请参阅 DirectShow 中的时间和时钟。
公共成员变量 | 说明 |
---|---|
m_time | 指定 REFERENCE_TIME 值。 |
公共方法 | 说明 |
CRefTime | 构造函数方法。 |
GetUnits | 检索以 100 纳秒为单位的参考时间。 |
Millisecs | 将引用时间转换为毫秒。 |
运算符 | 说明 |
operator REFERENCE_TIME () | 将 对象强制转换为 REFERENCE_TIME 数据类型。 |
operator= | 分配新的引用时间。 |
operator+= | 添加两个引用时间。 |
operator = | 从一个引用时间减去另一个引用时间。 |
备注
使用此类存在潜在的缺陷。 如果将 CRefTime 对象作为左操作数,将 LONG 类型的变量作为右操作数应用 += 运算符,编译器会将右操作数隐式强制转换为 CRefTime 对象。 此强制转换使用将毫秒转换为REFERENCE_TIME单位的 CRefTime 构造函数;因此,右操作数乘以 10,000:
CRefTime rt; // rt.m_time is 0.
LONG val = 20;
rt += val; // Coerce val to CRefTime, rt.m_time is now 200,000.
但是,使用 + 运算符不会发生同样的事情:
CRefTime rt; // rt.m_time is 0.
LONG val = 20;
rt = rt + val; // CRefTime, rt.m_time is 20.
要求
要求 | 值 |
---|---|
标头 |
|
库 |
|