protected void Dispose(bool disposing) { if (IsDisposed) { return; } if (disposing) { _mouseHook.Dispose(); if (!_isStopped) { Stop(); } if (_stayTimer != null) { _stayTimer.Dispose(); } #if DEBUG _monitoringHook.Dispose(); #endif } else { Debug.WriteLine("Win32MousePathTracker2.Dispose(false) called by finalizer, which is probably dangerous."); } IsDisposed = true; }