private static void ReportUnhandledException(object sender, CorrelatedExceptionEventArgs e)
        {
            Form currentOwner;
            lock (syncRoot)
            {
                if (installedOwner == null || installedOwner.IsDisposed)
                {
                    Uninstall();
                    return;
                }

                currentOwner = installedOwner;
            }

            Sync.Invoke(currentOwner, () => ErrorDialog.Show(currentOwner, "Unhandled Exception", e.Message, e.GetDetails()));
        }