Поделиться через


структура 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)