3.6.2 Slide Programmable Tags Example

Office

Slide-level programmable tags are found inside the SlideContainer record (section 2.5.1). The SlideProgTagsContainer record A from the table titled "SlidePersistAtom record F child-record hierarchy" in section 3.5.2 is shown expanded in the following table.

Offset

Size

Structure

Value

0000260C

0875

SlideProgTagsContainer - slideProgTagsContainer

0000260C

0008

    RecordHeader - rh

00002614

086D

    A: SlideProgBinaryTagContainer - case of RT_ProgBinaryTag

00002614

0008

        RecordHeader - rh

00002614

4 bits

            unsigned integer - recVer

0xF

00002614

12 bits

            unsigned integer - recInstance

0x000

00002616

0002

            RecordType - recType

0x138A

00002618

0004

            unsigned integer - recLen

0x00000865

0000261C

0865

        B: PP10SlideBinaryTagExtension - case of ___PPT10

0000261C

0008

            C: RecordHeader - rh

0000261C

4 bits

                unsigned integer - recVer

0x0

0000261C

12 bits

                unsigned integer - recInstance

0x000

0000261E

0002

                RecordType - recType

0x0FBA

00002620

0004

                unsigned integer - recLen

0x00000010

00002624

0010

            PrintableUnicodeString - tagName

___PPT10

00002634

0008

            RecordHeader - rhData

00002634

4 bits

                unsigned integer - recVer

0x0

00002634

12 bits

                unsigned integer - recInstance

0x000

00002636

0002

                RecordType - recType

0x138B

00002638

0004

                unsigned integer - recLen

0x00000845

0000263C

0010

            SlideTime10Atom - slideTimeAtom

0000264C

000C

            HashCode10Atom - hashCodeAtom

00002658

07E9

            D: ExtTimeNodeContainer - extTimeNodeContainer

00002E41

0040

            BuildListContainer - buildListContainer

Figure 78: SlideProgTagsContainer child-record hierarchy

The SlideProgTagsContainer record shown in the previous table has one programmable tag, represented by the record A, which stores binary data as specified by the 0x138A value for its rh.recType fields.

The contents of the programmable tag are shown by record B. Most records that have a RecordHeader structure (section 2.3.1) as the first field are either an atom record or a container record. However, the PP2.5.24SlideBinaryTagExtension record B is not a single atom record, but rather a pair of atom records and has two RecordHeader structures identified by the rh and rhData fields.

case of RT_ProgBinaryTag.case of ___PPT10.rh:  The value of the rh.recLen field of the RecordHeader structure C is 0x00000010 and specifies the size of all subsequent fields until the next RecordHeader structure.

case of RT_ProgBinaryTag.case of ___PPT10.tagName: "___PPT10" specifies that the binary tag data following the rhData field is as specified by the PP2.5.24SlideBinaryTagExtension record.

case of RT_ProgBinaryTag.case of ___PPT10.rhData:  The value of the rhData.recVer field is 0x0. Generally when the recVer field of a RecordHeader structure is not equal to 0xF, it indicates that the record that contains the RecordHeader structure is an atom record. However, in this context, rhData behaves more like a RecordHeader structure found as the first field of a container record, because following it are more atom records and container records, specifically a SlideTime2.5.31Atom record, a HashCode2.8.3Atom record, an ExtTimeNodeContainer record (section 2.8.15), and a BuildListContainer record. Accordingly, the value of the rhData.recLen field is 0x00000845 and specifies the size of all subsequent records to be included as part of the PP2.5.24SlideBinaryTagExtension record.

Show: