Wenn man davon ausgeht, das immer irgendwo was schief gehen kann, dann sollte das
Code:
UnhookWindowsHookEx(mHook);
besser im FormDestroy erfolgen.
OnClose / OnCloseQuery ist dafür nicht das richtige Ereignis, da es nicht sichergestellt ist, das es immer aufgerufen wird.
Aber wäre es nicht besser diesen Hook nur zu aktivieren, wenn das Form den Focus hat?
Da wäre OnActivate / OnDeactivate das passende Ereignis.