Bagikan melalui


Fungsi LowLevelMouseProc

Deskripsi

Fungsi panggilan balik yang ditentukan aplikasi atau yang ditentukan pustaka yang digunakan dengan fungsi SetWindowsHookExA/SetWindowsHookExW . Sistem memanggil fungsi ini setiap kali peristiwa input mouse baru akan diposting ke dalam antrean input utas.

Jenis HOOKPROC mendefinisikan penunjuk ke fungsi panggilan balik ini. LowLevelMouseProc adalah tempat penampung untuk nama fungsi yang ditentukan aplikasi atau yang ditentukan pustaka.

LowLevelMouseProc adalah tempat penampung untuk nama fungsi yang ditentukan aplikasi atau yang ditentukan pustaka.

LRESULT CALLBACK LowLevelMouseProc(
  _In_ int    nCode,
  _In_ WPARAM wParam,
  _In_ LPARAM lParam
);

Parameter

nCode [in]

Jenis: int

Kode yang digunakan prosedur kait untuk menentukan cara memproses pesan.

Jika nCode kurang dari nol, prosedur hook harus meneruskan pesan ke fungsi CallNextHookEx tanpa pemrosesan lebih lanjut dan harus mengembalikan nilai yang dikembalikan oleh CallNextHookEx.

Parameter ini bisa menjadi salah satu nilai berikut.

Nilai Makna
HC_ACTION 0 Parameter wParam dan lParam berisi informasi tentang pesan mouse.

wParam [in]

Jenis: WPARAM

Pengidentifikasi pesan mouse.

Parameter ini bisa menjadi salah satu pesan berikut: WM_LBUTTONDOWN, WM_LBUTTONUP, WM_MOUSEMOVE, WM_MOUSEWHEEL, WM_RBUTTONDOWN , atau WM_RBUTTONUP.

lParam [in]

Jenis: LPARAM

Penunjuk ke struktur MSLLHOOKSTRUCT .

Mengembalikan

Jenis: LRESULT

Jika nCode kurang dari nol, prosedur hook harus mengembalikan nilai yang dikembalikan oleh CallNextHookEx.

Jika nCode lebih besar dari atau sama dengan nol, dan prosedur kait tidak memproses pesan, sangat disarankan agar Anda memanggil CallNextHookEx dan mengembalikan nilai yang dikembalikannya; jika tidak, aplikasi lain yang telah menginstal kait WH_MOUSE_LL tidak akan menerima pemberitahuan kait dan mungkin bertingkah salah sebagai hasilnya.

Jika prosedur kait memproses pesan, itu dapat mengembalikan nilai bukan nol untuk mencegah sistem meneruskan pesan ke rantai kait lainnya atau prosedur jendela target.

Keterangan

Aplikasi menginstal prosedur kait dengan menentukan jenis kait WH_MOUSE_LL dan penunjuk ke prosedur kait dalam panggilan ke fungsi SetWindowsHookExA/SetWindowsHookExW .

Kait ini dipanggil dalam konteks utas yang memasangnya. Panggilan dilakukan dengan mengirim pesan ke utas yang menginstal kait. Oleh karena itu, utas yang memasang hook harus memiliki perulangan pesan.

Input mouse dapat berasal dari driver mouse lokal atau dari panggilan ke fungsi mouse_event . Jika input berasal dari panggilan ke mouse_event, inputnya "disuntikkan". Namun, kait WH_MOUSE_LL tidak disuntikkan ke proses lain. Sebaliknya, konteks beralih kembali ke proses yang menginstal kait dan dipanggil dalam konteks aslinya. Kemudian konteks beralih kembali ke aplikasi yang menghasilkan peristiwa.

Prosedur kait harus memproses pesan dalam waktu yang lebih singkat daripada entri data yang ditentukan dalam nilai LowLevelHooksTimeout dalam kunci registri berikut:

HKEY_CURRENT_USER\Control Panel\Desktop

Nilainya dalam milidetik. Jika prosedur kait kehabisan waktu, sistem meneruskan pesan ke kait berikutnya. Namun, pada Windows 7 dan yang lebih baru, kait dihapus secara diam-diam tanpa dipanggil. Tidak ada cara bagi aplikasi untuk mengetahui apakah kait dihapus.

Windows 10 versi 1709 dan yang lebih baru Nilai batas waktu maksimum yang diizinkan sistem adalah 1000 milidetik (1 detik). Sistem akan default menggunakan batas waktu 1000 milidetik jika nilai LowLevelHooksTimeout diatur ke nilai yang lebih besar dari 1000.

Catatan

Kait debug tidak dapat melacak jenis kait tetikus tingkat rendah ini. Jika aplikasi harus menggunakan kait tingkat rendah, aplikasi harus menjalankan kait pada utas khusus yang meneruskan pekerjaan ke utas pekerja dan kemudian segera kembali. Dalam kebanyakan kasus di mana aplikasi perlu menggunakan kait tingkat rendah, aplikasi harus memantau input mentah sebagai gantinya. Ini karena input mentah dapat secara asinkron memantau pesan mouse dan keyboard yang ditargetkan untuk utas lain lebih efektif daripada kait tingkat rendah. Untuk informasi selengkapnya tentang input mentah, lihat Input Mentah.

Lihat juga

CallNextHookEx

mouse_event

KBDLLHOOKSTRUCT

MSLLHOOKSTRUCT

SetWindowsHookEx

WM_LBUTTONDOWN

WM_LBUTTONUP

WM_MOUSEMOVE

WM_MOUSEWHEEL

WM_RBUTTONDOWN

WM_RBUTTONUP

Hook

Tentang Hooks