3.2.2 Document Summary Information Property Set Overview

The following table contains the beginning of a Document Summary Information property set (section 2.3.3.2.2) stream.

Offset

Size

Structure

Value

00000044

0254

A: PropertySet - DocumentSummaryInformation

00000044

0004

    DWORD - cbSection

0x00000254

00000048

0004

    DWORD - cProps

0x0000000F

0000004C

0078

    Array of PropertyIdentifierAndOffset - rgProps

0000004C

0008

        PropertyIdentifierAndOffset - PidOffsetElement-1

0000004C

0004

            DWORD - propId

0x00000001

00000050

0004

            FilePointer - propOffset

0x00000080

00000054

0008

        PropertyIdentifierAndOffset - PidOffsetElement-2

00000054

0004

            DWORD - propId

0x00000002

00000058

0004

            FilePointer - propOffset

0x00000088

0000005C

0008

        PropertyIdentifierAndOffset - PidOffsetElement-3

0000005C

0004

            DWORD - propId

0x0000000E

00000060

0004

            FilePointer - propOffset

0x0000009C

00000064

0008

        PropertyIdentifierAndOffset - PidOffsetElement-4

00000064

0004

            DWORD - propId

0x0000000F

00000068

0004

            FilePointer - propOffset

0x000000B0

0000006C

0008

        PropertyIdentifierAndOffset - PidOffsetElement-5

0000006C

0004

            DWORD - propId

0x0000001B

00000070

0004

            FilePointer - propOffset

0x000000C0

00000074

0008

        PropertyIdentifierAndOffset - PidOffsetElement-6

00000074

0004

            DWORD - propId

0x00000005

00000078

0004

            FilePointer - propOffset

0x000000D0

0000007C

0008

        PropertyIdentifierAndOffset - PidOffsetElement-7

0000007C

0004

            DWORD - propId

0x00000006

00000080

0004

            FilePointer - propOffset

0x000000D8

00000084

0008

        PropertyIdentifierAndOffset - PidOffsetElement-8

00000084

0004

            DWORD - propId

0x00000011

00000088

0004

            FilePointer - propOffset

0x000000E0

0000008C

0008

        PropertyIdentifierAndOffset - PidOffsetElement-9

0000008C

0004

            DWORD - propId

0x00000017

00000090

0004

            FilePointer - propOffset

0x000000E8

00000094

0008

        PropertyIdentifierAndOffset - PidOffsetElement-10

00000094

0004

            DWORD - propId

0x0000000B

00000098

0004

            FilePointer - propOffset

0x000000F0

0000009C

0008

        PropertyIdentifierAndOffset - PidOffsetElement-11

0000009C

0004

            DWORD - propId

0x00000010

000000A0

0004

            FilePointer - propOffset

0x000000F8

000000A4

0008

        PropertyIdentifierAndOffset - PidOffsetElement-12

000000A4

0004

            DWORD - propId

0x00000013

000000A8

0004

            FilePointer - propOffset

0x00000100

000000AC

0008

        PropertyIdentifierAndOffset - PidOffsetElement-13

000000AC

0004

            DWORD - propId

0x00000016

000000B0

0004

            FilePointer - propOffset

0x00000108

000000B4

0008

        PropertyIdentifierAndOffset - PidOffsetElement-14

000000B4

0004

            DWORD - propId

0x0000000D

000000B8

0004

            FilePointer - propOffset

0x00000110

000000BC

0008

        PropertyIdentifierAndOffset - PidOffsetElement-15

000000BC

0004

            DWORD - propId

0x0000000C

000000C0

0004

            FilePointer - propOffset

0x0000021D

000000C4

01D4

    Array of TypedPropertyValue structures - DocSumProperties

Figure 16: Overview of a DocumentSummaryInformation property set

In this table, there is an array of 15 elements, rgProps. Each element in rgProps is a PropertyIdentifierAndOffset structure ([MS-OLEPS] section 2.19). Each of these structures represents a property that is stored in this Document Summary Information property set (section 2.3.3.2.2). Each PropertyIdentifierAndOffset structure (PidOffsetElement-1 through PidOffsetElement-15) contains two fields, propId and propOffset. The propId field indicates the property of that element according to PIDDSI (section 2.3.3.2.2.1). The propOffset field indicates the offset to the TypedPropertyValue ([MS-OLEPS] section 2.15) structure containing the value of the property.

In this example, some PidOffsetElements share the same structure and therefore are omitted for brevity. PidOffsetElement-2 to PidOffsetElement-5 are Lpstr properties (section 2.3.3.1.4). For the structure of an Lpstr property (section 2.3.3.1.4), see the Category Property Example (section 3.2.2.2). PidOffsetElement-6 to PidOffsetElement-9 are VT_I4 TypedPropertyValue properties. For the structure of a VT_I4 TypedPropertyValue property, see the LineCount Property Example section 3.2.2.3). PidOffsetElement-10 to PidOffsetElement-13 are VT_BOOL TypedPropertyValue properties. For the structure of a VT_BOOL TypedPropertyValue property, see the LinksDirty Property Example (section 3.2.2.4).

DocumentSummaryInformation: A DocumentSummaryInformation is a property set as described in [MS-OLEPS] section 2.20.

cbSection: 0x00000254 indicates the count of bytes from the beginning of the DocumentSummaryInformation property set (at offset 0x00000044) to the end of the last property in the property set, HeadingPairs (section 3.2.2.6), at offset 0x00000297 inclusive.

