<Return[S]><Top>

SetWaitableTimer

Declare Function Api_SetWaitableTimer& Lib "kernel32" Alias "SetWaitableTimer" (ByVal hTimer&, lpDueTime As FILETIME, ByVal lPeriod&, ByVal pfnCompletionRoutine&, ByVal lpArgToCompletionRoutine&, ByVal fResume&)

Declare Function SetWaitableTimer Lib "kernel32" (ByVal hTimer As Long, lpDueTime As FILETIME, ByVal lPeriod As Long, ByVal pfnCompletionRoutine As Long, ByVal lpArgToCompletionRoutine As Long, ByVal fResume As Long) As Long

パラメータ
hTimer
    タイマオブジェクトのハンドルを指定する。このハンドルは、CreateWaitableTimer 関数または OpenWaitableTimer 関数で取得する。
pDueTime
    タイマをシグナル状態にするまでの時間を 100 ナノ秒単位で指定する。

    FILETIME 構造体で説明されている形式を使う。正の値は絶対時間を示す。

    Windows 内部で UTC ベースの時間が使われているため、必ず UTC ベースの絶対時間を使うこと。

    負の値は相対時間を示す。実際のタイマの精度は、ハードウェアの能力によって異なる。
lPeriod
    タイマをアクティブにする間隔ををミリ秒単位で指定する。lPeriod に 0 を指定すると、タイマは 1 度だけシグナル状態になる。

    0 より大きい値を指定すると、タイマは周期タイマになる。周期タイマは、CancelWaitableTimer 関数で取り消すか、SetWaitableTimer

    関数で再設定するまで、自動的に指定時間間隔で再開する。lPeriod に 0 より小さい値を指定すると、関数は失敗する。
pfnCompletionRoutine
    省略可能な完了ルーチンへのポインタを指定する。完了ルーチンは PTIMERAPCROUTINE 型のアプリケーション定義関数で、タイマがシ

    グナル状態になると実行される。
lpArgToCompletionRoutine
    省略可能な完了ルーチンに渡す構造体へのポインタを指定する。
fResume
    タイマがシグナル状態になったときにシステムを中断電源節約モードから元に戻すかどうかを指定する。

    この機能をサポートしないプラットフォームで TRUE を指定すると、関数は成功するが、GetLastError 関数が

    ERROR_NOT_SUPPORTED を返す。
 

戻り値
    関数が成功すると、0 以外の値が返る。
    関数が失敗すると、0 が返る。拡張エラー情報を取得するには、GetLastError 関数を使う。