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 MHz (每個時鐘刻度為100奈秒) 。 否則,您可以呼叫 IMFClock::GetProperties來取得時鐘的頻率。 頻率會在該方法所傳回之 MFCLOCK_PROPERTIES 結構的 qwClockFrequency 成員中提供。

系統時間會以 phnsSystemTime 參數傳回,而且一律以 100 奈秒的單位表示。

若要瞭解時鐘與其時鐘時間與系統時間相互關聯的頻率,請呼叫 GetProperties。 相互關聯間隔會在 MFCLOCK_PROPERTIES 結構的 qwCorrelationRate 成員中提供。 如果 qwCorrelationRate 為零,表示每當呼叫 GetCorrelatedTime 時,時鐘就會執行相互關聯。 否則,您可以藉由從上次相互關聯的時間推斷來計算目前的時鐘時間。

某些時鐘支援透過 IMFRateControl 介面的速率變更。 如果是,時鐘時間會以頻率×目前速率的速度前進。 如果時鐘未公開 IMFRateControl 介面,則速率一律為1.0。

針對簡報時鐘,時鐘時間是簡報時間,而且一律相對於 IMFPresentationClock::Start中指定的開始時間。 您也可以呼叫 IMFPresentationClock::GetTime 來取得簡報時間。

規格需求

需求
最低支援的用戶端 Windows Vista [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 mfidl.h
程式庫 Mfuuid.lib

另請參閱

IMFClock

MFTIME