private ResourceType(ResourceCollection resources, ResourceDirectoryEntry entry, ResourceId id) { _resources = new Resource[0]; Resources = resources; Entry = entry; Id = id; Count = 0; }
protected Resource(PortableExecutableImage image, ResourceType type, ResourceDirectoryEntry entry, ResourceId id) { _languages = BuildLanguages(entry); Type = type; Entry = entry; Id = id; Languages = _languages.Keys.OrderBy(k => k).ToArray(); Image = image; }
internal ResourceDataEntry(DataDirectory dataDirectory, Location dataLocation, ResourceDirectoryEntry directoryEntry) : base(dataDirectory,dataLocation) { Stream stream = directoryEntry.Directory.DataDirectory.Directories.Image.GetStream(); stream.Seek(dataLocation.FileOffset.ToInt64(),SeekOrigin.Begin); directory_entry = directoryEntry; entry = Utils.Read<IMAGE_RESOURCE_DATA_ENTRY>(stream); data = GetData(); }
private Dictionary <ResourceLanguage, ResourceDirectoryEntry> BuildLanguages(ResourceDirectoryEntry parentEntry) { var results = new Dictionary <ResourceLanguage, ResourceDirectoryEntry>(); var directory = parentEntry.GetDirectory(); foreach (var entry in directory) { results.Add(entry.GetId(), entry); } return(results); }
public CursorResource(ResourceType owningType, ResourceDirectoryEntry directoryEntry) : base(owningType, directoryEntry) { }
public BitmapResource(ResourceType owningType, ResourceDirectoryEntry directoryEntry) : base(owningType, directoryEntry) { }
public VersionResource(ResourceType owningType, ResourceDirectoryEntry directoryEntry) : base(owningType, directoryEntry) { }
internal ResourceDataEntry(PortableExecutableImage image, DataDirectory dataDirectory, Location location, ResourceDirectoryEntry directoryEntry) : base(image, dataDirectory, location) { _data = null; DirectoryEntry = directoryEntry; }
public DialogResource(ResourceType owningType, ResourceDirectoryEntry directoryEntry) : base(owningType, directoryEntry) { }
internal static async Task <ResourceType> CreateAsync(PortableExecutableImage image, ResourceCollection resources, ResourceDirectoryEntry entry) { ResourceId id; if (entry.NameType == NameType.ID) { id = entry.GetId(); } else { id = await entry.GetNameAsync().ConfigureAwait(false); } var type = new ResourceType(resources, entry, id); await type.LoadResourcesAsync(image).ConfigureAwait(false); return(type); }
internal static async Task <Resource> CreateAsync(PortableExecutableImage image, ResourceType type, ResourceDirectoryEntry entry, Type resourceType) { ResourceId id; if (entry.NameType == NameType.ID) { id = entry.GetId(); } else { id = await entry.GetNameAsync().ConfigureAwait(false); } var ctors = resourceType.GetConstructors(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); var ctor = ctors.First(); var resource = (Resource)ctor.Invoke(new object[] { image, type, entry, id }); return(resource); }