Nikolay Sivov (@nsivov) commented about dlls/win32u/font.c:
} if (format == GGO_METRICS && !mat && get_gdi_font_glyph_metrics( font, index, &gm, &abc ))
{
if (zero_width && (abc.abcA + abc.abcB + abc.abcC == 0))
*zero_width = get_GDEF_glyph_class( font, index ); goto done;
}
ret = font_funcs->get_glyph_outline( font, index, format, &gm, &abc, buflen, buf, mat, tategaki ); if (ret == GDI_ERROR) return ret;
if (zero_width && (abc.abcA + abc.abcB + abc.abcC == 0))
*zero_width = get_GDEF_glyph_class( font, index );
Why would any non-zero class mean zero_width? Out of four currently defined classes only marks are documented as non-spacing.