// Dispose
    private void Dispose(Boolean disposing) {
      if (IsDisposed)
        return;

      if (disposing) {
        AppDomain.CurrentDomain.ProcessExit -= OnProcessExit;

        m_Core.Changed -= OnClipboardChanged;
        m_Core.Dispose();

        m_Core = null;
      }

      IsDisposed = true;
    }
    /// <summary>
    /// Standard constructor
    /// </summary>
    public ClipboardMonitor()
      : base() {

      m_Core = new ClipboardMonitorCore();
      m_Core.Changed += OnClipboardChanged;

      AppDomain.CurrentDomain.ProcessExit += OnProcessExit;
    }