Character Properties (CHP)

The CHP is never stored in Word files. It is the result of decompression operations applied to CHPXs

The CHPX is stored in CHPX FKPS and within the STSH

Note

When a CHPX is stored in an FKP it is prefixed by a one-byte count of bytes that records the size of the non-zero prefix of the CHPX. Since the count of bytes must begin on an even boundary within the FKP followed by the non-zero prefix, it's guaranteed that the int and FC fields of the CHPX are aligned on an odd-byte boundary. Using normal integer or long load instructions will cause address errors on a 68000. The best technique for reconstituting the CHPX is to move the non-zero prefix to the beginning of a local instance of a CHPX that has been cleared to zeros.

b10

b16

field

type

size

bitfield

comment

0

0

fBold

short

:1

0001

text is bold when 1 , and not bold when 0.

FItalic

short

:1

0002

italic when 1, not italic when 0

fRMarkDel

short

:1

0004

when 1, text has been deleted and will be displayed with strikethrough when revision marked text is to be displayed

fOutline

short

:1

0008

outlined when 1, not outlined when 0

fFldVanish

short

:1

0010

used internally by Word

fSmallCaps

short

:1

0020

displayed with small caps when 1, no small caps when 0

fCaps

short

:1

0040

displayed with caps when 1, no caps when 0

fVanish

short

:1

0080

when 1, text has "hidden" format, and is not displayed unless fPagHidden is set in the DOP

1

1

fRMark

short

:1

0100

when 1, text is newly typed since the last time revision marks have been accepted and will be displayed with an underline when revision marked text is to be displayed

fSpec

short

:1

0200

character is a Word special character when 1, not a special character when 0

fStrike

short

:1

0400

displayed with strikethrough when 1, no strikethrough when 0

fObj

short

:1

0800

embedded object when 1, not an embedded object when 0

fShadow

short

:1

1000

character is drawn with a shadow when 1; drawn without shadow when 0

fLowerCase

short

:1

2000

character is displayed in lower case when 1. No case transformation is performed when 0. This field may be set to 1 only when chp.fSmallCaps is 1.

fData

short

:1

4000

when 1, chp.fcPic points to an FFDATA, the data structure binary data used by Word to describe a form field. The bit chp.fData may only be 1 when chp.fSpec is also 1 and the special character in the document stream that has this property is a chPicture (0x01).

fOle2

short

:1

8000

when 1, chp.lTagObj specifies a particular object in the object stream that specifies the particular OLE object in the stream that should be displayed when the chPicture fSpec character that is tagged with the fOle2 is encountered. The bit chp.fOle2 may only be 1 when chp.fSpec is also 1 and the special character in the document stream that has this property is a chPicture (0x01).

2

2

fEmboss

short

:1

0001

text is embossed when 1 and not embossed when 0

fImprint

short

:1

0002

text is engraved when 1 and not engraved when 0

fDStrike

short

:1

0004

displayed with double strikethrough when 1, no double strikethrough when 0

fUsePgsuSettings

short

:1

0008

short

:12

FFF0

Reserved

4

4

long

Reserved

8

8

ftc

short

no longer stored

10

A

ftcAscii(rgftc[0])

short

font for ASCII text

12

C

ftcFE(rgftc[1])

short

font for Far East text

14

E

ftcOther(rgftc[2])

short

font for non-Far East text

16

10

hps

unsigned short

font size in half points

18

12

dxaSpace

long

space following each character in the run expressed in twip units.

22

16

iss

short

:3

0007

superscript/subscript indices
0 means no super/subscripting
1 means text in run is superscripted
2 means text in run is subscripted

kul

short

:4

0078

underline code:
0 none
1 single
2 by word
3 double
4 dotted
5 hidden
6 thick
7 dash
8 dot (not used)
9 dot dash
10 dot dot dash
11 wave

fSpecSymbol

short

:1

0080

used by Word internally, not stored in file

23

17

ico

short

:5

1F00

color of text:
0 Auto
1 Black
2 Blue
3 Cyan
4 Green
5 Magenta
6 Red
7 Yellow
8 White
9 DkBlue
10 DkCyan
11 DkGreen
12 DkMagenta
13 DkRed
14 DkYellow
15 DkGray
16 LtGray

short

:1

2000

reserved

fSysVanish

short

:1

4000

used by Word internally, not stored in file

hpsPos

short

:1

8000

reserved

24

18

short

super/subscript position in half points; positive means text is raised; negative means text is lowered.

26

1A

lid

LID

language identification code
(no longer stored here, see rglid below)

Language Name
No Proofing
Arabic
Bulgarian
Catalan
Traditional Chinese
Simplified Chinese
Czech
Danish
German
Swiss German
Greek
U.S. English
U.K. English
Australian English
Castilian Spanish
Mexican Spanish
Finnish
French
Belgian French
Canadian French
Swiss French
Hebrew
Hungarian
Icelandic
Italian
Swiss Italian
Japanese
Korean
Dutch
Belgian Dutch
Norwegian - Bokmal
Norwegian - Nynorsk
Polish
Brazilian Portuguese
Portuguese
Rhaeto-Romanic
Romanian
Russian
Croato-Serbian (Latin)
Serbo-Croatian (Cyrillic)
Slovak
Albanian
Swedish
Thai
Turkish
Urdu
Bahasa
Ukrainian
Byelorussian
Slovenian
Estonian
Latvian
Lithuanian
Farsi
Basque
Macedonian
Afrikaans
Malaysian

