## Код:
```
MODULE SmartMWheel;

IMPORT WinApi, StdLog, HostWindows;

VAR
   
   thrd: WinApi.HANDLE;
   mhook: WinApi.HHOOK;
   Handler: PROCEDURE(code: INTEGER; wparam: WinApi.WPARAM; lparam: WinApi.LPARAM): INTEGER;
   hinst: WinApi.HINSTANCE; 
   
PROCEDURE Do*();
BEGIN
   mhook := WinApi.SetWindowsHookEx(14, Handler, 0, thrd);
   StdLog.Int(mhook);
END Do;

PROCEDURE Undo*;
BEGIN
   IF WinApi.UnhookWindowsHookEx(mhook) = 0 THEN
      StdLog.String("Hook NOT deleted");
   ELSE
      StdLog.String("Hook deleted");
   END;
END Undo;

PROCEDURE HandlerProc(code: INTEGER; wparam: WinApi.WPARAM; lparam: WinApi.LPARAM): INTEGER;
VAR
   wnd: HostWindows.Window;
   msg: WinApi.MSG;
   res: INTEGER;
BEGIN
   
   wnd := HostWindows.dir.First(); 
   
   CASE wparam OF
      | WinApi.WM_MOUSEWHEEL:
         StdLog.String("Wheel"); StdLog.Ln;
         
         RETURN -1; (*WinApi.CallNextHookEx(WinApi.WM_NULL, code, wparam, lparam);*)
         
   ELSE
         RETURN WinApi.CallNextHookEx(WinApi.WM_NULL, code, wparam, lparam);
   END;
END HandlerProc;

BEGIN
   Handler := HandlerProc;
   thrd := WinApi.GetCurrentThreadId();
   StdLog.Int(thrd);
END SmartMWheel.

SmartMWheel.Do
SmartMWheel.Undo
```


Что не так делаю?