/// <summary>Получить директории с данными</summary> /// <param name="directoryType">Тип директроии ресурсы из которой получить</param> /// <returns>Директории соответствующий определённой директории</returns> public IEnumerable <ResourceDirectory> GetResources(WinNT.Resource.RESOURCE_DIRECTORY_TYPE directoryType) { foreach (var directory in this) { if (directory.DirectoryEntry.NameType == directoryType) { foreach (var subDir1 in directory) //Идентификаторы { foreach (var subDir2 in subDir1) { yield return(subDir2); } } } } }
/// <summary>Create instance of resource directory class</summary> /// <param name="directory">Parent PE directory</param> /// <param name="type">Resource directory type</param> /// <exception cref="T:ArgumentNullException">directory is null</exception> /// <exception cref="T:InvalidOperationException">directory type must be equals to type</exception> public ResourceBase(ResourceDirectory directory, WinNT.Resource.RESOURCE_DIRECTORY_TYPE type) { if (directory == null) { throw new ArgumentNullException("directory"); } else if (directory.DataEntry == null || directory.Parent == null || directory.Parent.Parent == null || directory.Parent.Parent.DirectoryEntry.NameType != type) { throw new InvalidOperationException("Expecting " + type.ToString()); } else { this._type = type; this._directory = directory; } }