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.)

 
b10b16fieldtypesizebitfieldcomments
00fBoldshort:10001text is bold when 1 , and not bold when 0.
       
  fItalicshort:10002italic when 1, not italic when 0
  fRMarkDelshort:10004when 1, text has been deleted and will be displayed with strikethrough when revision marked text is to be displayed
  fOutlineshort:10008outlined when 1, not outlined when 0
  fFldVanishshort:10010used internally by Word
  fSmallCapsshort:10020displayed with small caps when 1, no small caps when 0
  fCapsshort:10040displayed with caps when 1, no caps when 0
  fVanishshort:10080when 1, text has "hidden" format, and is not displayed unless fPagHidden is set in the DOP
11fRMarkshort:10100when 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
  fSpecshort:10200character is a Word special character when 1, not a special character when 0
  fStrikeshort:10400displayed with strikethrough when 1, no strikethrough when 0
  fObjshort:10800embedded object when 1, not an embedded object when 0
  fShadowshort:11000character is drawn with a shadow when 1; drawn without shadow when 0
  fLowerCaseshort:12000character 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.
  fDatashort:14000when 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).
  fOle2short:18000when 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).
22fEmbossshort:10001text is embossed when 1 and not embossed when 0
  fImprintshort:10002text is engraved when 1 and not engraved when 0
  fDStrikeshort:10004displayed with double strikethrough when 1, no double strikethrough when 0
  fUsePgsuSettingsshort:10008 

  fBoldBishort:10010BiDi text is bold when 1, and not bold when 0.
  fItalicBishort:10011BiDi text is italic when 1, and not italic when 0.
  fBiDishort:10012Text run is BiDi when 1 and Latin when 0.
  fDiacColorshort:10014Diacritics follow Latin color when 1, BiDi color when 0.
  FNonGlyphshort:10018Character is not glyphable when it's 1.
   short: 7FFF0Reserved

44 long  Reserved (Have Bidi flags in them)
88ftcshort  no longer stored
10AftcAscii(rgftc[0])short  font for ASCII text
12CftcFE(rgftc[1])short  font for Far East text
14EftcOther(rgftc[2])short  font for non-Far East text
1610ftcBi(rgftc[3])short  font for BiDi text.
1812hpsunsigned short  font size in half points
2014hpsBiunsigned short  BiDi font size in half points.
2216Padunsigned short  Pad for Long alignment in vrgCompChp.
2418dxaSpacelong  space following each character in the run expressed in twip units.
281Cissshort:30007superscript/subscript indices
0 means no super/subscripting
1 means text in run is superscripted
2 means text in run is subscripted
  kulshort:40078underline 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
  fSpecSymbolshort:10080used by Word internally, not stored in file
291Dicoshort:51F00color of text:
0 Auto
9 DkBlue
1 Black
10 DkCyan
2 Blue
11 DkGreen
3 Cyan
12 DkMagenta
4 Green
13 DkRed
5 Magenta
14 DKYellow
6 Red
15 DkGray
7 Yellow
16 LtGray
8 White
  fNumRunBishort:120001 if current Run is a Bidi Number.
  fSysVanishshort:14000used by Word internally, not stored in file
  fDiacRunBishort:180001 if current Run is a Bidi diacritic.
