By the document you referenced it looks like bLineSpacingRule does what PolyEdit does...
bLineSpacingRule
Type: BYTE
Type of line spacing. To use this member, set the PFM_LINESPACING flag in the dwMask member. This member can be one of the following values.
Value Meaning
0 Single spacing. The dyLineSpacing member is ignored.
1 One-and-a-half spacing. The dyLineSpacing member is ignored.
2 Double spacing. The dyLineSpacing member is ignored.
3 The dyLineSpacing member specifies the spacing from one line to the next, in twips. However, if dyLineSpacing specifies a value that is less than single spacing, the control displays single-spaced text.
4 The dyLineSpacing member specifies the spacing from one line to the next, in twips. The control uses the exact spacing specified, even if dyLineSpacing specifies a value that is less than single spacing.
5 The value of dyLineSpacing / 20 is the spacing, in lines, from one line to the next. Thus, setting dyLineSpacing to 20 produces single-spaced text, 40 is double spaced, 60 is triple spaced, and so on.
==================================
I found an example of using it with C#...
https://www.gemboxsoftware.com/document/examples/word-paragraph-formatting/602It has the following for the AtLeast function...
ParagraphFormat = new ParagraphFormat
{
LeftIndentation = 25,
RightIndentation = 25,
SpecialIndentation = -25,
LineSpacing = 10,
LineSpacingRule = LineSpacingRule.AtLeast
}
==================================
Rick