The PHE is a substructure of the PAP and the PAPX FKP and is also stored in the PLCFPHE.
b10 | b16 | field | type | size | bitfield | comment |
0 | 0 | fSpare | short | :1 | 0001 | reserved |
fUnk | short | :1 | 0002 | PHE entry is invalid when == 1 | ||
fDiffLines | short | :1 | 0004 | when 1, total height of paragraph is known but lines in paragraph have different heights. | ||
* | short | :5 | 00F8 | reserved | ||
clMac | short | :8 | FF00 | when fDiffLines is 0 is number of lines in paragraph | ||
2 | 2 | short | reserved | |||
4 | 4 | dxaCol | long | width of lines in paragraph | ||
8 | 8 | dymLine | long | when fDiffLines is 0, is height of every line in paragraph in pixels | ||
8 | 8 | dymHeight | long | when fDiffLines is 1, is the total height in pixels of the paragraph |
If the PHE is stored in a PAP whose fTtp field is set (non-zero), the following structure is used:
b10 | b16 | field | type | size | bitfield | comment |
0 | 0 | fSpare | short | :1 | 0001 | reserved |
fUnk | short | :1 | 0002 | PHE entry is invalid when == 1 | ||
dcpTtpNext | short | :30 | if not == 0, used as a hint when finding the next row | |||
4 | 4 | dxaCol | long | |||
8 | 8 | dymTableHeight | long | height of table row |
cbPHE (the count of bytes of PHE) is 12.
If there is no paragraph height information stored for a paragraph, all of the fields in the PHE are set to 0. If a paragraph contains more than 127 lines, the clMac, dylLine variant cannot be used, so fDiffLines must be set to 1 and the total size of the paragraph stored in dylHeight. If a paragraph height is greater than 32767 twips, the height cannot be represented by a PHE so all fields of the PHE must be set to 0.
If a new Word file is created, the PHE of every papx fkp entry created to describe the paragraphs of the file should be set to 0. If a Word file is altered in place (a character of the file changed to a new character or a property changed), the paragraph containing the change must have its papx.phe field set to 0. If this paragraph is in a table row, the PHE in the papx at the end of the row (indicated by fInTable) must also be set to 0.