예제 #1
0
 /// <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);
                 }
             }
         }
     }
 }
예제 #2
0
 /// <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;
     }
 }