private void BtnOk_Click(object sender, EventArgs e) { var dialogResult = MessageBox.Show(Resources.MessageBox_DeleteAllFilesReally, Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2); if (dialogResult == DialogResult.Yes) { int removedCount = 0; foreach (var listViewItem in lvCleanupHandlers.Items.OfType <ListViewItem>()) { if (listViewItem.Tag is CleanupHandler cHandler) { if (!lblShoreMoreSettings.Visible) { cHandler.StateFlag = listViewItem.Checked; CleanupApi.UpdateHandlerStateFlag(cHandler); } // Get rid of handlers that we won't need early on if (!listViewItem.Checked) { try { cHandler.Instance.Deactivate(out uint dummy); } catch { } Marshal.FinalReleaseComObject(cHandler.Instance); Preferences.CleanupHandlers.Remove(cHandler); removedCount++; } } } CleanupApi.DeactivateHandlers(Preferences.CleanupHandlers); DialogResult = DialogResult.OK; } }