Bagikan melalui


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

DeregisterShellHookWindow

Sumber Daya Lain

Referensi

SetWindowsHookEx

ShellProc

Menggunakan Pesan dan Antrean Pesan

WinEvents

WindowProc

Windows