структура FD_GLYPHATTR (winddi.h)
Структура FD_GLYPHATTR используется для указания возвращаемого значения для функций FONTOBJ_pQueryGlyphAttrs и DrvQueryGlyphAttrs .
Синтаксис
typedef struct _FD_GLYPHATTR {
ULONG cjThis;
ULONG cGlyphs;
ULONG iMode;
BYTE aGlyphAttr[1];
} FD_GLYPHATTR, *PFD_GLYPHATTR;
Члены
cjThis
Размер структуры FD_GLYPHATTR в байтах, включая массив, заданный элементом aGlyphAttr .
cGlyphs
Указывает количество глифов в шрифте.
iMode
Флаг, указывающий тип возвращаемой информации. Определен следующий флаг:
Флаг | Определение |
---|---|
FO_ATTR_MODE_ROTATE | Массив, заданный параметром aGlyphAttr , представляет собой битовый массив, указывающий, какие глифы вертикального шрифта необходимо повернуть. Длина битового массива равна (cGlyphs+7)/8. Если задан бит глифа, он должен быть поворачиваться во время растеризации. |
aGlyphAttr[1]
Массив, предоставляющий сведения, указанные в iMode. Размер этого массива составляет (cGlyphs+7) / 8 байт.
Комментарии
Если iMode FO_ATTR_MODE_ROTATE (единственный определенный в настоящее время флаг), драйвер принтера может определить бит, соответствующий определенному индексу глифа, используя следующий фрагмент кода, где hg — это индекс глифа, а pGA — указатель на структуру FD_GLYPHATTR. Если задан бит в массиве aGlyphAttr, связанном с индексом глифа hg , результат получает значение 1. Если один и тот же бит в массиве не задан, результат получает значение 0. Обратите внимание, что биты в байте хранятся таким образом, что индексы глифов 0, 1, ..., 7 соответствуют позиции битов 7, 6, ..., 0 в aGlyphAttr[0], индексы глифов 8, 9, ..., 15 соответствуют битовой позиции 7, 6, ..., 0 в aGlyphAttr[1] и т. д.
BYTE glyphBits[8] = {0x80, 0x40, 0x20, 0x10, 0x8, 0x4, 0x2, 0x1};
result = (pga->aGlyphAttr[hg / 8]) & (glyphBits[hg % 8]);
Требования
Требование | Значение |
---|---|
Заголовок | winddi.h (включая Winddi.h) |