The DocumentSummaryInformation and UserDefined Property Sets
A DocumentSummaryInformation and UserDefined property set is an extension to the Summary Information property set. Both property sets can exist simultaneously.
The name of the stream that contains the DocumentSummaryInformation property set is "\005DocumentSummaryInformation". The format identifier (FMTID) for the DocumentSummaryInformation property set is D5CDD502-2E9C-101B-9397-08002B2CF9AE.
The declaration for this value is available in the provided header files as FMTID_DocSummaryInformation. For more information, see Names in IStorage, The Summary Information Property Set, IPropertySetStorage::Create and Format Identifiers.
This stream also has a separate section for the custom-user-defined properties as in the DocumentSummaryInformation and UserDefined property sets. This section appears in the IPropertySetStorage interface as a separate property set, with the following FMTID (available as FMTID_UserDefinedProperties): D5CDD505-2E9C-101B-9397-08002B2CF9AE.
These two property sets are the only ones for which a single stream can hold multiple property sets. The fact that these two property sets are in a single stream affects the behavior of the IPropertySetStorage interface. For more information, see IPropertySetStorage.
The following table lists the added properties to the DocumentSummaryInformation and UserDefined property set. As in the SummaryInformation property set, the names are not typically stored in the property set, but are inferred from the property identifier.
Property name | Property identifier | Property identifier value | VARIANT type |
---|---|---|---|
Category | PIDDSI_CATEGORY | 0x00000002 | VT_LPSTR |
PresentationTarget | PIDDSI_PRESFORMAT | 0x00000003 | VT_LPSTR |
Bytes | PIDDSI_BYTECOUNT | 0x00000004 | VT_I4 |
Lines | PIDDSI_LINECOUNT | 0x00000005 | VT_I4 |
Paragraphs | PIDDSI_PARCOUNT | 0x00000006 | VT_I4 |
Slides | PIDDSI_SLIDECOUNT | 0x00000007 | VT_I4 |
Notes | PIDDSI_NOTECOUNT | 0x00000008 | VT_I4 |
HiddenSlides | PIDDSI_HIDDENCOUNT | 0x00000009 | VT_I4 |
MMClips | PIDDSI_MMCLIPCOUNT | 0x0000000A | VT_I4 |
ScaleCrop | PIDDSI_SCALE | 0x0000000B | VT_BOOL |
HeadingPairs | PIDDSI_HEADINGPAIR | 0x0000000C | VT_VARIANT | VT_VECTOR |
TitlesofParts | PIDDSI_DOCPARTS | 0x0000000D | VT_VECTOR | VT_LPSTR |
Manager | PIDDSI_MANAGER | 0x0000000E | VT_LPSTR |
Company | PIDDSI_COMPANY | 0x0000000F | VT_LPSTR |
LinksUpToDate | PIDDSI_LINKSDIRTY | 0x00000010 | VT_BOOL |
These properties have the following uses:
-
Category
-
A text string typed by the user that indicates what category the file belongs to (memo, proposal, and so on). It is useful for finding files of same type.
-
PresentationTarget
-
Target format for presentation (35mm, printer, video, and so on).
-
Bytes
-
Number of bytes.
-
Lines
-
Number of lines.
-
Paragraphs
-
Number of paragraphs.
-
Slides
-
Number of slides.
-
Notes
-
Number of pages that contain notes.
-
HiddenSlides
-
Number of slides that are hidden.
-
MMClips
-
Number of sound or video clips.
-
ScaleCrop
-
Set to True (-1) when scaling of the thumbnail is desired. If not set, cropping is desired.
-
HeadingPairs
-
Internally used property indicating the grouping of different document parts and the number of items in each group. The titles of the document parts are stored in the TitlesofParts property. The HeadingPairs property is stored as a vector of variants, in repeating pairs of VT_LPSTR (or VT_LPWSTR) and VT_I4 values. The VT_LPSTR value represents a heading name, and the VT_I4 value indicates the count of document parts under that heading.
-
TitlesofParts
-
Names of document parts.
-
Manager
-
Manager of the project.
-
Company
-
Company name.
-
LinksUpToDate
-
Boolean value to indicate whether the custom links are hampered by excessive noise, for all applications.
Note
As described in 12.3. Serialized Format for Property Sets of the OLE 2.0 Design Specification, vector elements in the HeadingPairs and TitlesofParts properties should be aligned on 32 bit boundaries within the property set. However, in the DocumentSummaryInformation and UserDefined property sets, when the code page of the property set is not Unicode, these elements must be packed.
The UserDefined property set can be used to hold any properties. Typically, it is used to store named properties created by a user.