Language ID
0x0400
0x0401
0x0402
0x0403
0x0404
0x0804
0x0405
0x0406
0x0407
0x0807
0x0408
0x0409
0x0809
0x0c09
0x040a
0x080a
0x040b
0x040c
0x080c
0x0c0c
0x100c
0x040d
0x040e
0x040f
0x0410
0x0810
0x0411
0x0412
0x0413
0x0813
0x0414
0x0814
0x0415
0x0416
0x0816
0x0417
0x0418
0x0419
0x041a
0x081a
0x041b
0x041c
0x041d
0x041e
0x041f
0x0420
0x0421
0x0422
0x0423
0x0424
0x0425
0x0426
0x0427
0x0429
0x042D
0x042F
0x0436
0x043E

28

1C

lidDefault(rglid[0])

LID

language for non-Far East text

30

1E

lidFE(rglid[1])

LID

language for Far East text

32

20

idct

unsigned char

not stored in file

33

21

idctHint

unsigned char

Identifier of Characte type

0->shared chars get non-FE props

1->shared chars get FE props

(see Appendix C)

34

22

wCharScale

unsigned short

36

24

fcPic

FC

offset in data stream pointing to beginning of a picture when character is a picture character (character is 0x01 and chp.fSpec is 1)

36

24

fcObj

FC

offset in data stream pointing to beginning of a picture when character is an OLE1 object character (character is 0x20 and chp.fSpec is 1, chp.fOle2 is 0)

36

24

lTagObj

unsigned long

long word tag that identifies an OLE2 object in the object stream when the character is an OLE2 object character. (character is 0x01 and chp.fSpec is 1, chp.fOle2 is 1)

40

28

ibstRMark

short

index to author IDs stored in hsttbfRMark. used when text in run was newly typed when revision marking was enabled

42

2A

ibstRMarkDel

short

index to author IDs stored in hsttbfRMark. used when text in run was deleted when revision marking was enabled

44

2C

dttmRMark

DTTM

Date/time at which this run of text was entered/modified by the author. (Only recorded when revision marking is on.)

48

30

dttmRMarkDel

DTTM

Date/time at which this run of text was deleted by the author. (Only recorded when revision marking is on.)

52

34

short

reserved

54

36

istd

unsigned short

index to character style descriptor in the stylesheet that tags this run of text When istd is istdNormalChar (10 decimal), characters in run are not affected by a character style. If chp.istd contains any other value, chpx of the specified character style are applied to CHP for this run before any other exceptional properties are applied.

56

38

ftcSym

short

when chp.fSpec is 1 and the character recorded for the run in the document stream is chSymbol (0x28), chp.ftcSym identifies the font code of the symbol font that will be used to display the symbol character recorded in chp.xchSym. chp.ftcSym is an index into the rgffn structure.

58

3A

xchSym

XCHAR

when chp.fSpec is 1 and the character recorded for the run in the document stream is chSymbol (0x28), the character stored chp.xchSym will be displayed using the font specified in chp.ftcSym.

60

3C

idslRMReason

short

an index to strings displayed as reasons for actions taken by Word's AutoFormat code

62

3E

idslReasonDel

short

an index to strings displayed as reasons for actions taken by Word's AutoFormat code

64

40

ysr

unsigned character

hyphenation rule
0 No hyphenation
1 Normal hyphenation
2 Add letter before hyphen
3 Change letter before hyphen
4 Delete letter before hyphen
5 Change letter after hyphen
6 Delete letter before the hyphen and change the letter preceding the deleted character

65

41

chYsr

unsigned character

the character that will be used to add or change a letter when chp.ysr is 2,3, 5 or 6

66

42

cpg

unsigned short

68

44

hpsKern

unsigned short

kerning distance for characters in run recorded in half points

70

46

icoHighlight

short

:5

001F

highlight color (see chp.ico)

fHighlight

short

:1

0020

when 1, characters are highlighted with color specified by chp.icoHighlight.

kcd

short

:3

01C0

fNavHighlight

short

:1

0200

used internally by Word

fChsDiff

short

:1

0400

fMacChs

short

:1

0800

fFtcAsciSym

short

:1

1000

short

:3

E000

Reserved

72

48

fPropMark

unsigned short

when 1, properties have been changed with revision marking on

74

4A

ibstPropRMark

short

index to author IDs stored in hsttbfRMark. used when properties have been changed when revision marking was enabled

76

4C

dttmPropRMark

DTTM

Date/time at which properties of this were changed for this run of text by the author. (Only recorded when revision marking is on.)

80

50

sfxtText

unsigned char

text animation:
0 no animation
1 Las Vegas lights
2 background blink
3 sparkle text
4 marching ants
5 marchine red ants
6 shimmer

81

51

unsigned char

reserved

82

52

unsigned char

reserved

83

53

unsigned short

reserved

85

55

short

reserved

87

57

DTTM

reserved

91

5B

fDispFldRMark

byte

(Only valid for ListNum fields). When 1, the number for a ListNum field is being tracked in xstDispFldRMark—if that number is different from the current value, the number has changed.

92

5C

ibstDispFldRMark

short

Index to author IDs stored in hsttbfRMark. used when ListNum field numbering has been changed when revision marking was enabled

94

5E

dttmDispFldRMark

DTTM

The date for the ListNum field number change

98

62

xstDispFldRMark

XCHAR[16]

The string value of the ListNum field when revision mark tracking began

130

82

shd

SHD

shading

132

84

brc

BRC

border


cbCHP (count of bytes of CHP) is 136 (decimal), 88(hex).

The standard CHP is all zeros except:

hps

20 half-points

fcPic

-1

istd

10 (the standard character style)

lidDefault, lidFE

0x0400 (no proofing)

wCharScale

100

fUsePgsuSettings

-1