using System; using System.Runtime.InteropServices; using System.IO; using System.Windows.Forms; using System.Reflection; using MsdnMag; namespace Moth { [PreviewHandler("The Moth prev hand", ".dll", "{EA76F5AC-2227-42f9-8FF3-2C08B3F1737D}")] [ProgId("Moth.TheMothPreviewHandler")] [Guid("CD0B9CD6-11E4-40b1-84E5-845939FBF292")] [ClassInterface(ClassInterfaceType.None)] [ComVisible(true)] public sealed class TheMothPreviewHandler : FileBasedPreviewHandler { protected override PreviewHandlerControl CreatePreviewHandlerControl() { return new TheMothPreviewHandlerControl(); } private sealed class TheMothPreviewHandlerControl : FileBasedPreviewHandlerControl { public override void Load(FileInfo file) { string s; try { Assembly ass = Assembly.LoadFrom(file.FullName); s = "1. FullName: \r\n" + ass.FullName + "\r\n\r\n" + "2. CodeBase: \r\n" + ass.CodeBase + "\r\n\r\n" + "3. Built against: " + ass.ImageRuntimeVersion + "\r\n\r\n" + "4. Referenced Assemblies: \r\n"; AssemblyName[] refs = ass.GetReferencedAssemblies(); for (int i = 0; i < refs.Length; i++) s += " -> " + refs[i].Name + "\r\n"; } catch (BadImageFormatException) { s = "Not a managed assembly."; } catch (Exception ex) { s = "Unexpected error. \r\n" + ex.ToString(); } TextBox textBox1 = new TextBox(); textBox1.ReadOnly = true; textBox1.Multiline = true; //textBox1.WordWrap = false; textBox1.ScrollBars = ScrollBars.Both; textBox1.Dock = DockStyle.Fill; textBox1.Text = s; this.Controls.Add(textBox1); } } } }