File Information Block (FIB)

Definition of type: "FIBFCLCB"

Decimal

Hex

Field

Type

Bitfield

Comments

0

0x0000

fc

long

4

0x0004

lcb

ulong


Definition of type: "FIB"

In Word version 8, the FIB is reorganized to make future extention easier, and to make it easier to make backward compatible file format changes. The FIB now consists of four substructures: the header and three arrays. The FIB header, is unchanged from past versions. The second part is an array of 16-bit "shorts", most of which were present in earlier versions in different locations. The third part is an array of 32-bit longs, many of which were scattered through the previous version FIB. Finally, there is an array of FC/LCB pairs, which were divided into several disjoint arrays in the previous FIB. Future versions of Word will add entries to the three arrays, so readers of the FIB must be careful to skip over any entries in each array that were not present in the version for which the reader was designed. Writers of the FIB must write exactly as many entries as was defined for the nFib value they put in the FIB.

The FIBFCLCB structure, used in the last array in the FIB:

Decimal

Hex

Name

Type

Bitfield Size

Bitfield Mask

Comments

0

0x0000

fc

long

File position where data begins.

4

0x0004

lcb

ulong

Size of data. Ignore fc if lcb is zero.


The FIB structure itself:

Decimal

Hex

Name

Type

Bitfield Size

Bitfield Mask

Comments

0

0x0000

fibh

FIBH

Beginning of the FIB header

0

0x0000

wIdent

ushort

magic number

2

0x0002

nFib

ushort

FIB version written. This will be >= 101 for all Word 6.0 for Windows and after documents.

4

0x0004

nProduct

ushort

product version written by

6

0x0006

lid

ushort

language stamp---localized version

In pre-WinWord 2.0 files this value was the nLocale. If value is < 999, then it is the nLocale, otherwise it is the lid.

8

0x0008

pnNext

short

10

0x000A

fDot

ushort

:1

0x0001

Set if this document is a template

fGlsy

ushort

:1

0x0002

Set if this document is a glossary

fComplex

ushort

:1

0x0004

when 1, file is in complex, fast-saved format.

fHasPic

ushort

:1

0x0008

set if file contains 1 or more pictures

cQuickSaves

ushort

:4

0x00F0

count of times file was quicksaved

fEncrypted

ushort

:1

0x0100

Set if file is encrypted

fWhichTblStm

ushort

:1

0x0200

When 0, this fib refers to the table stream named "0Table", when 1, this fib refers to the table stream named "1Table". Normally, a file will have only one table stream, but under unusual circumstances a file may have table streams with both names. In that case, this flag must be used to decide which table stream is valid.

fReadOnlyRecommended

ushort

:1

0x0400

Set when user has recommended that file be read read-only

fWriteReservation

ushort

:1

0x0800

Set when file owner has made the file write reserved

fExtChar

ushort

:1

0x1000

Set when using extended character set in file

fLoadOverride

ushort

:1

0x2000

REVIEW

fFarEast

ushort

:1

0x4000

REVIEW

fCrypto

ushort

:1

0x8000

REVIEW

12

0x000C

nFibBack

ushort

This file format it compatible with readers that understand nFib at or above this value.

14

0x000E

lKey

File encrypted key, only valid if fEncrypted.

18

0x0012

envr

uchar

environment in which file was created

0   created by Win Word
1   created by Mac Word

19

0x0013

fMac

uchar

:1

0x01

when 1, this file was last saved in the Mac environment

fEmptySpecial

uchar

:1

0x02

fLoadOverridePage

uchar

:1

0x04

fFutureSavedUndo

uchar

:1

0x08

fWord97Saved

uchar

:1

0x10

fSpare0

uchar

:3

0xFE

20

0x0014

chs

ushort

Default extended character set id for text in document stream. (overridden by chp.chse)

0   by default characters in doc stream should be interpreted using the ANSI character set used by Windows
256   characters in doc stream should be interpreted using the Macintosh character set.

22

0x0016

chsTables

ushort

Default extended character set id for text in internal data structures
0   by default characters stored in internal data structures should be interpreted using the ANSI character set used by Windows
256   characters stored in internal data structures should be interpreted using the Macintosh character set.

24

0x0018

fcMin

long

file offset of first character of text. In non-complex files a CP can be transformed into an FC by the following transformation:
fc = cp + fib.fcMin.

28

0x001C

fcMac

long

file offset of last character of text in document text stream + 1

32

0x0020

csw

ushort

Count of fields in the array of "shorts"

34

0x0022

rgsw

Beginning of the array of shorts

34

0x0022

wMagicCreated

unique number Identifying the File's creator 0x6A62 is the creator ID for Word and is reserved. Other creators should choose a different value.

36

0x0024

wMagicRevised

identifies the File's last modifier

38

0x0026

wMagicCreatedPrivate

private data

40

0x0028

wMagicRevisedPrivate