Remove framework gating

This commit is contained in:
Matt Nadareski
2023-11-07 20:57:05 -05:00
parent e582ce8726
commit 1f340bd244
368 changed files with 5 additions and 7413 deletions

View File

@@ -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" />

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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

View File

@@ -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
}

View File

@@ -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
}
}

View File

@@ -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
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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

View File

@@ -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

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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

View File

@@ -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
}
}

View File

@@ -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

View File

@@ -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
}

View File

@@ -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
}
}

View File

@@ -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
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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

View File

@@ -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
}
}

View File

@@ -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

View File

@@ -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
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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)

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}