<Return[T]><Top>

timeGetTime

Declare Function Api_timeGetTime& Lib "winmm" Alias "timeGetTime" ()

Declare Function timeGetTime Lib "winmm" () As Long

システム時刻をミリ秒単位で取得する。システム時刻は Windows が起動してから経過した時間である。

パラメータ
    パラメータはなし。

戻り値
    関数が成功すると、システム時刻がミリ秒単位で返る。

解説
    この関数と timeGetSystemTime 関数との唯一の違いは、timeGetSystemTime 関数では、システム時刻を返すのに MMTIME 構造体

    を使う点である。timeGetTime 関数では、timeGetSystemTime 関数よりもオーバーヘッドが少なくて済む。
    timeGetTime 関数で返される値は DWORD 値であることに注意する。戻り値は 0 ミリ秒から 2^32 ミリ秒の間を循環する。

    2^32 ミリ秒は約 49.71 日にあたる。計算に timeGetTime 関数の戻り値を直接使うようなコードでは、特にコードの実行を制御する場合な

    どに、問題が発生する可能性がある。計算では常に、2 つの timeGetTime 関数の戻り値の差を使う。
    Windows NT:timeGetTime 関数の既定の精度は、マシンによっては 5 ミリ秒以上になる場合がある。

    timeGetTime 関数の精度は、timeBeginPeriod 関数と timeEndPeriod 関数を使って上げることができる。

    こうすると、2 つの連続した timeGetTime 関数の戻り値の差の最小値は、timeBeginPeriod 関数と timeEndPeriod 関数を使って設定さ

    れた間隔の最小値と同じになる。高い分解能で短い時間間隔を測定するには、QueryPerformanceCounter 関数と

    QueryPerformanceFrequency 関数を使う。
    Windows 95:timeGetTime 関数の既定の精度は 1 ミリ秒である。

    つまり、timeGetTime 関数は、1 ミリ秒しか違わない連続値を返すことができる。

    timeBeginPeriod 関数と timeEndPeriod 関数に対して行われた呼び出しがどのような性質のものであっても、これは変わらない。