Bagikan melalui


Fungsi panggilan balik CBTProc

Fungsi panggilan balik yang ditentukan aplikasi atau yang ditentukan pustaka yang digunakan dengan fungsi SetWindowsHookExA/SetWindowsHookExW . Sistem memanggil fungsi ini sebelum mengaktifkan, membuat, menghancurkan, meminimalkan, memaksimalkan, memindahkan, atau mengubah ukuran jendela; sebelum menyelesaikan perintah sistem; sebelum menghapus peristiwa mouse atau keyboard dari antrean pesan sistem; sebelum mengatur fokus keyboard; atau sebelum menyinkronkan dengan antrean pesan sistem. Aplikasi pelatihan berbasis komputer (CBT) menggunakan prosedur kait ini untuk menerima pemberitahuan yang berguna dari sistem.

Sintaks

LRESULT CALLBACK CBTProc(
  _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
    HCBT_ACTIVATE 5

    Sistem akan mengaktifkan jendela.

    HCBT_CLICKSKIPPED 6

    Sistem telah menghapus pesan mouse dari antrean pesan sistem. Setelah menerima kode kait ini, aplikasi CBT harus menginstal prosedur kait WH_JOURNALPLAYBACK sebagai respons terhadap pesan mouse.

    HCBT_CREATEWND 3

    Jendela akan dibuat. Sistem memanggil prosedur kait sebelum mengirim pesan WM_CREATE atau WM_NCCREATE ke jendela. Jika prosedur kait mengembalikan nilai bukan nol, sistem akan menghancurkan jendela; fungsi CreateWindow mengembalikan NULL, tetapi pesan WM_DESTROY tidak dikirim ke jendela. Jika prosedur kait mengembalikan nol, jendela dibuat secara normal.

    Pada saat pemberitahuan HCBT_CREATEWND , jendela telah dibuat, tetapi ukuran dan posisi akhirnya mungkin belum ditentukan dan jendela induknya mungkin belum ditetapkan. Dimungkinkan untuk mengirim pesan ke jendela yang baru dibuat, meskipun belum menerima pesan WM_NCCREATE atau WM_CREATE . Dimungkinkan juga untuk mengubah posisi dalam urutan z jendela yang baru dibuat dengan memodifikasi anggota hwndInsertAfter dari struktur CBT_CREATEWND .

    HCBT_DESTROYWND 4

    Sebuah jendela akan dihancurkan.

    HCBT_KEYSKIPPED 7

    Sistem telah menghapus pesan keyboard dari antrean pesan sistem. Setelah menerima kode kait ini, aplikasi CBT harus menginstal prosedur kait WH_JOURNALPLAYBACK sebagai respons terhadap pesan keyboard.

    HCBT_MINMAX 1

    Jendela akan diminimalkan atau dimaksimalkan.

    HCBT_MOVESIZE 0

    Jendela akan dipindahkan atau berukuran.

    HCBT_QS 2

    Sistem telah mengambil pesan WM_QUEUESYNC dari antrean pesan sistem.

    HCBT_SETFOCUS 9

    Jendela akan menerima fokus keyboard.

    HCBT_SYSCOMMAND 8

    Perintah sistem akan segera dilakukan. Ini memungkinkan aplikasi CBT untuk mencegah peralihan tugas dengan menggunakan kunci panas.

     
    • wParam [in]
      Jenis: WPARAM

      Tergantung pada parameter nCode . Untuk detailnya, lihat bagian Keterangan berikut ini.

    • lParam [in]
      Jenis: LPARAM

      Tergantung pada parameter nCode . Untuk detailnya, lihat bagian Keterangan berikut ini.

    Nilai kembali

    Jenis:****

    Jenis: LRESULT

    Nilai yang dikembalikan oleh prosedur kait menentukan apakah sistem mengizinkan atau mencegah salah satu operasi ini. Untuk operasi yang sesuai dengan kode hook CBT berikut, nilai yang dikembalikan harus 0 untuk memungkinkan operasi, atau 1 untuk mencegahnya.

    • HCBT_ACTIVATE
    • HCBT_CREATEWND
    • HCBT_DESTROYWND
    • HCBT_MINMAX
    • HCBT_MOVESIZE
    • HCBT_SETFOCUS
    • HCBT_SYSCOMMAND

    Untuk operasi yang sesuai dengan kode hook CBT berikut, nilai pengembalian diabaikan.

    • HCBT_CLICKSKIPPED
    • HCBT_KEYSKIPPED
    • HCBT_QS

    Keterangan

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

    Prosedur kait tidak boleh menginstal prosedur kait WH_JOURNALPLAYBACK kecuali dalam situasi yang dijelaskan dalam daftar kode kait sebelumnya.

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

    Tabel berikut menjelaskan parameter wParam dan lParam untuk setiap kode kait HCBT_ .

    Nilai wParam lParam
    HCBT_ACTIVATE Menentukan handel ke jendela yang akan diaktifkan. Menentukan penunjuk panjang ke struktur CBTACTIVATESTRUCT yang berisi handel ke jendela aktif dan menentukan apakah aktivasi berubah karena klik mouse.
    HCBT_CLICKSKIPPED Menentukan pesan mouse yang dihapus dari antrean pesan sistem. Menentukan penunjuk panjang ke struktur MOUSEHOOKSTRUCT yang berisi kode hit-test dan handel ke jendela tempat pesan mouse dimaksudkan.

    Nilai HCBT_CLICKSKIPPED dikirim ke prosedur kait CBTProc hanya jika kait WH_MOUSE diinstal. Untuk daftar kode hit-test, lihat WM_NCHITTEST.

    HCBT_CREATEWND Menentukan handel ke jendela baru. Menentukan penunjuk panjang ke struktur CBT_CREATEWND yang berisi parameter inisialisasi untuk jendela. Parameter termasuk koordinat dan dimensi jendela. Dengan mengubah parameter ini, prosedur kait CBTProc dapat mengatur ukuran dan posisi awal jendela.
    HCBT_DESTROYWND Menentukan handel ke jendela yang akan dihancurkan. Tidak ditentukan dan harus diatur ke nol.
    HCBT_KEYSKIPPED Menentukan kode kunci virtual. Menentukan jumlah pengulangan, kode pemindaian, kode transisi kunci, status kunci sebelumnya, dan kode konteks. Nilai HCBT_KEYSKIPPED dikirim ke prosedur kait CBTProc hanya jika kait WH_KEYBOARD diinstal. Untuk informasi selengkapnya, lihat WM_KEYUP atau WM_KEYDOWN.
    HCBT_MINMAX Menentukan handel ke jendela yang sedang diminimalkan atau dimaksimalkan. Menentukan, dalam kata berurutan rendah, nilai jendela peragaan (SW_) yang menentukan operasi. Untuk daftar nilai show-window, lihat ShowWindow. Kata berurutan tinggi tidak terdefinis.
    HCBT_MOVESIZE Menentukan handel ke jendela yang akan dipindahkan atau berukuran. Menentukan penunjuk panjang ke struktur RECT yang berisi koordinat jendela. Dengan mengubah nilai dalam struktur, prosedur kait CBTProc dapat mengatur koordinat akhir jendela.
    HCBT_QS Tidak ditentukan dan harus nol. Tidak ditentukan dan harus nol.
    HCBT_SETFOCUS Menentukan handel ke jendela yang mendapatkan fokus keyboard. Menentukan handel ke jendela yang kehilangan fokus keyboard.
    HCBT_SYSCOMMAND Menentukan nilai perintah sistem (SC_) yang menentukan perintah sistem. Untuk informasi selengkapnya tentang nilai perintah sistem, lihat WM_SYSCOMMAND. Berisi data yang sama dengan nilai lParam dari pesan WM_SYSCOMMAND : Jika perintah menu sistem dipilih dengan mouse, kata urutan rendah berisi koordinat x kursor, dalam koordinat layar, dan kata urutan tinggi berisi koordinat y; jika tidak, parameter tidak digunakan.

     

    Untuk detail selengkapnya, lihat Peristiwa Windows.

    Persyaratan

    Klien minimum yang didukung

    Windows 2000 Professional [hanya aplikasi desktop]

    Server minimum yang didukung

    Windows 2000 Server [hanya aplikasi desktop]

    Header

    Winuser.h (termasuk Windows.h)

    Lihat juga

    CallNextHookEx

    CreateWindowA/CreateWindowW

    SetWindowsHookExA/SetWindowsHookExW

    WM_SYSCOMMAND pesan

    Hook