3.5.1 Master Slides

This example explains how to locate the main master slide, the title master slide, and the notes master slide.

The main master slide and title master slide are found by means of the MasterPersistAtom records (section 2.4.14.2) contained within the MasterListWithTextContainer record (section 2.4.14.1). The child-record hierarchy of the MasterListWithTextContainer record A from the table titled "DocumentContainer child-record hierarchy" in section 3.4 is shown expanded in the following table.

Offset

Size

Structure

00006159

0040

A: MasterListWithTextContainer - masterList

00006159

0008

    RecordHeader - rh

00006161

001C

    B: MasterPersistAtom - masterPersistAtom

0000617D

001C

    C: MasterPersistAtom - masterPersistAtom

Figure 44: MasterListWithTextContainer record A child-record hierarchy

The child-record hierarchy of the MasterPersistAtom record B from previous table is shown expanded in the following table.

Offset

Size

Structure

Value

00006161

001C

B: MasterPersistAtom - masterPersistAtom

00006161

0008

    RecordHeader - rh

00006169

0004

    PersistIdRef - persistIdRef

0x00000002

0000616D

2 bits

    unsigned integer - reserved1

0x0

0000616D

1 bit

    bit - fNonOutlineData

0x0

0000616D

29 bits

    unsigned integer - reserved2

0x00000000

00006171

0004

    signed integer - reserved3

0x00000000

00006175

0004

    MasterId - masterId

0x80000000

00006179

0004

    unsigned integer - reserved4

0x00000000

Figure 45: MasterPersistAtom record B child-record hierarchy

persistIdRef: 0x00000002 specifies the value to look up in the persist object directory, shown in the last table in section 3.2, to find the persist object stream offset 0x00000CC5. This offset matches the offset for the MainMasterContainer (section 2.5.3) record B in the table titled "Top-level record sequence in the PowerPoint Document Stream from sample.ppt" in section 3.3. This MainMasterContainer record represents the main master slide as shown in figure titled "Main master slide" in section 3.1.

The child-record hierarchy of the MasterPersistAtom record C from the previous table titled "MasterListWithTextContainer record A child-record hierarchy" is shown expanded in the following table.

Offset

Size

Structure

Value

0000617D

001C

C: MasterPersistAtom - masterPersistAtom

0000617D

0008

    RecordHeader - rh

00006185

0004

    PersistIdRef - persistIdRef

0x00000003

00006189

2 bits

    unsigned integer - reserved1

0x0

00006189

1 bit

    bit - fNonOutlineData

0x0

00006189

29 bits

    unsigned integer - reserved2

0x00000000

0000618D

0004

    signed integer - reserved3

0x00000000

00006191

0004

    MasterId - masterId

0x80000001

00006195

0004

    unsigned integer - reserved4

0x00000000

Figure 46: MasterPersistAtom record C child-record hierarchy

persistIdRef: 0x00000003 specifies the value to look up in the persist object directory, shown in the last table in section 3.2, to find the persist object stream offset 0x00001671. This offset matches the offset for the SlideContainer (section 2.5.1) the record C in the table titled "Top-level record sequence in the PowerPoint Document Stream from sample.ppt" in section 3.3. This SlideContainer record represents the title master slide as shown in figure titled "Title master slide" in section 3.1.

The notes master slide is found by means of the DocumentAtom record (section 2.4.2) contained within the DocumentContainer record (section 2.4.1). The DocumentAtom record E from the table titled "DocumentContainer child-record hierarchy" in section 3.4 is shown expanded in the following table.

Offset

Size

Structure

Value

00005C71

0030

E: DocumentAtom - documentAtom

00005C71

0008

    RecordHeader - rh

00005C79

0008

    PointStruct - slideSize

00005C81

0008

    PointStruct - notesSize

00005C89

0008

    RatioStruct - serverZoom

00005C91

0004

    PersistIdRef - notesMasterPersistIdRef

0x0000000B

00005C95

0004

    PersistIdRef - handoutMasterPersistIdRef

0x00000000

00005C99

0002

    unsigned integer - firstSlideNumber

0x0001

00005C9B

0002

    SlideSizeEnum - slideSizeType

0x0000

00005C9D

0001

    bool1 - fSaveWithFonts

0x00

00005C9E

0001

    bool1 - fOmitTitlePlace

0x00

00005C9F

0001

    bool1 - fRightToLeft

0x00

00005CA0

0001

    bool1 - fShowComments

0x01

Figure 47: DocumentAtom record E child-record hierarchy

notesMasterPersistIdRef: 0x0000000B specifies the value to look up in the persist object directory, shown in the last table in section 3.2, to find the persist object stream offset 0x00001B98. This offset matches the offset for the NotesContainer (section 2.5.6) record D in section 3.3. This NotesContainer record (section 2.5.6) represents the notes master slide as shown in figure titled "Notes master slide" in section 3.1.