File: Windows.Win32.SHITEMID.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 UI.Shell.Common
	{
		/// <summary>Defines an item identifier.</summary>
		/// <remarks>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/shtypes/ns-shtypes-shitemid">Learn more about this API from docs.microsoft.com</see>.</para>
		/// </remarks>
		[StructLayout(LayoutKind.Sequential, Pack = 1)]
		[global::System.CodeDom.Compiler.GeneratedCode("Microsoft.Windows.CsWin32", "0.3.151+58e949951d.RR")]
		internal partial struct SHITEMID
		{
			/// <summary>
			/// <para>Type: <b>USHORT</b> The size of identifier, in bytes, including <b>cb</b> itself.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/shtypes/ns-shtypes-shitemid#members">Read more on docs.microsoft.com</see>.</para>
			/// </summary>
			internal ushort cb;

			/// <summary>
			/// <para>Type: <b>BYTE[1]</b> A variable-length item identifier.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/shtypes/ns-shtypes-shitemid#members">Read more on docs.microsoft.com</see>.</para>
			/// </summary>
			internal global::Windows.Win32.VariableLengthInlineArray<byte> abID;

			/// <summary>Computes the amount of memory that must be allocated to store this struct, including the specified number of elements in the variable length inline array at the end.</summary>
			internal static unsafe int SizeOf(int count)
			{
				int v = sizeof(SHITEMID);
				if (count > 1)
					v +=checked((count - 1) * sizeof(byte));
					else
						if (count < 0)
							throw new ArgumentOutOfRangeException();
				return v;
			}
		}
	}
}