CreateTimerQueueTimer

タイマキュータイマを作成する。このタイマは指定された DueTime で満了し、その後指定された周期ごとに満了する。タイマが満了するとコールバック関数が呼ばれる。

CreateTimerQueueTimer phNewTimer, TimerQueue, Callback, Parameter, DueTime, Period, Flags

phNewTimer : [intptr] 戻り時にタイマキュータイマへのハンドルを受け取るバッファへのポインタ。このハンドルが期限切れになり不要になったら、DeleteTimerQueueTimer を呼んで解放する。
TimerQueue : [intptr] タイマキューへのハンドル。このハンドルは CreateTimerQueue 関数が返す。このパラメータが NULL の場合、タイマは既定のタイマキューに関連付けられる。
Callback : [int] タイマが満了したときに実行されるアプリケーション定義の WAITORTIMERCALLBACK 型関数へのポインタ。詳細は WaitOrTimerCallback を参照。
Parameter : [intptr] コールバック関数に渡される 1 つのパラメータ値。
DueTime : [int] タイマが初めてシグナルされるまでに経過すべき、現在時刻からの相対時間(ミリ秒単位)。
Period : [int] タイマの周期(ミリ秒単位)。このパラメータがゼロの場合、タイマは 1 度だけシグナルされる。ゼロより大きい場合、タイマは周期タイマとなる。周期タイマはキャンセルされるまで周期が経過するたびに自動的に再有効化される。
Flags : [int] 

(プラグイン / モジュール : kernel32.dll)

解説

タイマキュータイマを作成する。このタイマは指定された DueTime
で満了し、その後指定された周期ごとに満了する。タイマが満了するとコールバック関数が呼ばれる。

[戻り値]
関数が成功した場合、戻り値はゼロ以外。関数が失敗した場合、戻り値はゼロ。拡張エラー情報を取得するには GetLastError を呼ぶ。

[備考]
DueTime と Period の両パラメータがゼロ以外の場合、タイマはまず DueTime
でシグナルされ、その後周期的にシグナルされる。コールバックは前回のコールバックの実行が終わっているかどうかに関わらず、周期が経過するたびに呼ばれる。コールバック関数はスレッドプールにキューされる。これらのスレッドはスケジューリング遅延の影響を受けるため、アプリケーションやシステムで他に何が起きているかによってタイミングが変動する可能性がある。システムがスリープやハイバネーションで過ごす時間はタイマの満了に加算されない。タイマは、システムが起動状態で過ごす累積時間がタイマの
DueTime または Period に一致したときにシグナルされる。Windows Server 2003 および Windows
XP:
システムがスリープやハイバネーションで過ごす時間はタイマの満了に加算される。システムがスリープ中にタイマが満了する場合、システムが起動したときに直ちにシグナルされる。タイマをキャンセルするには
DeleteTimerQueueTimer 関数を呼ぶ。タイマキュー内のすべてのタイマをキャンセルするには
DeleteTimerQueueEx 関数を呼ぶ。既定では、スレッドプールの最大スレッド数は 500
である。この上限を引き上げるには、WinNT.h で定義されている WT_SET_MAX_THREADPOOL_THREAD
マクロを使う。
(以下省略)

情報

プラグイン / モジュールkernel32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_kernel32_gen2.hs