public void CreateNewMainForm() { ++m_formCount; MainForm frm = new MainForm(m_comRegistry); frm.FormClosed += OnFormClosed; frm.Show(); }
static void Main() { AppDomain.CurrentDomain.UnhandledException += UnhandledExceptionHandler; Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); using (LoadingDialog loader = new LoadingDialog(Microsoft.Win32.Registry.ClassesRoot)) { if (loader.ShowDialog() == DialogResult.OK) { using (_mainForm = new MainForm()) { Application.Run(_mainForm); } } } }
public static void Main(string[] args) { string database_file = null; string save_file = null; bool enum_clsid = false; bool show_help = false; bool user_only = false; OptionSet opts = new OptionSet() { { "i|in=", "Open a database file.", v => database_file = v }, { "o|out=", "Save database and exit.", v => save_file = v }, { "e|enum", "Enumerate the provided CLSID (GUID).", v => enum_clsid = v != null }, { "u|user", "Use only current user registrations.", v => user_only = v != null }, { "h|help", "Show this message and exit.", v => show_help = v != null }, }; List<string> additional_args = opts.Parse(args); if (show_help || (enum_clsid && additional_args.Count < 4)) { StringWriter writer = new StringWriter(); writer.WriteLine("Usage: OleViewDotNet [options] [enum args]"); writer.WriteLine(); writer.WriteLine("Options:"); opts.WriteOptionDescriptions(writer); MessageBox.Show(writer.ToString(), "Help", MessageBoxButtons.OK, MessageBoxIcon.Information); Environment.Exit(1); } if (enum_clsid) { try { Environment.Exit(EnumInterfaces(additional_args)); } catch { Environment.Exit(42); } } else { Exception error = null; COMRegistry instance = null; AppDomain.CurrentDomain.UnhandledException += UnhandledExceptionHandler; Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); using (LoadingDialog loader = new LoadingDialog(user_only, database_file)) { if (loader.ShowDialog() == DialogResult.OK) { instance = loader.Instance; if (save_file != null) { try { instance.Save(save_file); } catch (Exception ex) { error = ex; } Environment.Exit(0); } } else { error = loader.Error; } } if (error == null) { using (_mainForm = new MainForm(instance)) { Application.Run(_mainForm); } } else { MessageBox.Show(error.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }