mirror of
https://github.com/SabreTools/SabreTools.Models.git
synced 2026-09-23 15:16:14 +00:00
Remove framework gating
This commit is contained in:
@@ -7,508 +7,264 @@ namespace SabreTools.Models.PortableExecutable
|
||||
public sealed class AssemblyManifest
|
||||
{
|
||||
[XmlAttribute("manifestVersion")]
|
||||
#if NET48
|
||||
public string ManifestVersion { get; set; }
|
||||
#else
|
||||
public string? ManifestVersion { get; set; }
|
||||
#endif
|
||||
|
||||
#region Group
|
||||
|
||||
[XmlElement("assemblyIdentity")]
|
||||
#if NET48
|
||||
public AssemblyIdentity[] AssemblyIdentities { get; set; }
|
||||
#else
|
||||
public AssemblyIdentity?[]? AssemblyIdentities { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("noInheritable")]
|
||||
#if NET48
|
||||
public AssemblyNoInheritable[] NoInheritables { get; set; }
|
||||
#else
|
||||
public AssemblyNoInheritable?[]? NoInheritables { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
|
||||
#region Group
|
||||
|
||||
[XmlElement("description")]
|
||||
#if NET48
|
||||
public AssemblyDescription Description { get; set; }
|
||||
#else
|
||||
public AssemblyDescription? Description { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("noInherit")]
|
||||
#if NET48
|
||||
public AssemblyNoInherit NoInherit { get; set; }
|
||||
#else
|
||||
public AssemblyNoInherit? NoInherit { get; set; }
|
||||
#endif
|
||||
|
||||
//[XmlElement("noInheritable")]
|
||||
//public AssemblyNoInheritable NoInheritable { get; set; }
|
||||
|
||||
[XmlElement("comInterfaceExternalProxyStub")]
|
||||
#if NET48
|
||||
public AssemblyCOMInterfaceExternalProxyStub[] COMInterfaceExternalProxyStub { get; set; }
|
||||
#else
|
||||
public AssemblyCOMInterfaceExternalProxyStub?[]? COMInterfaceExternalProxyStub { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("dependency")]
|
||||
#if NET48
|
||||
public AssemblyDependency[] Dependency { get; set; }
|
||||
#else
|
||||
public AssemblyDependency?[]? Dependency { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("file")]
|
||||
#if NET48
|
||||
public AssemblyFile[] File { get; set; }
|
||||
#else
|
||||
public AssemblyFile?[]? File { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("clrClass")]
|
||||
#if NET48
|
||||
public AssemblyCommonLanguageRuntimeClass[] CLRClass { get; set; }
|
||||
#else
|
||||
public AssemblyCommonLanguageRuntimeClass?[]? CLRClass { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("clrSurrogate")]
|
||||
#if NET48
|
||||
public AssemblyCommonLanguageSurrogateClass[] CLRSurrogate { get; set; }
|
||||
#else
|
||||
public AssemblyCommonLanguageSurrogateClass?[]? CLRSurrogate { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] EverythingElse { get; set; }
|
||||
#else
|
||||
public object[]? EverythingElse { get; set; }
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <see href="https://learn.microsoft.com/en-us/windows/win32/sbscs/manifest-file-schema"/>
|
||||
public sealed class AssemblyActiveCodePage
|
||||
{
|
||||
[XmlText]
|
||||
#if NET48
|
||||
public string Value { get; set; }
|
||||
#else
|
||||
public string? Value { get; set; }
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <see href="https://learn.microsoft.com/en-us/windows/win32/sbscs/manifest-file-schema"/>
|
||||
public sealed class AssemblyAutoElevate
|
||||
{
|
||||
[XmlText]
|
||||
#if NET48
|
||||
public string Value { get; set; }
|
||||
#else
|
||||
public string? Value { get; set; }
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <see href="https://learn.microsoft.com/en-us/windows/win32/sbscs/manifest-file-schema"/>
|
||||
public sealed class AssemblyBindingRedirect
|
||||
{
|
||||
[XmlAttribute("oldVersion")]
|
||||
#if NET48
|
||||
public string OldVersion { get; set; }
|
||||
#else
|
||||
public string? OldVersion { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("newVersion")]
|
||||
#if NET48
|
||||
public string NewVersion { get; set; }
|
||||
#else
|
||||
public string? NewVersion { get; set; }
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <see href="https://learn.microsoft.com/en-us/windows/win32/sbscs/manifest-file-schema"/>
|
||||
public sealed class AssemblyCOMClass
|
||||
{
|
||||
[XmlAttribute("clsid")]
|
||||
#if NET48
|
||||
public string CLSID { get; set; }
|
||||
#else
|
||||
public string? CLSID { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("threadingModel")]
|
||||
#if NET48
|
||||
public string ThreadingModel { get; set; }
|
||||
#else
|
||||
public string? ThreadingModel { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("progid")]
|
||||
#if NET48
|
||||
public string ProgID { get; set; }
|
||||
#else
|
||||
public string? ProgID { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("tlbid")]
|
||||
#if NET48
|
||||
public string TLBID { get; set; }
|
||||
#else
|
||||
public string? TLBID { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("description")]
|
||||
#if NET48
|
||||
public string Description { get; set; }
|
||||
#else
|
||||
public string? Description { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("progid")]
|
||||
#if NET48
|
||||
public AssemblyProgID[] ProgIDs { get; set; }
|
||||
#else
|
||||
public AssemblyProgID?[]? ProgIDs { get; set; }
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <see href="https://learn.microsoft.com/en-us/windows/win32/sbscs/manifest-file-schema"/>
|
||||
public sealed class AssemblyCOMInterfaceExternalProxyStub
|
||||
{
|
||||
[XmlAttribute("iid")]
|
||||
#if NET48
|
||||
public string IID { get; set; }
|
||||
#else
|
||||
public string? IID { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("name")]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("tlbid")]
|
||||
#if NET48
|
||||
public string TLBID { get; set; }
|
||||
#else
|
||||
public string? TLBID { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("numMethods")]
|
||||
#if NET48
|
||||
public string NumMethods { get; set; }
|
||||
#else
|
||||
public string? NumMethods { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("proxyStubClsid32")]
|
||||
#if NET48
|
||||
public string ProxyStubClsid32 { get; set; }
|
||||
#else
|
||||
public string? ProxyStubClsid32 { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("baseInterface")]
|
||||
#if NET48
|
||||
public string BaseInterface { get; set; }
|
||||
#else
|
||||
public string? BaseInterface { get; set; }
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <see href="https://learn.microsoft.com/en-us/windows/win32/sbscs/manifest-file-schema"/>
|
||||
public sealed class AssemblyCOMInterfaceProxyStub
|
||||
{
|
||||
[XmlAttribute("iid")]
|
||||
#if NET48
|
||||
public string IID { get; set; }
|
||||
#else
|
||||
public string? IID { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("name")]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("tlbid")]
|
||||
#if NET48
|
||||
public string TLBID { get; set; }
|
||||
#else
|
||||
public string? TLBID { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("numMethods")]
|
||||
#if NET48
|
||||
public string NumMethods { get; set; }
|
||||
#else
|
||||
public string? NumMethods { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("proxyStubClsid32")]
|
||||
#if NET48
|
||||
public string ProxyStubClsid32 { get; set; }
|
||||
#else
|
||||
public string? ProxyStubClsid32 { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("baseInterface")]
|
||||
#if NET48
|
||||
public string BaseInterface { get; set; }
|
||||
#else
|
||||
public string? BaseInterface { get; set; }
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <see href="https://learn.microsoft.com/en-us/windows/win32/sbscs/manifest-file-schema"/>
|
||||
public sealed class AssemblyCommonLanguageRuntimeClass
|
||||
{
|
||||
[XmlAttribute("name")]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("clsid")]
|
||||
#if NET48
|
||||
public string CLSID { get; set; }
|
||||
#else
|
||||
public string? CLSID { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("progid")]
|
||||
#if NET48
|
||||
public string ProgID { get; set; }
|
||||
#else
|
||||
public string? ProgID { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("tlbid")]
|
||||
#if NET48
|
||||
public string TLBID { get; set; }
|
||||
#else
|
||||
public string? TLBID { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("description")]
|
||||
#if NET48
|
||||
public string Description { get; set; }
|
||||
#else
|
||||
public string? Description { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("runtimeVersion")]
|
||||
#if NET48
|
||||
public string RuntimeVersion { get; set; }
|
||||
#else
|
||||
public string? RuntimeVersion { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("threadingModel")]
|
||||
#if NET48
|
||||
public string ThreadingModel { get; set; }
|
||||
#else
|
||||
public string? ThreadingModel { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("progid")]
|
||||
#if NET48
|
||||
public AssemblyProgID[] ProgIDs { get; set; }
|
||||
#else
|
||||
public AssemblyProgID?[]? ProgIDs { get; set; }
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <see href="https://learn.microsoft.com/en-us/windows/win32/sbscs/manifest-file-schema"/>
|
||||
public sealed class AssemblyCommonLanguageSurrogateClass
|
||||
{
|
||||
[XmlAttribute("clsid")]
|
||||
#if NET48
|
||||
public string CLSID { get; set; }
|
||||
#else
|
||||
public string? CLSID { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("name")]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("runtimeVersion")]
|
||||
#if NET48
|
||||
public string RuntimeVersion { get; set; }
|
||||
#else
|
||||
public string? RuntimeVersion { get; set; }
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <see href="https://learn.microsoft.com/en-us/windows/win32/sbscs/manifest-file-schema"/>
|
||||
public sealed class AssemblyDependency
|
||||
{
|
||||
[XmlElement("dependentAssembly")]
|
||||
#if NET48
|
||||
public AssemblyDependentAssembly DependentAssembly { get; set; }
|
||||
#else
|
||||
public AssemblyDependentAssembly? DependentAssembly { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("optional")]
|
||||
#if NET48
|
||||
public string Optional { get; set; }
|
||||
#else
|
||||
public string? Optional { get; set; }
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <see href="https://learn.microsoft.com/en-us/windows/win32/sbscs/manifest-file-schema"/>
|
||||
public sealed class AssemblyDependentAssembly
|
||||
{
|
||||
[XmlElement("assemblyIdentity")]
|
||||
#if NET48
|
||||
public AssemblyIdentity AssemblyIdentity { get; set; }
|
||||
#else
|
||||
public AssemblyIdentity? AssemblyIdentity { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("bindingRedirect")]
|
||||
#if NET48
|
||||
public AssemblyBindingRedirect[] BindingRedirect { get; set; }
|
||||
#else
|
||||
public AssemblyBindingRedirect?[]? BindingRedirect { get; set; }
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <see href="https://learn.microsoft.com/en-us/windows/win32/sbscs/manifest-file-schema"/>
|
||||
public sealed class AssemblyDescription
|
||||
{
|
||||
[XmlText]
|
||||
#if NET48
|
||||
public string Value { get; set; }
|
||||
#else
|
||||
public string? Value { get; set; }
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <see href="https://learn.microsoft.com/en-us/windows/win32/sbscs/manifest-file-schema"/>
|
||||
public sealed class AssemblyDisableTheming
|
||||
{
|
||||
[XmlText]
|
||||
#if NET48
|
||||
public string Value { get; set; }
|
||||
#else
|
||||
public string? Value { get; set; }
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <see href="https://learn.microsoft.com/en-us/windows/win32/sbscs/manifest-file-schema"/>
|
||||
public sealed class AssemblyDisableWindowFiltering
|
||||
{
|
||||
[XmlText]
|
||||
#if NET48
|
||||
public string Value { get; set; }
|
||||
#else
|
||||
public string? Value { get; set; }
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <see href="https://learn.microsoft.com/en-us/windows/win32/sbscs/manifest-file-schema"/>
|
||||
public sealed class AssemblyDPIAware
|
||||
{
|
||||
[XmlText]
|
||||
#if NET48
|
||||
public string Value { get; set; }
|
||||
#else
|
||||
public string? Value { get; set; }
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <see href="https://learn.microsoft.com/en-us/windows/win32/sbscs/manifest-file-schema"/>
|
||||
public sealed class AssemblyDPIAwareness
|
||||
{
|
||||
[XmlText]
|
||||
#if NET48
|
||||
public string Value { get; set; }
|
||||
#else
|
||||
public string? Value { get; set; }
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <see href="https://learn.microsoft.com/en-us/windows/win32/sbscs/manifest-file-schema"/>
|
||||
public sealed class AssemblyFile
|
||||
{
|
||||
[XmlAttribute("name")]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("hash")]
|
||||
#if NET48
|
||||
public string Hash { get; set; }
|
||||
#else
|
||||
public string? Hash { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("hashalg")]
|
||||
#if NET48
|
||||
public string HashAlgorithm { get; set; }
|
||||
#else
|
||||
public string? HashAlgorithm { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("size")]
|
||||
#if NET48
|
||||
public string Size { get; set; }
|
||||
#else
|
||||
public string? Size { get; set; }
|
||||
#endif
|
||||
|
||||
#region Group
|
||||
|
||||
[XmlElement("comClass")]
|
||||
#if NET48
|
||||
public AssemblyCOMClass[] COMClass { get; set; }
|
||||
#else
|
||||
public AssemblyCOMClass?[]? COMClass { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("comInterfaceProxyStub")]
|
||||
#if NET48
|
||||
public AssemblyCOMInterfaceProxyStub[] COMInterfaceProxyStub { get; set; }
|
||||
#else
|
||||
public AssemblyCOMInterfaceProxyStub?[]? COMInterfaceProxyStub { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("typelib")]
|
||||
#if NET48
|
||||
public AssemblyTypeLib[] Typelib { get; set; }
|
||||
#else
|
||||
public AssemblyTypeLib?[]? Typelib { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("windowClass")]
|
||||
#if NET48
|
||||
public AssemblyWindowClass[] WindowClass { get; set; }
|
||||
#else
|
||||
public AssemblyWindowClass?[]? WindowClass { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -517,90 +273,50 @@ namespace SabreTools.Models.PortableExecutable
|
||||
public sealed class AssemblyGDIScaling
|
||||
{
|
||||
[XmlText]
|
||||
#if NET48
|
||||
public string Value { get; set; }
|
||||
#else
|
||||
public string? Value { get; set; }
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <see href="https://learn.microsoft.com/en-us/windows/win32/sbscs/manifest-file-schema"/>
|
||||
public sealed class AssemblyHeapType
|
||||
{
|
||||
[XmlText]
|
||||
#if NET48
|
||||
public string Value { get; set; }
|
||||
#else
|
||||
public string? Value { get; set; }
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <see href="https://learn.microsoft.com/en-us/windows/win32/sbscs/manifest-file-schema"/>
|
||||
public sealed class AssemblyHighResolutionScrollingAware
|
||||
{
|
||||
[XmlText]
|
||||
#if NET48
|
||||
public string Value { get; set; }
|
||||
#else
|
||||
public string? Value { get; set; }
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <see href="https://learn.microsoft.com/en-us/windows/win32/sbscs/manifest-file-schema"/>
|
||||
public sealed class AssemblyIdentity
|
||||
{
|
||||
[XmlAttribute("name")]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("version")]
|
||||
#if NET48
|
||||
public string Version { get; set; }
|
||||
#else
|
||||
public string? Version { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("type")]
|
||||
#if NET48
|
||||
public string Type { get; set; }
|
||||
#else
|
||||
public string? Type { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("processorArchitecture")]
|
||||
#if NET48
|
||||
public string ProcessorArchitecture { get; set; }
|
||||
#else
|
||||
public string? ProcessorArchitecture { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("publicKeyToken")]
|
||||
#if NET48
|
||||
public string PublicKeyToken { get; set; }
|
||||
#else
|
||||
public string? PublicKeyToken { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("language")]
|
||||
#if NET48
|
||||
public string Language { get; set; }
|
||||
#else
|
||||
public string? Language { get; set; }
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <see href="https://learn.microsoft.com/en-us/windows/win32/sbscs/manifest-file-schema"/>
|
||||
public sealed class AssemblyLongPathAware
|
||||
{
|
||||
[XmlText]
|
||||
#if NET48
|
||||
public string Value { get; set; }
|
||||
#else
|
||||
public string? Value { get; set; }
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <see href="https://learn.microsoft.com/en-us/windows/win32/sbscs/manifest-file-schema"/>
|
||||
@@ -617,101 +333,57 @@ namespace SabreTools.Models.PortableExecutable
|
||||
public sealed class AssemblyPrinterDriverIsolation
|
||||
{
|
||||
[XmlText]
|
||||
#if NET48
|
||||
public string Value { get; set; }
|
||||
#else
|
||||
public string? Value { get; set; }
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <see href="https://learn.microsoft.com/en-us/windows/win32/sbscs/manifest-file-schema"/>
|
||||
public sealed class AssemblyProgID
|
||||
{
|
||||
[XmlText]
|
||||
#if NET48
|
||||
public string Value { get; set; }
|
||||
#else
|
||||
public string? Value { get; set; }
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <see href="https://learn.microsoft.com/en-us/windows/win32/sbscs/manifest-file-schema"/>
|
||||
public sealed class AssemblySupportedOS
|
||||
{
|
||||
[XmlAttribute("Id")]
|
||||
#if NET48
|
||||
public string Id { get; set; }
|
||||
#else
|
||||
public string? Id { get; set; }
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <see href="https://learn.microsoft.com/en-us/windows/win32/sbscs/manifest-file-schema"/>
|
||||
public sealed class AssemblyTypeLib
|
||||
{
|
||||
[XmlElement("tlbid")]
|
||||
#if NET48
|
||||
public string TLBID { get; set; }
|
||||
#else
|
||||
public string? TLBID { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("version")]
|
||||
#if NET48
|
||||
public string Version { get; set; }
|
||||
#else
|
||||
public string? Version { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("helpdir")]
|
||||
#if NET48
|
||||
public string HelpDir { get; set; }
|
||||
#else
|
||||
public string? HelpDir { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("resourceid")]
|
||||
#if NET48
|
||||
public string ResourceID { get; set; }
|
||||
#else
|
||||
public string? ResourceID { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("flags")]
|
||||
#if NET48
|
||||
public string Flags { get; set; }
|
||||
#else
|
||||
public string? Flags { get; set; }
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <see href="https://learn.microsoft.com/en-us/windows/win32/sbscs/manifest-file-schema"/>
|
||||
public sealed class AssemblyUltraHighResolutionScrollingAware
|
||||
{
|
||||
[XmlText]
|
||||
#if NET48
|
||||
public string Value { get; set; }
|
||||
#else
|
||||
public string? Value { get; set; }
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <see href="https://learn.microsoft.com/en-us/windows/win32/sbscs/manifest-file-schema"/>
|
||||
public sealed class AssemblyWindowClass
|
||||
{
|
||||
[XmlAttribute("versioned")]
|
||||
#if NET48
|
||||
public string Versioned { get; set; }
|
||||
#else
|
||||
public string? Versioned { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlText]
|
||||
#if NET48
|
||||
public string Value { get; set; }
|
||||
#else
|
||||
public string? Value { get; set; }
|
||||
#endif
|
||||
}
|
||||
|
||||
// TODO: Left off at <ElementType name="progid" />
|
||||
|
||||
@@ -58,10 +58,6 @@
|
||||
/// Contains a certificate, such as an Authenticode signature.
|
||||
/// </summary>
|
||||
/// <see href="https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#certificate-data"/>
|
||||
#if NET48
|
||||
public byte[] Certificate { get; set; }
|
||||
#else
|
||||
public byte[]? Certificate { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,10 +46,6 @@
|
||||
/// in the Page RVA field for the block. This offset
|
||||
/// specifies where the base relocation is to be applied.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public BaseRelocationTypeOffsetFieldEntry[] TypeOffsetFieldEntries { get; set; }
|
||||
#else
|
||||
public BaseRelocationTypeOffsetFieldEntry?[]? TypeOffsetFieldEntries { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,10 +20,6 @@
|
||||
/// Following the size are null-terminated strings that are pointed to by symbols
|
||||
/// in the COFF symbol table.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string[] Strings { get; set; }
|
||||
#else
|
||||
public string[]? Strings { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,11 +26,7 @@
|
||||
/// An array of 8 bytes. This array is padded with nulls on the right if
|
||||
/// the name is less than 8 bytes long.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] ShortName { get; set; } = new byte[8];
|
||||
#else
|
||||
public byte[]? ShortName { get; set; } = new byte[8];
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// A field that is set to all zeros if the name is longer than 8 bytes.
|
||||
@@ -162,11 +158,7 @@
|
||||
/// <summary>
|
||||
/// Unused
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] AuxFormat2Unused2 { get; set; } = new byte[6];
|
||||
#else
|
||||
public byte[]? AuxFormat2Unused2 { get; set; } = new byte[6];
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// The symbol-table index of the next .bf symbol record. If the function is the
|
||||
@@ -217,11 +209,7 @@
|
||||
/// <summary>
|
||||
/// Unused
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] AuxFormat3Unused { get; set; } = new byte[10];
|
||||
#else
|
||||
public byte[]? AuxFormat3Unused { get; set; } = new byte[10];
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -235,11 +223,7 @@
|
||||
/// An ANSI string that gives the name of the source file. This is padded
|
||||
/// with nulls if it is less than the maximum length.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] AuxFormat4FileName { get; set; } = new byte[18];
|
||||
#else
|
||||
public byte[]? AuxFormat4FileName { get; set; } = new byte[18];
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -287,11 +271,7 @@
|
||||
/// <summary>
|
||||
/// Unused
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] AuxFormat5Unused { get; set; } = new byte[3];
|
||||
#else
|
||||
public byte[]? AuxFormat5Unused { get; set; } = new byte[3];
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -318,11 +298,7 @@
|
||||
/// <summary>
|
||||
/// Reserved, must be zero.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] AuxFormat6Reserved2 { get; set; } = new byte[12];
|
||||
#else
|
||||
public byte[]? AuxFormat6Reserved2 { get; set; } = new byte[12];
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
@@ -33,11 +33,7 @@
|
||||
/// <summary>
|
||||
/// Describes keyboard accelerator characteristics.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public NewHeader NEWHEADER { get; set; }
|
||||
#else
|
||||
public NewHeader? NEWHEADER { get; set; }
|
||||
#endif
|
||||
|
||||
// TODO: Add array of entries in the resource
|
||||
}
|
||||
|
||||
@@ -33,10 +33,6 @@
|
||||
/// file and is not mapped into the run-time address space). If it is mapped,
|
||||
/// the RVA is its address.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public DebugDirectoryEntry[] DebugDirectoryTable { get; set; }
|
||||
#else
|
||||
public DebugDirectoryEntry?[]? DebugDirectoryTable { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,20 +14,12 @@
|
||||
/// <summary>
|
||||
/// Dialog box header structure
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public DialogTemplate DialogTemplate { get; set; }
|
||||
#else
|
||||
public DialogTemplate? DialogTemplate { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Dialog box extended header structure
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public DialogTemplateExtended ExtendedDialogTemplate { get; set; }
|
||||
#else
|
||||
public DialogTemplateExtended? ExtendedDialogTemplate { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -39,11 +31,7 @@
|
||||
/// box. The cdit member specifies the number of DLGITEMTEMPLATE structures in the template.
|
||||
/// These DLGITEMTEMPLATE structures must be aligned on DWORD boundaries.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public DialogItemTemplate[] DialogItemTemplates { get; set; }
|
||||
#else
|
||||
public DialogItemTemplate?[]? DialogItemTemplates { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Following the DLGTEMPLATEEX header in an extended dialog box template is one or more
|
||||
@@ -51,11 +39,7 @@
|
||||
/// member of the DLGITEMTEMPLATEEX structure specifies the number of DLGITEMTEMPLATEEX
|
||||
/// structures that follow in the template.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public DialogItemTemplateExtended[] ExtendedDialogItemTemplates { get; set; }
|
||||
#else
|
||||
public DialogItemTemplateExtended?[]? ExtendedDialogItemTemplates { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -86,11 +86,7 @@
|
||||
/// If you specify character strings in the class and title arrays, you must use Unicode strings. Use the
|
||||
/// MultiByteToWideChar function to generate Unicode strings from ANSI strings.
|
||||
/// </remarks>
|
||||
#if NET48
|
||||
public string ClassResource { get; set; }
|
||||
#else
|
||||
public string? ClassResource { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// The ordinal value of a predefined system class.
|
||||
@@ -109,11 +105,7 @@
|
||||
/// If you specify character strings in the class and title arrays, you must use Unicode strings. Use the
|
||||
/// MultiByteToWideChar function to generate Unicode strings from ANSI strings.
|
||||
/// </remarks>
|
||||
#if NET48
|
||||
public string TitleResource { get; set; }
|
||||
#else
|
||||
public string? TitleResource { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// An ordinal value of a resource, such as an icon, in an executable file
|
||||
@@ -133,10 +125,6 @@
|
||||
/// When the system creates the control, it passes a pointer to this data in the lParam parameter of the
|
||||
/// WM_CREATE message that it sends to the control.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] CreationData { get; set; }
|
||||
#else
|
||||
public byte[]? CreationData { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -84,11 +84,7 @@
|
||||
/// If you specify character strings in the class and title arrays, you must use Unicode strings. Use the
|
||||
/// MultiByteToWideChar function to generate Unicode strings from ANSI strings.
|
||||
/// </remarks>
|
||||
#if NET48
|
||||
public string ClassResource { get; set; }
|
||||
#else
|
||||
public string? ClassResource { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// The ordinal value of a predefined system class.
|
||||
@@ -107,11 +103,7 @@
|
||||
/// If you specify character strings in the class and title arrays, you must use Unicode strings. Use the
|
||||
/// MultiByteToWideChar function to generate Unicode strings from ANSI strings.
|
||||
/// </remarks>
|
||||
#if NET48
|
||||
public string TitleResource { get; set; }
|
||||
#else
|
||||
public string? TitleResource { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// An ordinal value of a resource, such as an icon, in an executable file
|
||||
@@ -131,10 +123,6 @@
|
||||
/// When the system creates the control, it passes a pointer to this data in the lParam parameter of the
|
||||
/// WM_CREATE message that it sends to the control.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] CreationData { get; set; }
|
||||
#else
|
||||
public byte[]? CreationData { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -96,11 +96,7 @@
|
||||
/// If you specify character strings in the menu, class, title, or typeface arrays, you must use
|
||||
/// Unicode strings.
|
||||
/// </remarks>
|
||||
#if NET48
|
||||
public string MenuResource { get; set; }
|
||||
#else
|
||||
public string? MenuResource { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// The ordinal value of a menu resource in an executable file.
|
||||
@@ -119,11 +115,7 @@
|
||||
/// If you specify character strings in the menu, class, title, or typeface arrays, you must use
|
||||
/// Unicode strings.
|
||||
/// </remarks>
|
||||
#if NET48
|
||||
public string ClassResource { get; set; }
|
||||
#else
|
||||
public string? ClassResource { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// The ordinal value of a predefined system class.
|
||||
@@ -139,11 +131,7 @@
|
||||
/// If you specify character strings in the menu, class, title, or typeface arrays, you must use
|
||||
/// Unicode strings.
|
||||
/// </remarks>
|
||||
#if NET48
|
||||
public string TitleResource { get; set; }
|
||||
#else
|
||||
public string? TitleResource { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// The 16-bit point size value and the typeface array follow the title array, but only if the
|
||||
@@ -167,10 +155,6 @@
|
||||
/// If you specify character strings in the menu, class, title, or typeface arrays, you must use
|
||||
/// Unicode strings.
|
||||
/// </remarks>
|
||||
#if NET48
|
||||
public string Typeface { get; set; }
|
||||
#else
|
||||
public string? Typeface { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,11 +107,7 @@
|
||||
/// If you specify character strings in the class and title arrays, you must use Unicode strings. Use the
|
||||
/// MultiByteToWideChar function to generate Unicode strings from ANSI strings.
|
||||
/// </remarks>
|
||||
#if NET48
|
||||
public string MenuResource { get; set; }
|
||||
#else
|
||||
public string? MenuResource { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// The ordinal value of a menu resource in an executable file.
|
||||
@@ -129,11 +125,7 @@
|
||||
/// If you specify character strings in the class and title arrays, you must use Unicode strings. Use the
|
||||
/// MultiByteToWideChar function to generate Unicode strings from ANSI strings.
|
||||
/// </remarks>
|
||||
#if NET48
|
||||
public string ClassResource { get; set; }
|
||||
#else
|
||||
public string? ClassResource { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// The ordinal value of a predefined system window class.
|
||||
@@ -148,11 +140,7 @@
|
||||
/// If you specify character strings in the class and title arrays, you must use Unicode strings. Use the
|
||||
/// MultiByteToWideChar function to generate Unicode strings from ANSI strings.
|
||||
/// </remarks>
|
||||
#if NET48
|
||||
public string TitleResource { get; set; }
|
||||
#else
|
||||
public string? TitleResource { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// The point size of the font to use for the text in the dialog box and its controls.
|
||||
@@ -192,10 +180,6 @@
|
||||
/// If you specify character strings in the class and title arrays, you must use Unicode strings. Use the
|
||||
/// MultiByteToWideChar function to generate Unicode strings from ANSI strings.
|
||||
/// </remarks>
|
||||
#if NET48
|
||||
public string Typeface { get; set; }
|
||||
#else
|
||||
public string? Typeface { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,10 +16,6 @@
|
||||
/// The FONTDIRENTRY structure for the specified font directly follows the DIRENTRY structure
|
||||
/// for that font.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public FontDirEntry Entry { get; set; }
|
||||
#else
|
||||
public FontDirEntry? Entry { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,40 +12,24 @@ namespace SabreTools.Models.PortableExecutable
|
||||
/// <summary>
|
||||
/// MS-DOS executable stub
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public MSDOS.Executable Stub { get; set; }
|
||||
#else
|
||||
public MSDOS.Executable? Stub { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// After the MS-DOS stub, at the file offset specified at offset 0x3c, is a 4-byte
|
||||
/// signature that identifies the file as a PE format image file. This signature is "PE\0\0"
|
||||
/// (the letters "P" and "E" followed by two null bytes).
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string Signature { get; set; }
|
||||
#else
|
||||
public string? Signature { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// COFF file header
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public COFFFileHeader COFFFileHeader { get; set; }
|
||||
#else
|
||||
public COFFFileHeader? COFFFileHeader { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Optional header
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public OptionalHeader OptionalHeader { get; set; }
|
||||
#else
|
||||
public OptionalHeader? OptionalHeader { get; set; }
|
||||
#endif
|
||||
|
||||
// TODO: Support grouped sections in section reading and parsing
|
||||
// https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#grouped-sections-object-only
|
||||
@@ -56,47 +40,27 @@ namespace SabreTools.Models.PortableExecutable
|
||||
/// <summary>
|
||||
/// Section table
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public SectionHeader[] SectionTable { get; set; }
|
||||
#else
|
||||
public SectionHeader?[]? SectionTable { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// COFF symbol table
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public COFFSymbolTableEntry[] COFFSymbolTable { get; set; }
|
||||
#else
|
||||
public COFFSymbolTableEntry?[]? COFFSymbolTable { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// COFF string table
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public COFFStringTable COFFStringTable { get; set; }
|
||||
#else
|
||||
public COFFStringTable? COFFStringTable { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Attribute certificate table
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public AttributeCertificateTableEntry[] AttributeCertificateTable { get; set; }
|
||||
#else
|
||||
public AttributeCertificateTableEntry?[]? AttributeCertificateTable { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Delay-load directory table
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public DelayLoadDirectoryTable DelayLoadDirectoryTable { get; set; }
|
||||
#else
|
||||
public DelayLoadDirectoryTable? DelayLoadDirectoryTable { get; set; }
|
||||
#endif
|
||||
|
||||
#region Named Sections
|
||||
|
||||
@@ -107,20 +71,12 @@ namespace SabreTools.Models.PortableExecutable
|
||||
/// <summary>
|
||||
/// Base relocation table (.reloc)
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public BaseRelocationBlock[] BaseRelocationTable { get; set; }
|
||||
#else
|
||||
public BaseRelocationBlock?[]? BaseRelocationTable { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Debug table (.debug*)
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public DebugTable DebugTable { get; set; }
|
||||
#else
|
||||
public DebugTable? DebugTable { get; set; }
|
||||
#endif
|
||||
|
||||
// .drectve - A section is a directive section if it has the IMAGE_SCN_LNK_INFO
|
||||
// flag set in the section header and has the .drectve section name. The linker
|
||||
@@ -141,29 +97,17 @@ namespace SabreTools.Models.PortableExecutable
|
||||
/// <summary>
|
||||
/// Export table (.edata)
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public ExportTable ExportTable { get; set; }
|
||||
#else
|
||||
public ExportTable? ExportTable { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Import table (.idata)
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public ImportTable ImportTable { get; set; }
|
||||
#else
|
||||
public ImportTable? ImportTable { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Resource directory table (.rsrc)
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public ResourceDirectoryTable ResourceDirectoryTable { get; set; }
|
||||
#else
|
||||
public ResourceDirectoryTable? ResourceDirectoryTable { get; set; }
|
||||
#endif
|
||||
|
||||
// .sxdata - The valid exception handlers of an object are listed in the .sxdata
|
||||
// section of that object. The section is marked IMAGE_SCN_LNK_INFO. It contains
|
||||
|
||||
@@ -39,11 +39,7 @@
|
||||
/// <summary>
|
||||
/// ASCII string that contains the name of the DLL.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// The starting ordinal number for exports in this image. This field specifies
|
||||
|
||||
@@ -13,10 +13,6 @@
|
||||
/// <summary>
|
||||
/// The pointers are 32 bits each and are relative to the image base.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public uint[] Pointers { get; set; }
|
||||
#else
|
||||
public uint[]? Pointers { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,10 +22,6 @@
|
||||
/// <summary>
|
||||
/// A series of null-terminated ASCII strings of variable length.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string[] Strings { get; set; }
|
||||
#else
|
||||
public string[]? Strings { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,10 +37,6 @@
|
||||
/// <summary>
|
||||
/// An array of 16-bit unbiased indexes into the export address table
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public ushort[] Indexes { get; set; }
|
||||
#else
|
||||
public ushort[]? Indexes { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,11 +19,7 @@
|
||||
/// A table with just one row (unlike the debug directory). This table indicates the
|
||||
/// locations and sizes of the other export tables.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public ExportDirectoryTable ExportDirectoryTable { get; set; }
|
||||
#else
|
||||
public ExportDirectoryTable? ExportDirectoryTable { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// An array of RVAs of exported symbols. These are the actual addresses of the exported
|
||||
@@ -31,20 +27,12 @@
|
||||
/// can import a symbol by using an index to this table (an ordinal) or, optionally, by
|
||||
/// using the public name that corresponds to the ordinal if a public name is defined.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public ExportAddressTableEntry[] ExportAddressTable { get; set; }
|
||||
#else
|
||||
public ExportAddressTableEntry?[]? ExportAddressTable { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// An array of pointers to the public export names, sorted in ascending order.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public ExportNamePointerTable NamePointerTable { get; set; }
|
||||
#else
|
||||
public ExportNamePointerTable? NamePointerTable { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// An array of the ordinals that correspond to members of the name pointer table. The
|
||||
@@ -52,11 +40,7 @@
|
||||
/// must have the same number of members. Each ordinal is an index into the export address
|
||||
/// table.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public ExportOrdinalTable OrdinalTable { get; set; }
|
||||
#else
|
||||
public ExportOrdinalTable? OrdinalTable { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// A series of null-terminated ASCII strings. Members of the name pointer table point into
|
||||
@@ -64,10 +48,6 @@
|
||||
/// exported; they are not necessarily the same as the private names that are used within
|
||||
/// the image file.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public ExportNameTable ExportNameTable { get; set; }
|
||||
#else
|
||||
public ExportNameTable? ExportNameTable { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,11 +22,7 @@
|
||||
/// The font supplier's copyright information.
|
||||
/// </summary>
|
||||
/// <remarks>60 characters</remarks>
|
||||
#if NET48
|
||||
public byte[] Copyright { get; set; }
|
||||
#else
|
||||
public byte[]? Copyright { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// The type of font file.
|
||||
@@ -168,19 +164,11 @@
|
||||
/// <summary>
|
||||
/// The name of the device if this font file is designated for a specific device.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string DeviceName { get; set; }
|
||||
#else
|
||||
public string? DeviceName { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// The typeface name of the font.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string FaceName { get; set; }
|
||||
#else
|
||||
public string? FaceName { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,10 +16,6 @@
|
||||
/// A structure that contains a unique ordinal identifier for each font in the resource. The DE
|
||||
/// member is a placeholder for the variable-length array of DIRENTRY structures.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public DirEntry[] DE { get; set; }
|
||||
#else
|
||||
public DirEntry?[]? DE { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,10 +18,6 @@
|
||||
/// must be matched to the public name in the DLL. This string is case sensitive
|
||||
/// and terminated by a null byte.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,11 +39,7 @@
|
||||
/// <summary>
|
||||
/// ASCII string that contains the name of the DLL.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// The RVA of the import address table. The contents of this table are identical
|
||||
|
||||
@@ -23,39 +23,23 @@ namespace SabreTools.Models.PortableExecutable
|
||||
/// The import information begins with the import directory table, which describes the
|
||||
/// remainder of the import information.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public ImportDirectoryTableEntry[] ImportDirectoryTable { get; set; }
|
||||
#else
|
||||
public ImportDirectoryTableEntry?[]? ImportDirectoryTable { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// An import lookup table is an array of 32-bit numbers for PE32 or an array of 64-bit
|
||||
/// numbers for PE32+.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public Dictionary<int, ImportLookupTableEntry[]> ImportLookupTables { get; set; }
|
||||
#else
|
||||
public Dictionary<int, ImportLookupTableEntry?[]?>? ImportLookupTables { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// These addresses are the actual memory addresses of the symbols, although technically
|
||||
/// they are still called "virtual addresses".
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public Dictionary<int, ImportAddressTableEntry[]> ImportAddressTables { get; set; }
|
||||
#else
|
||||
public Dictionary<int, ImportAddressTableEntry?[]?>? ImportAddressTables { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// One hint/name table suffices for the entire import section.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public HintNameTableEntry[] HintNameTable { get; set; }
|
||||
#else
|
||||
public HintNameTableEntry?[]? HintNameTable { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -282,11 +282,7 @@
|
||||
/// Code integrity information.
|
||||
/// </summary>
|
||||
/// <remarks>12 bytes</remarks>
|
||||
#if NET48
|
||||
public byte[] CodeIntegrity { get; set; }
|
||||
#else
|
||||
public byte[]? CodeIntegrity { get; set; }
|
||||
#endif
|
||||
|
||||
#region GuardAddressTakenIatEntryTable
|
||||
|
||||
|
||||
@@ -24,11 +24,7 @@
|
||||
/// A null-terminated Unicode string that contains the text for this menu item.
|
||||
/// There is no fixed limit on the size of this string.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string NormalMenuText { get; set; }
|
||||
#else
|
||||
public string? NormalMenuText { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -59,11 +55,7 @@
|
||||
/// A null-terminated Unicode string that contains the text for this menu item.
|
||||
/// There is no fixed limit on the size of this string.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string PopupMenuText { get; set; }
|
||||
#else
|
||||
public string? PopupMenuText { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -32,10 +32,6 @@
|
||||
/// A null-terminated Unicode string that contains the text for this menu item.
|
||||
/// There is no fixed limit on the size of this string.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string MenuText { get; set; }
|
||||
#else
|
||||
public string? MenuText { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,20 +14,12 @@
|
||||
/// <summary>
|
||||
/// Menu header structure
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public MenuHeader MenuHeader { get; set; }
|
||||
#else
|
||||
public MenuHeader? MenuHeader { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Menu extended header structure
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public MenuHeaderExtended ExtendedMenuHeader { get; set; }
|
||||
#else
|
||||
public MenuHeaderExtended? ExtendedMenuHeader { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -36,20 +28,12 @@
|
||||
/// <summary>
|
||||
/// Menu items
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public MenuItem[] MenuItems { get; set; }
|
||||
#else
|
||||
public MenuItem?[]? MenuItems { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Extended menu items
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public MenuItemExtended[] ExtendedMenuItems { get; set; }
|
||||
#else
|
||||
public MenuItemExtended?[]? ExtendedMenuItems { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -17,19 +17,11 @@ namespace SabreTools.Models.PortableExecutable
|
||||
/// <summary>
|
||||
/// An array of structures. The array is the size indicated by the NumberOfBlocks member.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public MessageResourceBlock[] Blocks { get; set; }
|
||||
#else
|
||||
public MessageResourceBlock?[]? Blocks { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Message resource entries
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public Dictionary<uint, MessageResourceEntry> Entries { get; set; }
|
||||
#else
|
||||
public Dictionary<uint, MessageResourceEntry?>? Entries { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,10 +20,6 @@
|
||||
/// <summary>
|
||||
/// Pointer to an array that contains the error message or message box display text.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string Text { get; set; }
|
||||
#else
|
||||
public string? Text { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,10 +34,6 @@
|
||||
/// Null-terminated name of the PDB file. It can also contain full
|
||||
/// or partial path to the file.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string PdbFileName { get; set; }
|
||||
#else
|
||||
public string? PdbFileName { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -275,65 +275,37 @@
|
||||
/// <summary>
|
||||
/// The export table address and size.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public DataDirectory ExportTable { get; set; }
|
||||
#else
|
||||
public DataDirectory? ExportTable { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// The import table address and size.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public DataDirectory ImportTable { get; set; }
|
||||
#else
|
||||
public DataDirectory? ImportTable { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// The resource table address and size.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public DataDirectory ResourceTable { get; set; }
|
||||
#else
|
||||
public DataDirectory? ResourceTable { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// The exception table address and size.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public DataDirectory ExceptionTable { get; set; }
|
||||
#else
|
||||
public DataDirectory? ExceptionTable { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// The attribute certificate table address and size.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public DataDirectory CertificateTable { get; set; }
|
||||
#else
|
||||
public DataDirectory? CertificateTable { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// The base relocation table address and size.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public DataDirectory BaseRelocationTable { get; set; }
|
||||
#else
|
||||
public DataDirectory? BaseRelocationTable { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// The debug data starting address and size.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public DataDirectory Debug { get; set; }
|
||||
#else
|
||||
public DataDirectory? Debug { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Reserved, must be 0
|
||||
@@ -344,65 +316,37 @@
|
||||
/// The RVA of the value to be stored in the global pointer register.
|
||||
/// The size member of this structure must be set to zero.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public DataDirectory GlobalPtr { get; set; }
|
||||
#else
|
||||
public DataDirectory? GlobalPtr { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// The thread local storage (TLS) table address and size.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public DataDirectory ThreadLocalStorageTable { get; set; }
|
||||
#else
|
||||
public DataDirectory? ThreadLocalStorageTable { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// The load configuration table address and size.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public DataDirectory LoadConfigTable { get; set; }
|
||||
#else
|
||||
public DataDirectory? LoadConfigTable { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// The bound import table address and size.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public DataDirectory BoundImport { get; set; }
|
||||
#else
|
||||
public DataDirectory? BoundImport { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// The import address table address and size
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public DataDirectory ImportAddressTable { get; set; }
|
||||
#else
|
||||
public DataDirectory? ImportAddressTable { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// The delay import descriptor address and size.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public DataDirectory DelayImportDescriptor { get; set; }
|
||||
#else
|
||||
public DataDirectory? DelayImportDescriptor { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// The CLR runtime header address and size.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public DataDirectory CLRRuntimeHeader { get; set; }
|
||||
#else
|
||||
public DataDirectory? CLRRuntimeHeader { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Reserved, must be zero
|
||||
|
||||
@@ -29,10 +29,6 @@ namespace SabreTools.Models.PortableExecutable
|
||||
/// <summary>
|
||||
/// zero terminated UTF8 path and file name
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string PathAndFileName { get; set; }
|
||||
#else
|
||||
public string? PathAndFileName { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,11 +24,7 @@
|
||||
/// <summary>
|
||||
/// The resource data that is pointed to by the Data RVA field.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Data { get; set; }
|
||||
#else
|
||||
public byte[]? Data { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// The code page that is used to decode code point values within the
|
||||
|
||||
@@ -31,11 +31,7 @@
|
||||
/// A string that gives the Type, Name, or Language ID entry, depending on
|
||||
/// level of table.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public ResourceDirectoryString Name { get; set; }
|
||||
#else
|
||||
public ResourceDirectoryString? Name { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// A 32-bit integer that identifies the Type, Name, or Language ID entry.
|
||||
@@ -54,11 +50,7 @@
|
||||
/// <summary>
|
||||
/// Resource data entry (a leaf).
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public ResourceDataEntry DataEntry { get; set; }
|
||||
#else
|
||||
public ResourceDataEntry? DataEntry { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// High bit 1. The lower 31 bits are the address of another resource
|
||||
@@ -69,11 +61,7 @@
|
||||
/// <summary>
|
||||
/// Another resource directory table (the next level down).
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public ResourceDirectoryTable Subdirectory { get; set; }
|
||||
#else
|
||||
public ResourceDirectoryTable? Subdirectory { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -18,10 +18,6 @@
|
||||
/// <summary>
|
||||
/// The variable-length Unicode string data, word-aligned.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] UnicodeString { get; set; }
|
||||
#else
|
||||
public byte[]? UnicodeString { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,10 +54,6 @@
|
||||
/// strings to identify Type, Name, or Language entries (depending on the
|
||||
/// level of the table).
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public ResourceDirectoryEntry[] Entries { get; set; }
|
||||
#else
|
||||
public ResourceDirectoryEntry?[]? Entries { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,11 +29,7 @@
|
||||
/// characters. Long names in object files are truncated if they are emitted
|
||||
/// to an executable file.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Name { get; set; } = new byte[8];
|
||||
#else
|
||||
public byte[]? Name { get; set; } = new byte[8];
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// The total size of the section when loaded into memory. If this value is
|
||||
@@ -104,19 +100,11 @@
|
||||
/// <summary>
|
||||
/// COFF Relocations (Object Only)
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public COFFRelocation[] COFFRelocations { get; set; }
|
||||
#else
|
||||
public COFFRelocation?[]? COFFRelocations { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// COFF Line Numbers (Deprecated)
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public COFFLineNumber[] COFFLineNumbers { get; set; }
|
||||
#else
|
||||
public COFFLineNumber?[]? COFFLineNumbers { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,20 +27,12 @@
|
||||
/// <summary>
|
||||
/// Version, always 8 bytes?
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string Version { get; set; }
|
||||
#else
|
||||
public string? Version { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Unknown (Build? Formatted as a string)
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public char[] Build { get; set; }
|
||||
#else
|
||||
public char[]? Build { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Unknown (0x14h), Variable number of bytes before entry table
|
||||
@@ -55,19 +47,11 @@
|
||||
/// "554900-001" in 4.84.76.7968
|
||||
/// "548520-001" in 4.85.07.0009
|
||||
/// </remarks>
|
||||
#if NET48
|
||||
public byte[] Unknown14h { get; set; }
|
||||
#else
|
||||
public byte[]? Unknown14h { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Entry table
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public SecuROMAddDEntry[] Entries { get; set; }
|
||||
#else
|
||||
public SecuROMAddDEntry?[]? Entries { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,11 +61,7 @@
|
||||
/// Entry file name (null-terminated)
|
||||
/// </summary>
|
||||
/// <remarks>12 bytes long in the sample (all 3 entries) in 4.47.00.0039</remarks>
|
||||
#if NET48
|
||||
public string FileName { get; set; }
|
||||
#else
|
||||
public string? FileName { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Unknown (0x2C)
|
||||
|
||||
@@ -64,11 +64,7 @@
|
||||
/// set in the dwFileFlags member of the VS_FIXEDFILEINFO structure. For example, Value
|
||||
/// could be "Private build for Olivetti solving mouse problems on M250 and M250E computers".
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string Key { get; set; }
|
||||
#else
|
||||
public string? Key { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// As many zero words as necessary to align the Value member on a 32-bit boundary.
|
||||
@@ -78,10 +74,6 @@
|
||||
/// <summary>
|
||||
/// A zero-terminated string. See the szKey member description for more information.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string Value { get; set; }
|
||||
#else
|
||||
public string? Value { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,11 +26,7 @@
|
||||
/// <summary>
|
||||
/// The Unicode string L"StringFileInfo".
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string Key { get; set; }
|
||||
#else
|
||||
public string? Key { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// As many zero words as necessary to align the Children member on a 32-bit boundary.
|
||||
@@ -42,10 +38,6 @@
|
||||
/// member indicates the appropriate language and code page for displaying the text in
|
||||
/// that StringTable structure.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public StringTable[] Children { get; set; }
|
||||
#else
|
||||
public StringTable?[]? Children { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,11 +31,7 @@
|
||||
/// identifier contains two parts: the low-order 10 bits specify the major language,
|
||||
/// and the high-order 6 bits specify the sublanguage.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string Key { get; set; }
|
||||
#else
|
||||
public string? Key { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// As many zero words as necessary to align the Children member on a 32-bit boundary.
|
||||
@@ -45,10 +41,6 @@
|
||||
/// <summary>
|
||||
/// An array of one or more StringData structures.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public StringData[] Children { get; set; }
|
||||
#else
|
||||
public StringData?[]? Children { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,11 +26,7 @@
|
||||
/// <summary>
|
||||
/// The Unicode string L"Translation".
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string Key { get; set; }
|
||||
#else
|
||||
public string? Key { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// As many zero words as necessary to align the Value member on a 32-bit boundary.
|
||||
@@ -49,10 +45,6 @@
|
||||
/// independent. If the Var structure is omitted, the file will be interpreted as both
|
||||
/// language and code page independent.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public uint[] Value { get; set; }
|
||||
#else
|
||||
public uint[]? Value { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,11 +26,7 @@
|
||||
/// <summary>
|
||||
/// The Unicode string L"VarFileInfo".
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string Key { get; set; }
|
||||
#else
|
||||
public string? Key { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// As many zero words as necessary to align the Children member on a 32-bit boundary.
|
||||
@@ -40,10 +36,6 @@
|
||||
/// <summary>
|
||||
/// Typically contains a list of languages that the application or DLL supports.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public VarData[] Children { get; set; }
|
||||
#else
|
||||
public VarData?[]? Children { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,11 +29,7 @@
|
||||
/// <summary>
|
||||
/// The Unicode string L"VS_VERSION_INFO".
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string Key { get; set; }
|
||||
#else
|
||||
public string? Key { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Contains as many zero words as necessary to align the Value member on a 32-bit boundary.
|
||||
@@ -44,11 +40,7 @@
|
||||
/// Arbitrary data associated with this VS_VERSIONINFO structure. The ValueLength member
|
||||
/// specifies the length of this member; if ValueLength is zero, this member does not exist.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public FixedFileInfo Value { get; set; }
|
||||
#else
|
||||
public FixedFileInfo? Value { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// As many zero words as necessary to align the Children member on a 32-bit boundary.
|
||||
@@ -59,19 +51,11 @@
|
||||
/// <summary>
|
||||
/// The StringFileInfo structure to store user-defined string information data.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public StringFileInfo StringFileInfo { get; set; }
|
||||
#else
|
||||
public StringFileInfo? StringFileInfo { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// The VarFileInfo structure to store language information data.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public VarFileInfo VarFileInfo { get; set; }
|
||||
#else
|
||||
public VarFileInfo? VarFileInfo { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user