private void cmsInterop_Opening(object sender, CancelEventArgs e) { cmsInterop.Items.Clear(); if (lvExif.SelectedItems.Count == 0) { ToolStripMenuItem menu = new ToolStripMenuItem("Select a tag to view."); menu.Enabled = false; cmsInterop.Items.Add(menu); } else { ToolStripItem menu = null; ExifProperty item = (ExifProperty)lvExif.SelectedItems[0].Tag; ExifBitConverter conv = new ExifBitConverter(BitConverterEx.SystemByteOrder, BitConverterEx.SystemByteOrder); byte[] bytes = item.Interoperability.Data; if (bytes.Length >= 2) { menu = new ToolStripMenuItem("ushort: " + conv.ToUInt16(bytes, 0)); cmsInterop.Items.Add(menu); menu = new ToolStripMenuItem("short: " + conv.ToInt16(bytes, 0)); cmsInterop.Items.Add(menu); menu = new ToolStripSeparator(); cmsInterop.Items.Add(menu); } if (bytes.Length >= 4) { menu = new ToolStripMenuItem("uint: " + conv.ToUInt32(bytes, 0)); cmsInterop.Items.Add(menu); menu = new ToolStripMenuItem("int: " + conv.ToInt32(bytes, 0)); cmsInterop.Items.Add(menu); menu = new ToolStripSeparator(); cmsInterop.Items.Add(menu); } { menu = new ToolStripMenuItem("ascii: " + Encoding.ASCII.GetString(bytes)); cmsInterop.Items.Add(menu); menu = new ToolStripMenuItem("utf-8: " + Encoding.UTF8.GetString(bytes)); cmsInterop.Items.Add(menu); menu = new ToolStripMenuItem("utf-16: " + Encoding.Unicode.GetString(bytes)); cmsInterop.Items.Add(menu); } } }