How does the font value in Windows Registry is organized

windows 10windows 7windows 8windows 8.1windows-registry

This comment https://superuser.com/a/1069328/1664175 explains some crucial facts about the font value of Windows Registry but not completely.

I would like to know more about the font value. Especially about the third row. What does this value mean?

enter image description here

Best Answer

The font value is a binary stream of bytes derived from the C structure of the LOGFONT structure.

The declaration of this C structure is:

typedef struct tagLOGFONTA {
  LONG lfHeight;
  LONG lfWidth;
  LONG lfEscapement;
  LONG lfOrientation;
  LONG lfWeight;
  BYTE lfItalic;
  BYTE lfUnderline;
  BYTE lfStrikeOut;
  BYTE lfCharSet;
  BYTE lfOutPrecision;
  BYTE lfClipPrecision;
  BYTE lfQuality;
  BYTE lfPitchAndFamily;
  CHAR lfFaceName[LF_FACESIZE];
} LOGFONTA, *PLOGFONTA, *NPLOGFONTA, *LPLOGFONTA;

The third row starts with the 17th byte. You may find this by counting: the LONG type is 4 bytes, while BYTE is 1 byte. The CHAR type is a Unicode string.

More information about the values of the fields may be found in the linked article.

Related Question