cProps: 0x0000000F indicates that this Document Summary Information property set (section 2.3.3.2.2) contains 0x0000000F (15) properties.

rgProps: This is the container of an array of PropertyIdentifierAndOffset structures. In this example, there are 15 elements, one for each property.

rgProps.PidOffsetElement-1: CodePage (VT_I2 TypedPropertyValue property).

rgProps.PidOffsetElement-1.propId: 0x00000001 (GKPIDDSI_CODEPAGE (section 2.3.3.2.2.1) indicates that there is a CodePage property value at the stream offset indicated by propOffset.

rgProps.PidOffsetElement-1.propOffset: 0x00000080 indicates that the beginning of the CodePage property data is 0x00000080 bytes after the beginning of the Document Summary Information property set (section 2.3.3.2.2). In this example, DocumentSummaryInformation begins at offset 0x00000044. Therefore, the CodePage property begins at offset 0x000000C4. See the CodePage Property Example (section 3.2.2.1).

rgProps.PidOffsetElement-2: Category (Lpstr property (section 2.3.3.1.4)).

rgProps.PidOffsetElement-2.propId: 0x00000002 (GKPIDDSI_CATEGORY (section 2.3.3.2.2.1)) indicates that there is a Category property value at the stream offset indicated by propOffset.

rgProps.PidOffsetElement-2.propOffset: 0x00000088 indicates that the beginning of the Category property data is 0x00000088 bytes after the beginning of the Document Summary Information property set (section 2.3.3.2.2). In this example, DocumentSummaryInformation begins at offset 0x00000044. Therefore, the Category property begins at offset 0x000000CC. See the Category Property Example (section 3.2.2.2).

rgProps.PidOffsetElement-3: Manager (Lpstr property (section 2.3.3.1.4)).

rgProps.PidOffsetElement-4: Company (Lpstr property (section 2.3.3.1.4)).

rgProps.PidOffsetElement-5: ContentStatus (Lpstr property (section 2.3.3.1.4)).

rgProps.PidOffsetElement-6: LineCount (VT_I4 TypedPropertyValue property).

rgProps.PidOffsetElement-6.propId: 0x00000005 (GKPIDDSI_LINECOUNT (section 2.3.3.2.2.1) indicates that there is a LineCount property value at the stream offset indicated by propOffset.

rgProps.PidOffsetElement-6.propOffset: 0x000000D0 indicates that the LineCount property data is 0x000000D0 bytes after the beginning of the Document Summary Information property set (section 2.3.3.2.2). In this example, DocumentSummaryInformation begins at offset 0x00000044. Therefore, the LineCount property begins at offset 0x00000114. See the LineCount Property Example (section 3.2.2.3).

rgProps.PidOffsetElement-7: ParagraphCount (VT_I4 TypedPropertyValue property).

rgProps.PidOffsetElement-8: CountCharsWithSpaces (VT_I4 TypedPropertyValue property).

rgProps.PidOffsetElement-9: Version (VT_I4 TypedPropertyValue property).

rgProps.PidOffsetElement-10: Scale (VT_BOOL TypedPropertyValue property).

rgProps.PidOffsetElement-11: LinksDirty (VT_BOOL TypedPropertyValue property).

rgProps.PidOffsetElement-11.propId: 0x00000010 (GKPIDDSI_LINKSDIRTY (section 2.3.3.2.2.1)) indicates that there is a LinksDirty property value at the stream offset indicated by propOffset.

rgProps.PidOffsetElement-11.propOffset: 0x000000F8 indicates that the LinksDirty property data is 0x000000F8 bytes after the beginning of the Document Summary Information property set (section 2.3.3.2.2). In this example, DocumentSummaryInformation begins at offset 0x00000044. Therefore, the LinksDirty property begins at offset 0x00000013C. See the LinksDirty Property Example (section 3.2.2.4).

rgProps.PidOffsetElement-12: SharedDoc (VT_BOOL TypedPropertyValue property).

rgProps.PidOffsetElement-13: HyperlinksChanged (VT_BOOL TypedPropertyValue property).

rgProps.PidOffsetElement-14: DocumentParts (VtVecUnalignedLpstr property (section 2.3.3.1.10)).

rgProps.PidOffsetElement-14.propId: 0x0000000D (GKPIDDSI_DOCPARTS (section 2.3.3.2.2.1)) indicates that there is a DocumentParts property value at the stream offset indicated by propOffset.

rgProps.PidOffsetElement-14.propOffset: 0x00000110 indicates that the DocumentParts property data is 0x00000110 bytes after the beginning of Document Summary Information property set (section 2.3.3.2.2). In this example, DocumentSummaryInformation begins at offset 0x00000044. Therefore, the DocumentParts property begins at offset 0x00000154. See the DocumentParts Property Example (section 3.2.2.5).

rgProps.PidOffsetElement-15: HeadingPairs (VtVecHeadingPair property (section 2.3.3.1.10)).

rgProps.PidOffsetElement-15.propId: 0x0000000C (GKPIDDSI_HEADINGPAIR (section 2.3.3.2.2.1)) indicates that there is a HeadingPairs property value at the stream offset indicated by propOffset.

rgProps.PidOffsetElement-15.propOffset: 0x0000021D indicates that the HeadingPairs property data is 0x0000021D bytes after the beginning of the Document Summary Information property set (section 2.3.3.2.2). In this example, DocumentSummaryInformation begins at offset 0x00000044. Therefore, the HeadingPairs property begins at offset 0x00000261. See the HeadingPairs Property Example (section 3.2.2.6).