Fungsi SetCoalescableTimer (winuser.h)
Membuat timer dengan nilai batas waktu yang ditentukan dan menyatukan penundaan toleransi.
Sintaks
UINT_PTR SetCoalescableTimer(
[in, optional] HWND hWnd,
[in] UINT_PTR nIDEvent,
[in] UINT uElapse,
[in, optional] TIMERPROC lpTimerFunc,
[in] ULONG uToleranceDelay
);
Parameter
[in, optional] hWnd
Jenis: HWND
Handel ke jendela yang akan dikaitkan dengan timer. Jendela ini harus dimiliki oleh utas panggilan. Jika nilai NULL untuk hWnd diteruskan bersama dengan nIDEvent dari timer yang ada, timer tersebut akan diganti dengan cara yang sama seperti timer hWnd non-NULL yang ada.
[in] nIDEvent
Jenis: UINT_PTR
Pengidentifikasi timer. Jika parameter hWnd adalah NULL, dan nIDEvent tidak cocok dengan timer yang ada, maka nIDEvent diabaikan dan ID timer baru dihasilkan. Jika parameter hWnd bukan NULL dan jendela yang ditentukan oleh hWnd sudah memiliki timer dengan nilai nIDEvent, maka timer yang ada digantikan oleh timer baru. Saat SetCoalescableTimer menggantikan timer, timer diatur ulang. Oleh karena itu, pesan akan dikirim setelah nilai batas waktu saat ini berlalu, tetapi nilai batas waktu yang ditetapkan sebelumnya diabaikan. Jika panggilan tidak dimaksudkan untuk mengganti timer yang ada, nIDEvent harus 0 jika hWnd adalah NULL.
[in] uElapse
Jenis: UINT
Nilai waktu habis, dalam milidetik.
Jika uElapse kurang dari USER_TIMER_MINIMUM (0x0000000A), batas waktu diatur ke USER_TIMER_MINIMUM. Jika uElapse lebih besar dari USER_TIMER_MAXIMUM (0x7FFFFFFF), batas waktu diatur ke USER_TIMER_MAXIMUM.
Jika jumlah uElapse dan uToleranceDelay melebihi USER_TIMER_MAXIMUM, pengecualian ERROR_INVALID_PARAMETER terjadi.
[in, optional] lpTimerFunc
Jenis: TIMERPROC
Penunjuk ke fungsi yang akan diberi tahu saat nilai waktu habis berlalu. Untuk informasi selengkapnya tentang fungsi ini, lihat TimerProc. Jika lpTimerFunc adalah NULL, sistem memposting pesan WM_TIMER ke antrean aplikasi. Anggota hwnd dari struktur MSG pesan berisi nilai parameter hWnd .
[in] uToleranceDelay
Jenis: ULONG
Jenis dapat berupa salah satu dari nilai berikut:
Nilai | Makna |
---|---|
|
Menggunakan sistem default timer coalescing. |
|
Tidak menggunakan timer coalescing. Ketika nilai ini digunakan, timer yang dibuat tidak digabungkan, apa pun yang digunakan oleh timer default sistem atau bendera kompatibilitas aplikasi.
Catatan Jangan gunakan nilai ini kecuali Anda yakin bahwa timer tidak memerlukan coalescing.
|
|
Menentukan penundaan toleransi coalescing, dalam milidetik.
Aplikasi harus mengatur nilai ini ke default sistem (TIMERV_DEFAULT_COALESCING) atau nilai terbesar yang mungkin. Jika jumlah uElapse dan uToleranceDelay melebihi USER_TIMER_MAXIMUM (0x7FFFFFFF), pengecualian ERROR_INVALID_PARAMETER terjadi. Lihat Windows Timer Coalescing untuk detail selengkapnya dan praktik terbaik. |
|
Nilai yang tidak valid. Jika uToleranceDelay diatur ke nilai yang tidak valid, fungsi gagal dan mengembalikan nol. |
Mengembalikan nilai
Jenis: UINT_PTR
Jika fungsi berhasil dan parameter hWnd adalah NULL, nilai yang dikembalikan adalah bilangan bulat yang mengidentifikasi timer baru. Aplikasi dapat meneruskan nilai ini ke fungsi KillTimer untuk menghancurkan timer.
Jika fungsi berhasil dan parameter hWnd bukan NULL, maka nilai yang dikembalikan adalah bilangan bulat bukan nol. Aplikasi dapat meneruskan nilai parameter nIDEvent ke fungsi KillTimer untuk menghancurkan timer.
Jika fungsi gagal membuat timer, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Keterangan
Aplikasi dapat memproses WM_TIMER pesan dengan menyertakan pernyataan kasus WM_TIMER dalam prosedur jendela atau dengan menentukan fungsi panggilan balik TimerProc saat membuat timer. Saat Anda menentukan fungsi panggilan balik TimerProc , prosedur jendela default memanggil fungsi panggilan balik saat memproses WM_TIMER. Oleh karena itu, Anda perlu mengirimkan pesan di utas panggilan, bahkan ketika Anda menggunakan TimerProc alih-alih memproses WM_TIMER.
Parameter wParam dari pesan WM_TIMER berisi nilai parameter nIDEvent .
Pengidentifikasi timer, nIDEvent, khusus untuk jendela terkait. Jendela lain dapat memiliki timer sendiri yang memiliki pengidentifikasi yang sama dengan timer yang dimiliki oleh jendela lain. Timernya berbeda.
SetTimer dapat menggunakan kembali ID timer dalam kasus di mana hWnd adalah NULL.
Ketika uToleranceDelay diatur ke 0, coalescing timer default sistem digunakan dan SetCoalescableTimer berperilaku sama dengan SetTimer.
Sebelum menggunakan SetCoalescableTimer atau fungsi terkait timer lainnya, disarankan untuk mengatur bendera UOI_TIMERPROC_EXCEPTION_SUPPRESSION ke false melalui fungsi SetUserObjectInformationW , jika tidak, aplikasi dapat berperilaku tidak terduga dan dapat rentan terhadap eksploitasi keamanan. Untuk informasi selengkapnya, lihat SetUserObjectInformationW.
Persyaratan
Klien minimum yang didukung | Windows 8 [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2012 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | winuser.h (sertakan Windows.h) |
Pustaka | User32.lib |
DLL | User32.dll |
Set API | ext-ms-win-ntuser-window-l1-1-2 (diperkenalkan dalam Windows 10, versi 10.0.10240) |
Lihat juga
Konseptual
Referensi
Sampel