Fungsi RegisterShellHookWindow (winuser.h)
[Fungsi ini tidak ditujukan untuk penggunaan umum. Ini bisa diubah atau tidak tersedia dalam versi Windows berikutnya.]
Mendaftarkan jendela Shell tertentu untuk menerima pesan tertentu untuk peristiwa atau pemberitahuan yang berguna untuk aplikasi Shell.
Pesan peristiwa yang diterima hanya yang dikirim ke jendela Shell yang terkait dengan desktop jendela yang ditentukan. Banyak pesan yang sama dengan pesan yang dapat diterima setelah memanggil fungsi SetWindowsHookEx dan menentukan WH_SHELL untuk jenis hook. Perbedaannya dengan RegisterShellHookWindow adalah bahwa pesan diterima melalui WindowProc jendela yang ditentukan dan bukan melalui prosedur panggilan balik.
Sintaks
BOOL RegisterShellHookWindow(
[in] HWND hwnd
);
Parameter
[in] hwnd
Jenis: HWND
Handel ke jendela untuk mendaftarkan pesan kait Shell.
Nilai kembali
Jenis: BOOL
TRUE jika fungsi berhasil; jika tidak, FALSE.
Keterangan
Seperti halnya pesan jendela normal, parameter kedua prosedur jendela mengidentifikasi pesan sebagai WM_SHELLHOOKMESSAGE. Namun, untuk pesan hook Shell ini, nilai pesan bukan konstanta yang telah ditentukan sebelumnya seperti ID pesan lainnya seperti WM_COMMAND. Nilai harus diperoleh secara dinamis menggunakan panggilan ke RegisterWindowMessage seperti yang ditunjukkan di sini:
RegisterWindowMessage(TEXT("SHELLHOOK"));
Ini menghalangi penanganan pesan ini menggunakan pernyataan sakelar tradisional yang memerlukan nilai ID yang diketahui pada waktu kompilasi. Untuk menangani pesan hook Shell, praktik normalnya adalah membuat kode pernyataan If di bagian default pernyataan switch Anda lalu menangani pesan jika nilai ID pesan sama dengan nilai yang diperoleh dari panggilan RegisterWindowMessage .
Tabel berikut ini menjelaskan nilai parameter wParam dan lParam yang diteruskan ke prosedur jendela untuk pesan hook Shell.
wParam | lParam |
---|---|
HSHELL_GETMINRECT | Penunjuk ke struktur SHELLHOOKINFO . |
HSHELL_WINDOWACTIVATED | Handel ke jendela yang diaktifkan. |
HSHELL_RUDEAPPACTIVATED | Handel ke jendela yang diaktifkan. |
HSHELL_WINDOWREPLACING | Handel ke jendela yang menggantikan jendela tingkat atas. |
HSHELL_WINDOWREPLACED | Handel ke jendela sedang diganti. |
HSHELL_WINDOWCREATED | Handel ke jendela yang sedang dibuat. |
HSHELL_WINDOWDESTROYED | Handel ke jendela tingkat atas sedang dihancurkan. |
HSHELL_ACTIVATESHELLWINDOW | Tidak digunakan. |
HSHELL_TASKMAN | Dapat diabaikan. |
HSHELL_REDRAW | Handel ke jendela yang perlu digambar ulang. |
HSHELL_FLASH | Handel ke jendela yang perlu di-flash. |
HSHELL_ENDTASK | Handel ke jendela yang harus dipaksa untuk keluar. |
HSHELL_APPCOMMAND | APPCOMMAND yang telah tidak ditangani oleh aplikasi atau kait lainnya. Lihat WM_APPCOMMAND dan gunakan makro GET_APPCOMMAND_LPARAM untuk mengambil parameter ini. |
HSHELL_MONITORCHANGED | Handel ke jendela yang berpindah ke monitor lain. |
Fungsi ini tidak disertakan dalam header dan pustaka SDK hingga Windows XP dengan Paket Layanan 1 (SP1) dan Windows Server 2003. Jika Anda tidak memiliki file header dan pustaka impor untuk fungsi ini, Anda dapat memanggil fungsi menggunakan LoadLibrary dan GetProcAddress.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Target Platform | Windows |
Header | winuser.h (termasuk Windows.h) |
Pustaka | User32.lib |
DLL | User32.dll |
Lihat juga
Konseptual
Sumber Daya Lain
Referensi