HookHandle:= SetWindowsHookEx(WH_JOURNALRECORD, HookProc, HInstance, 0);
While GetMessage(TheMessage, 0, 0, 0) do
  begin
    if (TheMessage.Message = WM_CANCELJOURNAL) then  // 重新挂钩
      HookHandle := SetWindowsHookEx(WH_JOURNALRECORD, HookProc, HInstance, 0);
  end; 
UnHookWindowsHookEx(HookHandle);不大懂 这个循环的原理?
还有的就是 HookProc子程序中最后一句
Result := CallNextHookEx(HookHandle, nCode, wParam, lParam);有什么作用?