File: Metafiles\RecordTypes\EMRCREATEBRUSHINDIRECT.cs
Web Access
Project: src\src\System.Windows.Forms.Primitives\tests\TestUtilities\System.Windows.Forms.Primitives.TestUtilities.csproj (System.Windows.Forms.Primitives.TestUtilities)
// 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.Runtime.InteropServices;
 
namespace System.Windows.Forms.Metafiles;
 
[StructLayout(LayoutKind.Sequential)]
internal struct EMRCREATEBRUSHINDIRECT
{
    public EMR emr;
    public uint ihBrush;
    public LOGBRUSH32 lb;
 
    public override readonly string ToString()
        => $@"[{nameof(EMRCREATEBRUSHINDIRECT)}] Index: {ihBrush} Style: {lb.lbStyle} Color: {lb.lbColor.ToSystemColorString()}";
 
    // This structure is used exclusively in EMRCREATEBRUSHINDIRECT
    [StructLayout(LayoutKind.Sequential)]
    internal struct LOGBRUSH32
    {
        public BRUSH_STYLE lbStyle;
        public COLORREF lbColor;
        public uint lbHatch;
 
        public static implicit operator LOGBRUSH(LOGBRUSH32 logbrush) => new()
        {
            lbStyle = logbrush.lbStyle,
            lbColor = logbrush.lbColor,
            lbHatch = logbrush.lbHatch
        };
    }
}