3.8.1 Shape Anchor
This example shows how to locate the shape anchor for the title placeholder shape on presentation slide 6 as shown in figure titled "Presentation slide 6" in section 3.1.
The child-record hierarchy of the DrawingContainer (section 2.5.13) record A from the table titled "SlideContainer record U child-record hierarchy" in section 3.5.2 is shown expanded in the following table.
Offset |
Size |
Structure |
---|---|---|
00007B58 |
0423 |
DrawingContainer - drawing |
00007B58 |
0008 |
RecordHeader - rh |
00007B60 |
041B |
OfficeArtDgContainer - OfficeArtDg |
00007B60 |
0008 |
OfficeArtRecordHeader - rh |
00007B68 |
0010 |
OfficeArtFDG - drawingData |
00007B78 |
03B3 |
OfficeArtSpgrContainer - groupShape |
00007B78 |
0008 |
OfficeArtRecordHeader - rh |
00007B80 |
0030 |
OfficeArtSpContainer - case of msofbtSpContainer |
00007BB0 |
0080 |
A: OfficeArtSpContainer - case of msofbtSpContainer |
00007C30 |
0109 |
B: OfficeArtSpContainer - case of msofbtSpContainer |
00007D39 |
00F7 |
C: OfficeArtSpContainer - case of msofbtSpContainer |
00007E30 |
00FB |
D: OfficeArtSpContainer - case of msofbtSpContainer |
00007F2B |
0050 |
OfficeArtSpContainer - shape |
Figure 145: DrawingContainer child-record hierarchy
The child-record hierarchy of the OfficeArtSpContainer ([MS-ODRAW] section 2.2.14) record A from the previous table is shown expanded in the following table.
Offset |
Size |
Structure |
---|---|---|
00007BB0 |
0080 |
OfficeArtSpContainer - case of msofbtSpContainer |
00007BB0 |
0008 |
OfficeArtRecordHeader - rh |
00007BB8 |
0010 |
OfficeArtFSP - shapeProp |
00007BC8 |
002C |
OfficeArtFOPT - shapePrimaryOptions |
00007BF4 |
0010 |
A: OfficeArtClientAnchor - clientAnchor |
00007C04 |
0018 |
B: OfficeArtClientData - clientData |
00007C1C |
0014 |
C: OfficeArtClientTextbox - clientTextbox |
Figure 146: OfficeArtSpContainer child-record hierarchy
The child-record hierarchy of the OfficeArtClientAnchor record A from the previous table is shown expanded in the following table.
Offset |
Size |
Structure |
Value |
---|---|---|---|
00007BF4 |
0010 |
A: OfficeArtClientAnchor - clientAnchor |
|
00007BF4 |
0008 |
OfficeArtRecordHeader - rh |
|
00007BF4 |
4 bits |
unsigned integer - recVer |
0x0 |
00007BF4 |
12 bits |
unsigned integer - recInstance |
0x000 |
00007BF6 |
0002 |
unsigned integer - recType |
0xF010 |
00007BF8 |
0004 |
unsigned integer - recLen |
0x00000008 |
00007BFC |
0008 |
OfficeArtClientAnchorData - clientAnchorData |
|
00007BFC |
0008 |
SmallRectStruct - case of 0x00000008 |
|
00007BFC |
0002 |
signed integer - top |
0x00AD |
00007BFE |
0002 |
signed integer - left |
0x0120 |
00007C00 |
0002 |
signed integer - right |
0x1560 |
00007C02 |
0002 |
signed integer - bottom |
0x037D |
Figure 147: OfficeArtClientAnchor record A child-record hierarchy
rh.recLen: 0x00000008 specifies that a SmallRectStruct record is contained in clientAnchorData.
clientAnchorData.case of 0x00000008.top: 0x00AD specifies the minimum y-value of the rectangle.
clientAnchorData.case of 0x00000008.left: 0x0120 specifies the minimum x-value of the rectangle.
clientAnchorData.case of 0x00000008.right: 0x1560 specifies the maximum x-value of the rectangle.
clientAnchorData.case of 0x00000008.bottom: 0x037D specifies the maximum y-value of the rectangle.