File: Windows.Win32.TEXTMETRICW.g.cs
Project: src\src\System.Windows.Forms.Primitives\src\System.Windows.Forms.Primitives.csproj (System.Windows.Forms.Primitives)
// ------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
// ------------------------------------------------------------------------------

#pragma warning disable CS1591,CS1573,CS0465,CS0649,CS8019,CS1570,CS1584,CS1658,CS0436,CS8981
using global::System;
using global::System.Diagnostics;
using global::System.Diagnostics.CodeAnalysis;
using global::System.Runtime.CompilerServices;
using global::System.Runtime.InteropServices;
using global::System.Runtime.Versioning;
using winmdroot = global::Windows.Win32;
namespace Windows.Win32
{
	namespace Graphics.Gdi
	{
		/// <summary>The TEXTMETRIC structure contains basic information about a physical font. All sizes are specified in logical units; that is, they depend on the current mapping mode of the display context. (Unicode)</summary>
		/// <remarks>
		/// <para>> [!NOTE] > The wingdi.h header defines TEXTMETRIC as an alias which automatically selects the ANSI or Unicode version of this function based on the definition of the UNICODE preprocessor constant. Mixing usage of the encoding-neutral alias with code that not encoding-neutral can lead to mismatches that result in compilation or runtime errors. For more information, see [Conventions for Function Prototypes](/windows/win32/intl/conventions-for-function-prototypes).</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/wingdi/ns-wingdi-textmetricw#">Read more on docs.microsoft.com</see>.</para>
		/// </remarks>
		[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
		[global::System.CodeDom.Compiler.GeneratedCode("Microsoft.Windows.CsWin32", "0.3.151+58e949951d.RR")]
		internal partial struct TEXTMETRICW
		{
			/// <summary>The height (ascent + descent) of characters.</summary>
			internal int tmHeight;

			/// <summary>The ascent (units above the base line) of characters.</summary>
			internal int tmAscent;

			/// <summary>The descent (units below the base line) of characters.</summary>
			internal int tmDescent;

			/// <summary>The amount of leading (space) inside the bounds set by the <b>tmHeight</b> member. Accent marks and other diacritical characters may occur in this area. The designer may set this member to zero.</summary>
			internal int tmInternalLeading;

			/// <summary>The amount of extra leading (space) that the application adds between rows. Since this area is outside the font, it contains no marks and is not altered by text output calls in either OPAQUE or TRANSPARENT mode. The designer may set this member to zero.</summary>
			internal int tmExternalLeading;

			/// <summary>The average width of characters in the font (generally defined as the width of the letter <i>x</i> ). This value does not include the overhang required for bold or italic characters.</summary>
			internal int tmAveCharWidth;

			/// <summary>The width of the widest character in the font.</summary>
			internal int tmMaxCharWidth;

			/// <summary>The weight of the font.</summary>
			internal int tmWeight;

			/// <summary>
			/// <para>The extra width per string that may be added to some synthesized fonts. When synthesizing some attributes, such as bold or italic, graphics device interface (GDI) or a device may have to add width to a string on both a per-character and per-string basis. For example, GDI makes a string bold by expanding the spacing of each character and overstriking by an offset value; it italicizes a font by shearing the string. In either case, there is an overhang past the basic string. For bold strings, the overhang is the distance by which the overstrike is offset. For italic strings, the overhang is the amount the top of the font is sheared past the bottom of the font. The <b>tmOverhang</b> member enables the application to determine how much of the character width returned by a <a href="https://docs.microsoft.com/windows/desktop/api/wingdi/nf-wingdi-gettextextentpoint32a">GetTextExtentPoint32</a> function call on a single character is the actual character width and how much is the per-string extra width. The actual width is the extent minus the overhang.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/wingdi/ns-wingdi-textmetricw#members">Read more on docs.microsoft.com</see>.</para>
			/// </summary>
			internal int tmOverhang;

			/// <summary>The horizontal aspect of the device for which the font was designed.</summary>
			internal int tmDigitizedAspectX;

			/// <summary>The vertical aspect of the device for which the font was designed. The ratio of the <b>tmDigitizedAspectX</b> and <b>tmDigitizedAspectY</b> members is the aspect ratio of the device for which the font was designed.</summary>
			internal int tmDigitizedAspectY;

			/// <summary>The value of the first character defined in the font.</summary>
			internal char tmFirstChar;

			/// <summary>The value of the last character defined in the font.</summary>
			internal char tmLastChar;

			/// <summary>The value of the character to be substituted for characters not in the font.</summary>
			internal char tmDefaultChar;

			/// <summary>The value of the character that will be used to define word breaks for text justification.</summary>
			internal char tmBreakChar;

			/// <summary>Specifies an italic font if it is nonzero.</summary>
			internal byte tmItalic;

			/// <summary>Specifies an underlined font if it is nonzero.</summary>
			internal byte tmUnderlined;

			/// <summary>A strikeout font if it is nonzero.</summary>
			internal byte tmStruckOut;

			/// <summary>
			/// <para>Specifies information about the pitch, the technology, and the family of a physical font. The four low-order bits of this member specify information about the pitch and the technology of the font. A constant is defined for each of the four bits. </para>
			/// <para>This doc was truncated.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/wingdi/ns-wingdi-textmetricw#members">Read more on docs.microsoft.com</see>.</para>
			/// </summary>
			internal winmdroot.Graphics.Gdi.TMPF_FLAGS tmPitchAndFamily;

			/// <summary></summary>
			internal byte tmCharSet;
		}
	}
}