Pointers

The general problem of saving pointers to objects in the file format is solved in ordinary fashion by giving objects unique identifiers, which are saved in the file format in place of the pointer values. At load time, these IDs are converted back into pointers.

The most common instances of this are pointers to shapes, which are saved as shape IDs, or SPIDs. SPIDs are unique per drawing group, and are parceled out by the drawing group to individual drawings in blocks of 1024. The drawing group keeps a table recording which drawing owns which block of SPIDs, so that, given a SPID, it is easy to determine which drawing the shape is in. That table makes up the bulk of the msofbtDgg record, and is the only place where pointers to drawings are saved (as DGIDs).

Record Name

Word

Excel

PowerPoint

FBT value

Version

Instance

Contents

msofbtDggContainer

X

X

X

F000

per-document data

msofbtDgg

X

X

X

F006

0

an FDGG and several FIDCLs

msofbtCLSID

C

C

C

F016

0

the CLSID of the application that put the data on the clipboard

msofbtOPT

X

X

X

F00B

3

count of properties

the document-wide default shape properties

msofbtColorMRU

X

X

X

F11A

0

count of colors

the colors in the MRU swatch

msofbtSplitMenuColors

X

X

X

F11E

0

count of colors

the colors in the top-level split menus

msofbtBstoreContainer

X

X

X

F001

count of BLIPs

all images in the document (JPEGs, metafiles, etc.)

msofbtBSE

X

X

X

F007

2

BLIP type

an FBSE (one per BLIP)

msofbtBlip***

X

X

X

F018 - F117

range of fbts reserved for various kinds of BLIPs

msofbtDgContainer

X

X

X

F002

per-sheet/page/slide data

msofbtDg

X

X

X

F008

0

drawing ID

an FDG

msofbtRegroupItems

X

X

X

F118

0

count of regroup entries

several FRITs

msofbtColorScheme

C

C

F120

0

count of colors

the colors of the source host's color scheme

msofbtSpgrContainer

X

X

X

F003

several SpContainers, the first of which is the group shape itself

msofbtSpContainer

X

X

X

F004

a shape

msofbtSpgr

X

X

X

F009

1

an FSPGR; only present if the shape is a group shape

msofbtSp

X

X

X

F00A

2

shape type

an FSP

msofbtOPT

X

X

X

F00B

3

count of properties

a shape property table

msofbtTextbox

C

C

C

F00C

0

RTF text

msofbtClientTextbox

X

X

X

F00D

host-defined

the text in the textbox, in a host-defined format

msofbtAnchor

C

C

C

F00E

0

a RECT, in 100000ths of an inch

msofbtChildAnchor

X

X

X

F00F

0

a RECT, in units relative to the parent group

msofbtClientAnchor

X

X

X

F010

host-defined

the location of the shape, in a host-defined format

msofbtClientData

X

X

X

F011

host-defined

host-specific data

msofbtOleObject

C

C

C

F11F

0

a serialized IStorage for an OLE object

msofbtDeletedPspl

X

F11D

0

an FPSPL; only present in top-level deleted shapes

msofbtSolverContainer

X

X

X

F005

count of rules

the rules governing shapes

msofbtConnectorRule

X

X

F012

1

an FConnectorRule

msofbtAlignRule

X

X

X

F013

0

an FAlignRule

msofbtArcRule

X

X

X

F014

0

an FARCRU

msofbtClientRule

F015

host-defined

host-defined

msofbtCalloutRule

X

X

X

F017

0

an FCORU

msofbtSelection

X

F119

0

an FDGSL followed by the SPIDs of the shapes in the selection