Método IMFClock::GetCorrelatedTime (mfidl.h)

Recupera la última hora del reloj correlacionada con la hora del sistema.

Sintaxis

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

Parámetros

[in] dwReserved

Reservado, debe ser 0.

[out] pllClockTime

Recibe la última hora del reloj conocida, en unidades de la frecuencia del reloj.

[out] phnsSystemTime

Recibe la hora del sistema que corresponde a la hora del reloj devuelta en pllClockTime, en unidades de 100 nanosegundos.

Valor devuelto

El método devuelve un valor HRESULT. Entre los valores posibles se incluyen los que se indican en la tabla siguiente, entre otros.

Código devuelto Descripción
S_OK
El método se ha llevado a cabo de forma correcta.
MF_E_CLOCK_NO_TIME_SOURCE
El reloj no tiene un origen de hora.

Comentarios

En algún intervalo fijo, un reloj correlaciona sus tics de reloj internos con la hora del sistema. (La hora del sistema es la hora devuelta por el contador de alto rendimiento de alta resolución). Este método devuelve:

  • La hora del reloj más reciente que se correlaciona con la hora del sistema.
  • Hora del sistema en la que se realizó la correlación.
La hora del reloj se devuelve en el parámetro pllClockTime y se expresa en unidades de la frecuencia del reloj. Si el método IMFClock::GetClockCharacteristics del reloj devuelve la marca MFCLOCK_CHARACTERISTICS_FLAG_FREQUENCY_10MHZ , la frecuencia del reloj es de 10 MHz (cada tic del reloj es de 100 nanosegundos). De lo contrario, puede obtener la frecuencia del reloj llamando a IMFClock::GetProperties. La frecuencia se da en el miembro qwClockFrequency de la estructura MFCLOCK_PROPERTIES devuelta por ese método.

La hora del sistema se devuelve en el parámetro phnsSystemTime y siempre se expresa en unidades de 100 nanosegundos.

Para averiguar con qué frecuencia el reloj correlaciona su hora del reloj con la hora del sistema, llame a GetProperties. El intervalo de correlación se da en el miembro qwCorrelationRate de la estructura MFCLOCK_PROPERTIES . Si qwCorrelationRate es cero, significa que el reloj realiza la correlación cada vez que se llama a GetCorrelatedTime . De lo contrario, puede calcular la hora del reloj actual mediante la extrapolación de la última hora correlacionada.

Algunos relojes admiten los cambios de velocidad a través de la interfaz IMFRateControl . Si es así, el tiempo del reloj avanza a una velocidad de frecuencia × velocidad actual. Si un reloj no expone la interfaz IMFRateControl , la tasa siempre es de 1,0.

Para el reloj de presentación, la hora del reloj es la hora de presentación y siempre es relativa a la hora de inicio especificada en IMFPresentationClock::Start. También puede obtener la hora de presentación llamando a IMFPresentationClock::GetTime.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado mfidl.h
Library Mfuuid.lib

Consulte también

IMFClock

MFTIME