Subj.
OnApplicationWindowChange never fires, because ShellHook ignores all windows without WS_SYSMENU.
I think the logic in ShellHook.IsAppWindow deserves some explanation overall. For example, there's a check for IsWindowVisible, but it never tracks if window becomes visible after creation.
Perhaps, library user should be able to filter windows on their own.