mirror of
https://github.com/SabreTools/SabreTools.Serialization.git
synced 2026-04-15 10:43:00 +00:00
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.
504 lines
16 KiB
C#
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,
|
|
}
|
|
}
|