private void ExecPlugin(IPreview plugin, ICASCEntry file) { try { using (var stream = _casc.OpenFile(file.Hash)) { // todo: use Task var control = plugin.Show(stream, file.Name); if (m_currentControl != control) { ViewPanel.Controls.Clear(); ViewPanel.Controls.Add(control); control.Dock = DockStyle.Fill; m_currentControl = control; } } } catch (Exception ex) { MessageBox.Show(ex.Message, "Plugin Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }