The whole document is one sequence of character positions (CPs). The FIB’s character counts divide it into stories, which come one after the other.
Stories
ccpTextthe main documentstory 1ccpFtnfootnote textstory 2ccpHddheaders and footersstory 3ccpAtncommentsstory 4ccpEdnendnote textstory 5ccpTxbxtext boxes in the main documentstory 6ccpHdrTxbxtext boxes in headers and footersstory 7
A story of 0 characters is not present. A document with several stories ends with an extra paragraph mark, after the last story.
Footnotes and endnotes
PlcffndRef holds the CPs of the footnote reference marks in the main
document. PlcffndTxt holds the CPs where each footnote’s text starts in the
footnote story, relative to the start of that story. PlcfendRef and
PlcfendTxt are the same for endnotes.
Headers and footers
PlcfHdd divides the header story into pieces with no data
elements: the first six are separators for footnotes and endnotes, then six for each
section, in the order even header, odd header, even footer, odd footer, first header,
first footer. A piece of length zero means that header or footer is absent.
Fields
A field is written in the text as the characters 0x13, the field code,
0x14, the result, 0x15. A PlcfFld for each story
gives the CP and a two-byte Fld of each of those characters: its
character, and at the begin character the field’s type (88 HYPERLINK, for example).
Bookmarks
SttbfBkmk names the bookmarks in a string table (see
Styles and fonts for the
shape of a string table). PlcfBkf and PlcfBkl give the start
and end CP of each.
Inline pictures
An inline picture is the character 0x01 with sprmCFSpec and
sprmCPicLocation. The operand is an offset in the Data stream
where a PICF structure starts.
lcbthe size of the whole picture entry4cbHeaderthe size of this header, 682mfpthe picture kind: 0x64 or 0x66 Office Art, 8 metafile, 0x62 a linked TIFF, 0x63 a linked BMP8Header restcrop, scaling and borders54Picture dataan Office Art inline shape, whose image is a BLIPvaries
Drawn objects
Shapes that float over the text are the character 0x08 with
sprmCFSpec. PlcSpaMom gives each one’s position and shape
identifier; the Office Art data is at DggInfo in the table stream.
Embedded objects
An embedded OLE object is a storage inside ObjectPool, named from the
sprmCPicLocation value with an underscore in front. Its
CompObj stream gives its type name. The object’s own streams are kept as
they are, ready for the program that made it.
Comments
PlcfandRefgives the CP of each comment’s reference and an author record for it.PlcfandTxtlocates each comment’s text in the comment story.