/*
Copyright (C) 2014-2019 de4dot@gmail.com
This file is part of dnSpy
dnSpy is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
dnSpy is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with dnSpy. If not, see .
*/
using dnSpy.Contracts.Hex.Files.PE;
namespace dnSpy.Contracts.Hex.Files.DotNet {
///
/// .NET multi-file resource header
///
public abstract class DotNetMultiFileResourceHeaderData : StructureData {
const string NAME = "MultiFileResource";
///
/// Constructor
///
/// Span
protected DotNetMultiFileResourceHeaderData(HexBufferSpan span)
: base(NAME, span) {
}
/// Magic number
public abstract StructField MagicNum { get; }
/// Header version
public abstract StructField ResMgrHeaderVersion { get; }
/// Header size
public abstract StructField HeaderSize { get; }
/// Unknown header or null if it's a known header (see and )
public abstract StructField>? UnknownHeader { get; }
/// Reader type or null if unknown header
public abstract StructField? ReaderType { get; }
/// ResourceSet type or null if unknown header
public abstract StructField? ResourceSetType { get; }
/// Version
public abstract StructField Version { get; }
/// NumResources
public abstract StructField NumResources { get; }
/// NumTypes
public abstract StructField NumTypes { get; }
/// TypeNames
public abstract StructField> TypeNames { get; }
/// 8-byte alignment
public abstract StructField> Alignment8 { get; }
/// Name hashes
public abstract StructField> NameHashes { get; }
/// Name positions
public abstract StructField> NamePositions { get; }
/// DataSectionOffset
public abstract StructField DataSectionOffset { get; }
}
}