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.