|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
#nullable enable
using System.Drawing;
using System.Runtime.InteropServices;
namespace System.Windows.Forms.Metafiles;
[StructLayout(LayoutKind.Sequential)]
internal struct ENHMETAHEADER
{
public uint iType; // Record typeEMR_HEADER
public uint nSize; // Record size in bytes. This may be greater
// than the sizeof(ENHMETAHEADER).
public RECT rclBounds; // Inclusive-inclusive bounds in device units
public RECT rclFrame; // Inclusive-inclusive Picture Frame of metafile in .01 mm units
public uint dSignature; // Signature. Must be ENHMETA_SIGNATURE.
public uint nVersion; // Version number
public uint nBytes; // Size of the metafile in bytes
public uint nRecords; // Number of records in the metafile
public ushort nHandles; // Number of handles in the handle table
// Handle index zero is reserved.
public ushort sReserved; // Reserved. Must be zero.
public uint nDescription; // Number of chars in the unicode description string
// This is 0 if there is no description string
public uint offDescription; // Offset to the metafile description record.
// This is 0 if there is no description string
public uint nPalEntries; // Number of entries in the metafile palette.
public Size szlDevice; // Size of the reference device in pixels
public Size szlMillimeters; // Size of the reference device in millimeters
// The next three bring the size up to 100 bytes
public uint cbPixelFormat; // Size of PIXELFORMATDESCRIPTOR information
// This is 0 if no pixel format is set
public uint offPixelFormat; // Offset to PIXELFORMATDESCRIPTOR
// This is 0 if no pixel format is set
public BOOL bOpenGL; // TRUE if OpenGL commands are present in
// the metafile, otherwise FALSE
// The next field brings the size to 108 bytes
public Size szlMicrometers; // Size of the reference device in micrometers
public override readonly string ToString() => $@"[{nameof(ENHMETAHEADER)}] Bounds: {rclBounds} Device Size: {szlDevice}Header Size: {nSize}";
}
|