2025-09-26 13:06:18 -04:00
|
|
|
namespace SabreTools.Data.Models.OLE
|
2025-09-26 11:57:18 -04:00
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// The ArrayHeader packet represents the type and dimensions of an array property type.
|
|
|
|
|
/// </summary>
|
2025-10-30 22:52:56 -04:00
|
|
|
/// <see href="https://winprotocoldoc.z19.web.core.windows.net/MS-OLEPS/%5bMS-OLEPS%5d.pdf"/>
|
2025-09-26 11:57:18 -04:00
|
|
|
public class ArrayHeader
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// MUST be set to the value obtained by clearing the VT_ARRAY (0x2000) bit of
|
|
|
|
|
/// this array property's PropertyType value.
|
|
|
|
|
/// </summary>
|
|
|
|
|
public PropertyType Type { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// An unsigned integer representing the number of dimensions in the array
|
|
|
|
|
/// property. MUST be at least 1 and at most 31.
|
|
|
|
|
/// </summary>
|
|
|
|
|
public uint NumDimensions { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// MUST be a sequence of ArrayDimension packets
|
2025-10-30 22:52:56 -04:00
|
|
|
///
|
2025-09-26 11:57:18 -04:00
|
|
|
/// The number of scalar values in an array property can be calculated from the ArrayHeader packet
|
|
|
|
|
/// as the product of the Size fields of each of the ArrayDimension packets.
|
|
|
|
|
/// </summary>
|
2025-10-31 13:59:28 -04:00
|
|
|
public ArrayDimension[] Dimensions { get; set; } = [];
|
2025-09-26 11:57:18 -04:00
|
|
|
}
|
|
|
|
|
}
|