Files
Matt Nadareski 7689c6dd07 Libraries
This change looks dramatic, but it's just separating out the already-split namespaces into separate top-level folders. In theory, every single one could be built into their own Nuget package. `SabreTools.Serialization` still builds the normal Nuget package that is used by all other projects and includes all namespaces.
2026-03-21 16:26:56 -04:00

504 lines
16 KiB
C#

namespace SabreTools.Data.Models.OLE
{
/// <summary>
/// The PropertyIdentifier data type represents the property identifier of a property in a property set
/// </summary>
/// <remarks>
/// The SummaryInformation property set format, identified by FMTID_SummaryInformation
/// ({F29F85E0-4FF9-1068-AB91-08002B27B3D9}), represents generic properties of a document. The properties
/// specific to the SummaryInformation property set are specified in the following table. Except where
/// otherwise stated, a SummaryInformation property set SHOULD have all of these properties, and SHOULD
/// NOT have any other properties, except for the special properties specified in section 2.18.
/// </remarks>
/// <see href="https://winprotocoldoc.z19.web.core.windows.net/MS-OLEPS/%5bMS-OLEPS%5d.pdf"/>
public enum PropertyIdentifier : uint
{
/// <summary>
/// Property identifier for the Dictionary property
/// </summary>
DICTIONARY_PROPERTY_IDENTIFIER = 0x00000000,
/// <summary>
/// Property identifier for the CodePage property
/// </summary>
CODEPAGE_PROPERTY_IDENTIFIER = 0x00000001,
/// <summary>
/// Property identifier for the Locale property
/// </summary>
LOCALE_PROPERTY_IDENTIFIER = 0x80000000,
/// <summary>
/// Property identifier for the Behavior property
/// </summary>
BEHAVIOR_PROPERTY_IDENTIFIER = 0x80000003,
#region SummaryInformation
/// <summary>
/// The title of the document.
/// </summary>
/// <remarks>VT_LPSTR</remarks>
PIDSI_TITLE = 0x00000002,
/// <summary>
/// The subject of the document.
/// </summary>
/// <remarks>VT_LPSTR</remarks>
PIDSI_SUBJECT = 0x00000003,
/// <summary>
/// The author of the document.
/// </summary>
/// <remarks>VT_LPSTR</remarks>
PIDSI_AUTHOR = 0x00000004,
/// <summary>
/// Keywords related to the document.
/// </summary>
/// <remarks>VT_LPSTR</remarks>
PIDSI_KEYWORDS = 0x00000005,
/// <summary>
/// Comments related the document.
/// </summary>
/// <remarks>VT_LPSTR</remarks>
PIDSI_COMMENTS = 0x00000006,
/// <summary>
/// The application-specific template from which the document was created.
/// </summary>
/// <remarks>VT_LPSTR</remarks>
PIDSI_TEMPLATE = 0x00000007,
/// <summary>
/// The last author of the document.
/// </summary>
/// <remarks>VT_LPSTR</remarks>
PIDSI_LASTAUTHOR = 0x00000008,
/// <summary>
/// An application-specific revision number for this version of the document.
/// </summary>
/// <remarks>VT_LPSTR</remarks>
PIDSI_REVNUMBER = 0x00000009,
/// <summary>
/// A 64-bit unsigned integer indicating the total amount of time that
/// has been spent editing the document in 100-nanosecond
/// increments. MUST be encoded as a FILETIME by setting the
/// dwLowDataTime field to the low 32-bits and the dwHighDateTime
/// field to the high 32-bits.
/// </summary>
/// <remarks>VT_FILETIME</remarks>
PIDSI_EDITTIME = 0x0000000A,
/// <summary>
/// The most recent time that the document was printed.
/// </summary>
/// <remarks>VT_FILETIME</remarks>
PIDSI_LASTPRINTED = 0x0000000B,
/// <summary>
/// The time that the document was created.
/// </summary>
/// <remarks>VT_FILETIME</remarks>
PIDSI_CREATE_DTM = 0x0000000C,
/// <summary>
/// The most recent time that the document was saved.
/// </summary>
/// <remarks>VT_FILETIME</remarks>
PIDSI_LASTSAVE_DTM = 0x0000000D,
/// <summary>
/// The total number of pages in the document.
/// </summary>
/// <remarks>VT_I4</remarks>
PIDSI_PAGECOUNT = 0x0000000E,
/// <summary>
/// The total number of words in the document.
/// </summary>
/// <remarks>VT_I4</remarks>
PIDSI_WORDCOUNT = 0x0000000F,
/// <summary>
/// The total number of characters in the document.
/// </summary>
/// <remarks>VT_I4</remarks>
PIDSI_CHARCOUNT = 0x00000010,
/// <summary>
/// Application-specific clipboard data containing a thumbnail
/// representing the document's contents. MAY be absent.
/// </summary>
/// <remarks>VT_CF</remarks>
PIDSI_THUMBNAIL = 0x00000011,
/// <summary>
/// The name of the application that was used to create the document.
/// </summary>
/// <remarks>VT_LPSTR</remarks>
PIDSI_APPNAME = 0x00000012,
/// <summary>
/// A 32-bit signed integer representing a set of application-suggested
/// access control flags with the following values:
/// - 0x00000001: Password protected
/// - 0x00000002: Read-only recommended
/// - 0x00000004: Read-only enforced
/// - 0x00000008: Locked for annotations
/// </summary>
/// <remarks>VT_I4</remarks>
PIDSI_DOC_SECURITY = 0x00000013,
#endregion
}
/// <summary>
/// The PropertyType enumeration represents the type of a property in a property set. The set of types
/// supported depends on the version of the property set, which is indicated by the Version field of the
/// PropertySetStream packet. In addition, the property types not supported in simple property sets
/// are specified as such. PropertyType is an enumeration, which MUST be one of the following values
/// </summary>
/// <see href="https://winprotocoldoc.z19.web.core.windows.net/MS-OLEPS/%5bMS-OLEPS%5d.pdf"/>
public enum PropertyType : ushort
{
/// <summary>
/// Type is undefined, and the minimum property set version is 0
/// </summary>
VT_EMPTY = 0x0000,
/// <summary>
/// Type is null, and the minimum property set version is 0
/// </summary>
VT_NULL = 0x0001,
/// <summary>
/// Type is 16-bit signed integer, and the minimum property set version is 0
/// </summary>
VT_I2 = 0x0002,
/// <summary>
/// Type is 32-bit signed integer, and the minimum property set version is 0.
/// </summary>
VT_I4 = 0x0003,
/// <summary>
/// Type is 4-byte (single-precision) IEEE floating-point number, and the
/// minimum property set version is 0.
/// </summary>
VT_R4 = 0x0004,
/// <summary>
/// Type is 8-byte (double-precision) IEEE floating-point number, and the
/// minimum property set version is 0.
/// </summary>
VT_R8 = 0x0005,
/// <summary>
/// Type is CURRENCY, and the minimum property set version is 0.
/// </summary>
VT_CY = 0x0006,
/// <summary>
/// Type is DATE, and the minimum property set version is 0.
/// </summary>
VT_DATE = 0x0007,
/// <summary>
/// Type is CodePageString, and the minimum property set version is 0.
/// </summary>
VT_BSTR = 0x0008,
/// <summary>
/// Type is HRESULT, and the minimum property set version is 0.
/// </summary>
VT_ERROR = 0x000A,
/// <summary>
/// Type is VARIANT_BOOL, and the minimum property set version is 0.
/// </summary>
VT_BOOL = 0x000B,
/// <summary>
/// Type is DECIMAL, and the minimum property set version is 0.
/// </summary>
VT_DECIMAL = 0x000E,
/// <summary>
/// Type is 1-byte signed integer, and the minimum property set version
/// is 1.
/// </summary>
VT_I1 = 0x0010,
/// <summary>
/// Type is 1-byte unsigned integer, and the minimum property set version
/// is 0.
/// </summary>
VT_UI1 = 0x0011,
/// <summary>
/// Type is 2-byte unsigned integer, and the minimum property set version
/// is 0.
/// </summary>
VT_UI2 = 0x0012,
/// <summary>
/// Type is 4-byte unsigned integer, and the minimum property set version
/// is 0.
/// </summary>
VT_UI4 = 0x0013,
/// <summary>
/// Type is 8-byte signed integer, and the minimum property set version
/// is 0.
/// </summary>
VT_I8 = 0x0014,
/// <summary>
/// Type is 8-byte unsigned integer, and the minimum property set version
/// is 0.
/// </summary>
VT_UI8 = 0x0015,
/// <summary>
/// Type is 4-byte signed integer, and the minimum property set version
/// is 1.
/// </summary>
VT_INT = 0x0016,
/// <summary>
/// Type is 4-byte unsigned integer, and the minimum property set version
/// is 1.
/// </summary>
VT_UINT = 0x0017,
/// <summary>
/// Type is CodePageString, and the minimum property set version is 0.
/// </summary>
VT_LPSTR = 0x001E,
/// <summary>
/// Type is UnicodeString, and the minimum property set version is 0.
/// </summary>
VT_LPWSTR = 0x001F,
/// <summary>
/// Type is FILETIME, and the minimum property set version is 0.
/// </summary>
VT_FILETIME = 0x0040,
/// <summary>
/// Type is binary large object (BLOB), and the minimum property set
/// version is 0.
/// </summary>
VT_BLOB = 0x0041,
/// <summary>
/// Type is Stream, and the minimum property set version is 0. VT_STREAM
/// is not allowed in a simple property set.
/// </summary>
VT_STREAM = 0x0042,
/// <summary>
/// Type is Storage, and the minimum property set version is 0. VT_STORAGE
/// is not allowed in a simple property set.
/// </summary>
VT_STORAGE = 0x0043,
/// <summary>
/// Type is Stream representing an Object in an application-specific manner,
/// and the minimum property set version is 0. VT_STREAMED_Object is not
/// allowed in a simple property set.
/// </summary>
VT_STREAMED_Object = 0x0044,
/// <summary>
/// Type is Storage representing an Object in an application-specific manner,
/// and the minimum property set version is 0. VT_STORED_Object is not
/// allowed in a simple property set.
/// </summary>
VT_STORED_Object = 0x0045,
/// <summary>
/// Type is BLOB representing an object in an application-specific manner.
/// The minimum property set version is 0.
/// </summary>
VT_BLOB_Object = 0x0046,
/// <summary>
/// Type is PropertyIdentifier, and the minimum property set version is 0.
/// </summary>
VT_CF = 0x0047,
/// <summary>
/// Type is CLSID, and the minimum property set version is 0.
/// </summary>
VT_CLSID = 0x0048,
/// <summary>
/// Type is Stream with application-specific version GUID (VersionedStream).
/// The minimum property set version is 0. VT_VERSIONED_STREAM is not allowed
/// in a simple property set.
/// </summary>
VT_VERSIONED_STREAM = 0x0049,
/// <summary>
/// Type is Vector, and the minimum property set version is 0
/// </summary>
VT_VECTOR = 0x1000,
/// <summary>
/// Type is Vector of 1-byte unsigned integers, and the minimum property set version
/// is 0.
/// </summary>
VT_VECTOR_UI1 = 0x1011,
/// <summary>
/// Type is Vector of 2-byte unsigned integers, and the minimum property set version
/// is 0.
/// </summary>
VT_VECTOR_UI2 = 0x1012,
/// <summary>
/// Type is Vector of 4-byte unsigned integers, and the minimum property set version
/// is 0.
/// </summary>
VT_VECTOR_UI4 = 0x1013,
/// <summary>
/// Type is Vector of 8-byte signed integers, and the minimum property set version
/// is 0.
/// </summary>
VT_VECTOR_I8 = 0x1014,
/// <summary>
/// Type is Vector of 8-byte unsigned integers and the minimum property set version
/// is 0.
/// </summary>
VT_VECTOR_UI8 = 0x1015,
/// <summary>
/// Type is Vector of CodePageString, and the minimum property set version is 0.
/// </summary>
VT_VECTOR_LPSTR = 0x101E,
/// <summary>
/// Type is Vector of UnicodeString, and the minimum property set version is 0.
/// </summary>
VT_VECTOR_LPWSTR = 0x101F,
/// <summary>
/// Type is Vector of FILETIME, and the minimum property set version is 0.
/// </summary>
VT_VECTOR_FILETIME = 0x1040,
/// <summary>
/// Type is Vector of PropertyIdentifier, and the minimum property set version is 0.
/// </summary>
VT_VECTOR_CF = 0x1047,
/// <summary>
/// Type is Vector of CLSID, and the minimum property set version is 0.
/// </summary>
VT_VECTOR_CLSID = 0x1048,
/// <summary>
/// Type is Array of 16-bit signed integers, and the minimum property set version
/// is 1.
/// </summary>
VT_ARRAY_I2 = 0x2002,
/// <summary>
/// Type is Array of 32-bit signed integers, and the minimum property set version
/// is 1.
/// </summary>
VT_ARRAY_I4 = 0x2003,
/// <summary>
/// Type is Array of 4-byte (single-precision) IEEE floating-point numbers, and the
/// minimum property set version is 1.
/// </summary>
VT_ARRAY_R4 = 0x2004,
/// <summary>
/// Type is IEEE floating-point numbers, and the minimum property set version is 1.
/// </summary>
VT_ARRAY_R8 = 0x2005,
/// <summary>
/// Type is Array of CURRENCY, and the minimum property set version is 1.
/// </summary>
VT_ARRAY_CY = 0x2006,
/// <summary>
/// Type is Array of DATE, and the minimum property set version is 1.
/// </summary>
VT_ARRAY_DATE = 0x2007,
/// <summary>
/// Type is Array of CodePageString, and the minimum property set version is 1.
/// </summary>
VT_ARRAY_BSTR = 0x2008,
/// <summary>
/// Type is Array of HRESULT, and the minimum property set version is 1.
/// </summary>
VT_ARRAY_ERROR = 0x200A,
/// <summary>
/// Type is Array of VARIANT_BOOL, and the minimum property set version is 1.
/// </summary>
VT_ARRAY_BOOL = 0x200B,
/// <summary>
/// Type is Array of variable-typed properties, and the minimum property set
/// version is 1
/// </summary>
VT_ARRAY_VARIANT = 0x200C,
/// <summary>
/// Type is Array of DECIMAL, and the minimum property set version is 1
/// </summary>
VT_ARRAY_DECIMAL = 0x200E,
/// <summary>
/// Type is Array of 1-byte signed integers, and the minimum property set
/// version is 1
/// </summary>
VT_ARRAY_I1 = 0x2010,
/// <summary>
/// Type is Array of 1-byte unsigned integers, and the minimum property set
/// version is 1
/// </summary>
VT_ARRAY_UI1 = 0x2011,
/// <summary>
/// Type is Array of 2-byte unsigned integers, and the minimum property set
/// version is 1.
/// </summary>
VT_ARRAY_UI2 = 0x2012,
/// <summary>
/// Type is Array of 4-byte unsigned integers, and the minimum property set
/// version is 1.
/// </summary>
VT_ARRAY_UI4 = 0x2013,
/// <summary>
/// Type is Array of 4-byte signed integers, and the minimum property set version
/// is 1.
/// </summary>
VT_ARRAY_INT = 0x2016,
/// <summary>
/// Type is Array of 4-byte unsigned integers, and the minimum property set version
/// is 1.
/// </summary>
VT_ARRAY_UINT = 0x2017,
}
}