Expand description
Monitor window operations: creating, activating, title redrawing, monitor changing…
Installs a hook procedure that receives notifications useful to Windows shell applications.
See:
- ShellProc callback function
- RegisterShellHookWindow function (winuser.h)
- Shell Events (a.k.a. Shell Hooks) - zhuman/ShellReplacement
§Examples
use ib_hook::windows::shell::{ShellHook, ShellHookMessage};
{
let hook = ShellHook::new(Box::new(|msg: ShellHookMessage| {
println!("{msg:?}");
false
}))
.unwrap();
// Perform window operations to see received events...
std::thread::sleep(std::time::Duration::from_secs(30));
}
// Shell hook unregistered§Disclaimer
Ref:
- https://github.com/YousefAliUK/FerroDock/blob/b405832a64c763f073b37d9a42a0690d0c15416b/src/events.rs
- https://gist.github.com/Aetopia/347e7329158aa2c69df97bdf0b761d6f
Structs§
Enums§
- Shell
Hook Message - Shell hook message variants.
Constants§
- HSHELL_
ACCESSIBILITYSTATE - HSHELL_
ACTIVATESHELLWINDOW - HSHELL_
APPCOMMAND - HSHELL_
ENDTASK - HSHELL_
FLASH - HSHELL_
GETMINRECT - HSHELL_
HIGHBIT - HSHELL_
LANGUAGE - HSHELL_
MONITORCHANGED - HSHELL_
REDRAW - HSHELL_
RUDEAPPACTIVATED - HSHELL_
SYSMENU - HSHELL_
TASKMAN - HSHELL_
WINDOWACTIVATED - HSHELL_
WINDOWCREATED - HSHELL_
WINDOWDESTROYED - HSHELL_
WINDOWREPLACED - HSHELL_
WINDOWREPLACING
Type Aliases§
- Shell
Hook Callback - The return value should be
falseunless the message isShellHookMessage::AppCommandand the callback handles the [WM_COMMAND] message. In this case, the return should betrue.