protected override void Dispose(bool disposing) { lock (this) { if (!m_disposed && disposing) { m_localWindowsHook.Dispose(); m_disposed = true; } base.Dispose(disposing); } }
protected override void Dispose(bool disposing) { lock (this) { if (!m_disposed && disposing) { if (NativeMethods.ShouldUseWin32()) { m_localWindowsHook.Dispose(); } m_disposed = true; } base.Dispose(disposing); } }
protected override void Dispose(bool disposing) { if (!m_disposed && disposing) { if (!Win32Helper.IsRunningOnMono) { sm_localWindowsHook.HookInvoked -= m_hookEventHandler; } --_referenceCount; if (_referenceCount == 0 && sm_localWindowsHook != null) { sm_localWindowsHook.Dispose(); sm_localWindowsHook = null; } m_disposed = true; } base.Dispose(disposing); }