public void Update(IEnumerable <libexeinfo.NE.ResourceType> resourceTypes, libexeinfo.NE.TargetOS os) { TreeGridItemCollection treeData = new TreeGridItemCollection(); foreach (libexeinfo.NE.ResourceType resourceType in resourceTypes.OrderBy(r => r.name)) { TreeGridItem root = new TreeGridItem { Values = new object[] { $"{resourceType.name}", null, null, null, os, null } }; foreach (libexeinfo.NE.Resource resource in resourceType.resources.OrderBy(r => r.name)) { root.Children.Add(new TreeGridItem { Values = new object[] { $"{resource.name}", $"{resource.data.Length}", $"{(libexeinfo.NE.ResourceFlags)((ushort)resource.flags & libexeinfo.NE.KNOWN_RSRC_FLAGS)}", $"{resourceType.name}", os, resource } }); } treeData.Add(root); } treeResources.DataStore = treeData; }
public void Update(byte[] data, libexeinfo.NE.TargetOS targetOs) { grdAccelerators.DataStore = null; List <Accelerator> accelerators = new List <Accelerator>(); if (targetOs == libexeinfo.NE.TargetOS.OS2) { libexeinfo.NE.Os2AcceleratorTable table = libexeinfo.NE.GetOs2Accelerators(data); lblCodepage.Visible = true; txtCodepage.Visible = true; txtCodepage.Text = $"{table.CodePage}"; accelerators.AddRange(table.Accelerators.Select(accel => new Accelerator { Type = $"{accel.Type}", Key = accel.Type.HasFlag(libexeinfo.NE.Os2AcceleratorFlags.AF_VIRTUALKEY) ? $"{accel.Key}" : $"'{(char)(byte)accel.Key}'", Command = accel.Command })); } else { lblCodepage.Visible = false; txtCodepage.Visible = false; accelerators.AddRange(libexeinfo.NE.GetWinAccelerators(data) .Select(accel => new Accelerator { Type = $"{accel.Flags}", Key = accel.Flags.HasFlag(libexeinfo.NE.WinAcceleratorFlags.VirtualKey) ? $"{accel.Key}" : $"'{(char)(byte)accel.Key}'", Command = accel.Command })); } if (accelerators.Count > 0) { grdAccelerators.DataStore = accelerators.OrderBy(r => r.Command).ThenBy(r => r.Key); } }
public void Update(byte[] data, libexeinfo.NE.TargetOS targetOs) { treeStrings.DataStore = targetOs == libexeinfo.NE.TargetOS.OS2 ? libexeinfo.NE.GetOs2Strings(data) : libexeinfo.NE.GetWindowsStrings(data); }