301EicoBiunsigned short  color of Bidi text:
0 Auto
9 DkBlue
1 Black
10 DkCyan
2 Blue
11 DkGreen
3 Cyan
12 DkMagenta
4 Green
13 DkRed
5 Magenta
14 DKYellow
6 Red
15 DkGray
7 Yellow
16 LtGray
8 White
3220hpsPosshort  super/subscript position in half points; positive means text is raised; negative means text is lowered.
3422lidLID  language identification code
(no longer stored here, see rglid below)
Language Name
Language ID
No Proofing
0x0400
Arabic
0x0401
Bulgarian
0x0402
Catalan
0x0403
Traditional Chinese
0x0404
Simplified Chinese
0x0804
Czech
0x0405
Danish
0x0406
German
0x0407
Swiss German
0x0807
Greek
0x0408
U.S. English
0x0409
U.K. English
0x0809
Australian English
0x0c09
Castilian Spanish
0x040a
Mexican Spanish
0x080a
Finnish
0x040b
French
0x040c
Belgian French
0x080c
Canadian French
0x0c0c
Swiss French
0x100c
Hebrew
0x040d
Hungarian
0x040e
Icelandic
0x040f
Italian
0x0410
Swiss Italian
0x0810
Japanese
0x0411
Korean
0x0412
Dutch
0x0413
Belgian Dutch
0x0813
Norwegian - Bokmal
0x0414
Norwegian - Nynorsk
0x0814
Polish
0x0415
Brazilian Portuguese
0x0416
Portuguese
0x0816
Rhaeto-Romanic
0x0417
Romanian
0x0418
Russian
0x0419
Croato-Serbian (Latin)
0x041a
Serbo-Croatian (Cyrillic)
0x081a
Slovak
0x041b
Albanian
0x041c
Swedish
0x041d
Thai
0x041e
Turkish
0x041f
Urdu
0x0420
Bahasa
0x0421
Ukrainian
0x0422
Byelorussian
0x0423
Slovenian
0x0424
Estonian
0x0425
Latvian
0x0426
Lithuanian
0x0427
Farsi
0x0429
Basque
0x042D
Macedonian
0x042F
Afrikaans
0x0436
Malaysian
0x043E
3624lidDefault(rglid[0])LID  language for non-Far East text
3826lidFE(rglid[1])LID  language for Far East text
4028lidBi(rglid[2])LID  language for Bidi text
422Aidctunsigned char  not stored in file 
432BidctHintunsigned char  Identifier of Characte type
0->shared chars get non-FE props
1->shared chars get FE props
(see Appendix C)

442CwCharScaleunsigned short   
462EfcPicFC  offset in data stream pointing to beginning of a picture when character is a picture character (character is 0x01 and chp.fSpec is 1)
462EfcObjFC  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)
462ElTagObjunsigned 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)
5032ibstRMarkshort  index to author IDs stored in hsttbfRMark. used when text in run was newly typed when revision marking was enabled
5234ibstRMarkDelshort  index to author IDs stored in hsttbfRMark. used when text in run was deleted when revision marking was enabled
5436dttmRMarkDTTM  Date/time at which this run of text was entered/modified by the author. (Only recorded when revision marking is on.)
583AdttmRMarkDelDTTM  Date/time at which this run of text was deleted by the author. (Only recorded when revision marking is on.)
623E short  reserved
6440istdunsigned 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.
6642ftcSymshort  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.
6844xchSymXCHAR  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.
7046idslRMReasonshort  an index to strings displayed as reasons for actions taken by Word's AutoFormat code
7248idslReasonDelshort  an index to strings displayed as reasons for actions taken by Word's AutoFormat code
744Aysrunsigned 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
754BchYsrunsigned character  the character that will be used to add or change a letter when chp.ysr is 2,3, 5 or 6
764Ccpgunsigned short   
784EhpsKernunsigned short  kerning distance for characters in run recorded in half points
8050icoHighlightshort:5001Fhighlight color (see chp.ico)
  fHighlightshort:10020when 1, characters are highlighted with color specified by chp.icoHighlight.
  kcdshort:301C0 
  fNavHighlightshort:10200used internally by Word
  fChsDiffshort:10400 
  fMacChsshort:10800 
  fFtcAsciSymshort:11000 
   short:3E000Reserved
8252fPropMarkunsigned short  when 1, properties have been changed with revision marking on
8454ibstPropRMarkshort  index to author IDs stored in hsttbfRMark. used when properties have been changed when revision marking was enabled
8656dttmPropRMarkDTTM  Date/time at which properties of this were changed for this run of text by the author. (Only recorded when revision marking is on.)
905AsfxtTextunsigned 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
915B unsigned char  reserved
925C unsigned char  reserved
935D unsigned short  reserved
955F short  reserved
9761 DTTM  reserved
10165fDispFldRMarkbyte  (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.
10266ibstDispFldRMarkshort  Index to author IDs stored in hsttbfRMark. used when ListNum field numbering has been changed when revision marking was enabled
10468dttmDispFldRMarkDTTM  The date for the ListNum field number change
1086CxstDispFldRMarkXCHAR[16]  The string value of the ListNum field when revision mark tracking began
140 8CshdSHD  shading
142 8EbrcBRC  border

cbCHP (count of bytes of CHP) is 146 (decimal), 92(hex).

The standard CHP is all zeros except:

hps 20 half-points

fcPic -1

istd  10 (the standard character style)

lidDefault, lidFE0x0400 (no proofing)

wCharScale100

fUsePgsuSettings-1