3.6.2 Slide Programmable Tags
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.