Поделиться через


Метод IMFClock::GetCorrelatedTime (mfidl.h)

Извлекает время последних часов, сопоставленное с системным временем.

Синтаксис

HRESULT GetCorrelatedTime(
  [in]  DWORD    dwReserved,
  [out] LONGLONG *pllClockTime,
  [out] MFTIME   *phnsSystemTime
);

Параметры

[in] dwReserved

Зарезервировано, должно быть равно нулю.

[out] pllClockTime

Получает последнее известное время часов в единицах частоты часов.

[out] phnsSystemTime

Получает системное время, соответствующее времени, возвращаемому в pllClockTime, в 100-наносекундных единицах.

Возвращаемое значение

Метод возвращает HRESULT. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице.

Код возврата Описание
S_OK
Метод выполнен успешно.
MF_E_CLOCK_NO_TIME_SOURCE
Часы не имеют источника времени.

Комментарии

Через определенный фиксированный интервал часы сопоставляют свои внутренние такты с системным временем. (Системное время — это время, возвращаемое счетчиком производительности с высоким разрешением.) Этот метод возвращает следующее:

  • Самые последние часы, коррелированные с системным временем.
  • Системное время выполнения корреляции.
Время часов возвращается в параметре pllClockTime и выражается в единицах частоты часов. Если метод IMFClock::GetClockCharacteristics для часов возвращает флаг MFCLOCK_CHARACTERISTICS_FLAG_FREQUENCY_10MHZ , частота часов составляет 10 МГц (каждый такт часов равен 100 наносекунд). В противном случае можно получить частоту часов, вызвав IMFClock::GetProperties. Частота задается в элементе qwClockFrequencyструктуры MFCLOCK_PROPERTIES , возвращаемой этим методом.

Системное время возвращается в параметре phnsSystemTime и всегда выражается в 100-наносекундных единицах.

Чтобы узнать, как часто часы сопоставляют свое время с системным временем, вызовите Метод GetProperties. Интервал корреляции задается в элементе qwCorrelationRate структуры MFCLOCK_PROPERTIES . Если параметр qwCorrelationRate равен нулю, это означает, что часы выполняют корреляцию при каждом вызове Метода GetCorrelatedTime . В противном случае можно вычислить текущее время часов путем экстраполяции из последнего коррелированного времени.

Некоторые часы поддерживают изменения скорости через интерфейс IMFRateControl . Если это так, время движется со скоростью частоты × текущей скорости. Если часы не предоставляют интерфейс IMFRateControl , ставка всегда составляет 1,0.

Для часов презентации часы — это время презентации и всегда относительно времени начала, указанного в параметре IMFPresentationClock::Start. Вы также можете получить время презентации, вызвав IMFPresentationClock::GetTime.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header mfidl.h
Библиотека Mfuuid.lib

См. также раздел

IMFClock

MFTIME