/// <summary/>
 protected virtual void Dispose(bool fDisposing)
 {
     System.Diagnostics.Debug.WriteLineIf(!fDisposing, "****** Missing Dispose() call for " + GetType().Name + ". ****** ");
     if (fDisposing && !IsDisposed)
     {
         // dispose managed and unmanaged objects
         m_firstTimeAppHasBeenRun.Dispose();
         m_showSideBar.Dispose();
         m_showStatusBar.Dispose();
         m_openLastEditedProject.Dispose();
         m_loadingProcessId.Dispose();
         m_numberOfLaunches.Dispose();
         m_numberOfSeriousCrashes.Dispose();
         m_numberOfAnnoyingCrashes.Dispose();
         m_totalAppRuntime.Dispose();
         m_appStartupTime.Dispose();
         m_latestProject.Dispose();
         m_latestServer.Dispose();
     }
     IsDisposed = true;
 }