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


Структура IFIMETRICS (winddi.h)

Структура IFIMETRICS определяет сведения для данного шрифта, который может использовать GDI.

Синтаксис

typedef struct _IFIMETRICS {
  ULONG   cjThis;
  ULONG   cjIfiExtra;
  PTRDIFF dpwszFamilyName;
  PTRDIFF dpwszStyleName;
  PTRDIFF dpwszFaceName;
  PTRDIFF dpwszUniqueName;
  PTRDIFF dpFontSim;
  LONG    lEmbedId;
  LONG    lItalicAngle;
  LONG    lCharBias;
  PTRDIFF dpCharSets;
  BYTE    jWinCharSet;
  BYTE    jWinPitchAndFamily;
  USHORT  usWinWeight;
  ULONG   flInfo;
  USHORT  fsSelection;
  USHORT  fsType;
  FWORD   fwdUnitsPerEm;
  FWORD   fwdLowestPPEm;
  FWORD   fwdWinAscender;
  FWORD   fwdWinDescender;
  FWORD   fwdMacAscender;
  FWORD   fwdMacDescender;
  FWORD   fwdMacLineGap;
  FWORD   fwdTypoAscender;
  FWORD   fwdTypoDescender;
  FWORD   fwdTypoLineGap;
  FWORD   fwdAveCharWidth;
  FWORD   fwdMaxCharInc;
  FWORD   fwdCapHeight;
  FWORD   fwdXHeight;
  FWORD   fwdSubscriptXSize;
  FWORD   fwdSubscriptYSize;
  FWORD   fwdSubscriptXOffset;
  FWORD   fwdSubscriptYOffset;
  FWORD   fwdSuperscriptXSize;
  FWORD   fwdSuperscriptYSize;
  FWORD   fwdSuperscriptXOffset;
  FWORD   fwdSuperscriptYOffset;
  FWORD   fwdUnderscoreSize;
  FWORD   fwdUnderscorePosition;
  FWORD   fwdStrikeoutSize;
  FWORD   fwdStrikeoutPosition;
  BYTE    chFirstChar;
  BYTE    chLastChar;
  BYTE    chDefaultChar;
  BYTE    chBreakChar;
  WCHAR   wcFirstChar;
  WCHAR   wcLastChar;
  WCHAR   wcDefaultChar;
  WCHAR   wcBreakChar;
  POINTL  ptlBaseline;
  POINTL  ptlAspect;
  POINTL  ptlCaret;
  RECTL   rclFontBox;
  BYTE    achVendId[4];
  ULONG   cKerningPairs;
  ULONG   ulPanoseCulture;
  PANOSE  panose;
  PVOID   Align;
} IFIMETRICS, *PIFIMETRICS;

Члены

cjThis

Задает размер этой структуры в байтах. Указанный размер включает все строки Юникода, добавленные в конец этой структуры, а также размер в байтах необязательной структуры IFIEXTRA .

cjIfiExtra

Указывает размер в байтах структуры IFIEXTRA, следующей за этой структурой IFIMETRICS. Значение, равное нулю, указывает, что структура IFIEXTRA отсутствует.

dpwszFamilyName

Указывает смещение в байтах к строке Юникода, завершаемой null, содержащей имя семейства шрифта (например, Times Roman). Как правило, эта строка сразу же следует за структурой IFIMETRICS. Эта строка должна совпадать с именем, записанным в элементе lfFaceName структуры Win32 LOGFONT.

dpwszStyleName

Указывает смещение в байтах до строки Юникода, завершаемой null, описывающей стиль шрифта (например, "Полужирный").

dpwszFaceName

Задает смещение в байтах к строке Юникода, завершаемой null, представляющей уникальное и полное имя шрифта. Имя содержит имена семейства и подсемейства шрифта (например, "Times New Roman Bold").

dpwszUniqueName

Указывает смещение в байтах к строке Юникода, завершаемой null, представляющей уникальный идентификатор шрифта (например, "Monotype:Times New Roman:1990").

dpFontSim

Задает смещение в байтах от начала этой структуры IFIMETRICS до структуры FONTSIM , описывающей имитации, поддерживаемые шрифтом. Драйвер должен задать для этого элемента ненулевое значение, только если шрифт поддерживает полужирное, курсивное или полужирное курсивное моделирование; В противном случае драйвер должен задать для этого параметра значение 0.

Обратите внимание, что если шрифт выделен курсивом, драйвер не должен указывать поддержку шрифта для моделирования курсивом, хотя он может указывать на поддержку шрифта для симуляции курсивом полужирным шрифтом. Аналогичным образом драйвер не должен указывать поддержку шрифта для имитации полужирным шрифтом, если шрифт выделен полужирным шрифтом, но может указывать на поддержку шрифта для симуляции курсивом полужирным шрифтом. Если шрифт выделен полужирным шрифтом и курсивом, он не должен поддерживать имитацию.

Смещения в структуре FONTSIM связаны с основанием структуры FONTSIM.

lEmbedId

Указывает идентификатор внедрения шрифта. Это значение относится к TrueType и должно быть равно нулю всеми другими поставщиками шрифтов.

lItalicAngle

Задает курсивный угол шрифта. Это значение относится к TrueType и должно быть равно нулю всеми другими поставщиками шрифтов.

lCharBias

Задает смещение символов. Это значение относится к TrueType и должно быть равно нулю всеми другими поставщиками шрифтов.

dpCharSets

Задает смещение от начала этой структуры IFIMETRICS до массива, содержащего список всех наборов символов Windows, поддерживаемых этим шрифтом. Размер массива составляет 16 байт и всегда заканчивается DEFAULT_CHARSET. Первое значение массива должно идентифицировать кодировку Windows, которая имеет наиболее полное покрытие шрифта; Это значение также должно храниться в jWinCharSet. Например, если это японский шрифт, который также поддерживает кодировку ANSI и кириллицу в США, то для jWinCharSet следует задать значение SHIFTJIS_CHARSET а массив, определяемый dpCharSets , будет содержать SHIFTJIS_CHARSET, ANSI_CHARSET, RUSSIAN_CHARSET DEFAULT_CHARSET.

Если этот шрифт не поддерживает более одной кодировки Windows, то для dpCharSets должно быть задано значение 0.

jWinCharSet

Определяет набор символов, который лучше всего поддерживается этим шрифтом. Если шрифт поддерживает только одну кодировку Windows, драйвер должен хранить соответствующее значение в jWinCharSet. Драйвер не должен хранить DEFAULT_CHARSET в этом поле. Этот элемент может иметь одно из следующих значений:

Значение Значение
ANSI_CHARSET Этот шрифт поддерживает кодировку Windows ANSI.
ARABIC_CHARSET Этот шрифт поддерживает набор арабских символов.
BALTIC_CHARSET Этот шрифт поддерживает набор символов Baltic.
CHINESEBIG5_CHARSET Этот шрифт поддерживает традиционную китайскую (big 5) кодировку.
EASTEUROPE_CHARSET Этот шрифт поддерживает набор символов в Восточной Европе.
GB2312_CHARSET Этот шрифт поддерживает упрощенный (PRC) набор китайских символов.
GREEK_CHARSET Этот шрифт поддерживает набор греческих символов.
HANGEUL_CHARSET Этот шрифт поддерживает корейский (хангеульский) набор символов.
HEBREW_CHARSET Этот шрифт поддерживает набор символов на иврите.
JOHAB_CHARSET Этот шрифт поддерживает набор символов корейского языка (johab).
OEM_CHARSET Этот шрифт поддерживает набор символов изготовителя оборудования. Набор символов OEM зависит от системы.
SHIFTJIS_CHARSET Этот шрифт поддерживает набор символов Shift-JIS (японский отраслевой стандарт).
SYMBOL_CHARSET Этот шрифт поддерживает набор символов Windows.
RUSSIAN_CHARSET Этот шрифт поддерживает кодировку кириллицы.
THAI_CHARSET Этот шрифт поддерживает тайский набор символов.
TURKISH_CHARSET Этот шрифт поддерживает турецкую кодировку.
VIETNAMESE_CHARSET Этот шрифт поддерживает вьетнамскую кодировку.

jWinPitchAndFamily

Задает тон шрифта. Два бита нижнего порядка задают тон шрифта и могут иметь одно из следующих значений:

Значение Значение
FIXED_PITCH Для шрифтов с фиксированным тоном
VARIABLE_PITCH Для шрифтов с переменным тоном
 

Биты 4–7 этого элемента указывают семейство шрифтов и могут иметь одно из следующих значений:

Значение Значение
FF_DECORATIVE Новизна шрифтов, таких как старый английский.
FF_DONTCARE Не волнуйся или неизвестно.
FF_MODERN Шрифты с постоянной шириной штриха (с фиксированным шагом), с засечками или без нее. Шрифты с фиксированным шагом обычно являются современными, такими как Pica, Elite и Courier.
FF_ROMAN Шрифты с переменной шириной штриха (с пропорциональным интервалом) и с засечками, такими как Times Roman, Palatino и Century Schoolbook.
FF_SCRIPT Шрифты, предназначенные для рукописного ввода, такие как Script и Cursive.
FF_SWISS Шрифты с переменной шириной штриха (с пропорциональным интервалом) и без засечек, например Helvetica и Swiss.

usWinWeight

Задает вес шрифта в диапазоне от 0 до 1000 (например, 400 — это нормально, а 700 — полужирный). Это значение предоставляется приложению в элементе lfWeight структуры Win32 LOGFONT.

flInfo

Указывает дополнительные сведения о шрифте. Это поле может быть сочетанием следующих значений флагов:

FM_INFO_1BPP

Указывает, что растровое изображение глифа имеет глубину цвета в один бит на пиксель. Для Windows NT 3.1, первой версии Windows NT, этот флаг необходимо установить.

FM_INFO_4BPP

Указывает, что растровое изображение глифа имеет глубину цвета в четыре бита на пиксель. Драйвер должен задать этот параметр, если шрифт поддерживает растровые изображения с антиалиазированные глифы с 16 уровнями серого цвета.

FM_INFO_8BPP

Указывает, что растровое изображение глифа имеет глубину цвета в восемь бит на пиксель. Текущая версия GDI игнорирует этот параметр, так как он не поддерживает цветные шрифты.

FM_INFO_16BPP

Указывает, что растровое изображение глифа имеет глубину цвета 16 бит на пиксель. Текущая версия GDI игнорирует этот параметр, так как он не поддерживает цветные шрифты.

FM_INFO_24BPP

Указывает, что растровое изображение глифа имеет глубину цвета 24 бита на пиксель. Текущая версия GDI игнорирует этот параметр, так как он не поддерживает цветные шрифты.

FM_INFO_32BPP

Указывает, что растровое изображение глифа имеет глубину цвета 32 бита на пиксель. Текущая версия GDI игнорирует этот параметр, так как он не поддерживает цветные шрифты.

FM_INFO_90DEGREE_ROTATIONS

Указывает, что шрифт может быть реализован в повороте исходной фигуры на 90 градусов. GDI запрашивает смену шрифта, включив в нее преобразование "От даты до устройства", переданное драйверу при создании шрифта. Этот элемент имеет значение только в том случае, если флаг FM_INFO_ARB_XFORMS не установлен.

FM_INFO_ANISOTROPIC_SCALING_ONLY

Указывает, что шрифт поддерживает только произвольное анизотропное масштабирование. То есть преобразования эквивалентны диагональной матрице, умноженной на положительное вещественное число. Если этот флаг установлен, то флаги FM_INFO_ARB_XFORMS и FM_INFO_ISOTROPIC_SCALING_ONLY установить нельзя. Если также установлен флаг FM_INFO_90DEGREE_ROTATIONS, шрифт поддерживает преобразования, которые представляют собой сочетание простого анизотропного масштабирования с последующим поворотом на 90 градусов.

FM_INFO_ARB_XFORMS

Указывает, что шрифт может быть реализован в непрерывном диапазоне двумерных линейных преобразований.

FM_INFO_CONSTANT_WIDTH

Указывает, что все глифы шрифта во всех реализациях имеют одинаковое значение приращения символов. Если этот флаг установлен, необходимо также установить флаг FM_INFO_OPTICALLY_FIXED_PITCH.

FM_INFO_DBCS_FIXED_PITCH

Указывает, что двухбайтовые символы для этого шрифта имеют фиксированный тон. Для однобайтовых символов ничего не подразумевается. Этот флаг имеет смысл только для шрифтов, поддерживающих двухбайтовую кодировку (DBCS), например shift JIS. Шрифты, которые не поддерживают DBCS, не должны устанавливать этот флаг.

FM_INFO_DO_NOT_ENUMERATE

Указывает, что этот шрифт не будет перечисляться подпрограммами Win32 EnumFontFamiliesEx, EnumFontFamilies или EnumFonts . Кроме того, строка, возвращаемая вызову приложения Win32 для GetTextFace , будет получена из строки dpwszUniqueName. Этот флаг позволяет поставщику шрифтов связать несколько структур IFIMETRICS с одним из его шрифтов.

FM_INFO_DSIG

Указывает, что шрифт соответствует стандарту Юникода.

FM_INFO_FAMILY_EQUIV

Указывает, что смещение dpwszFamilyName в IFIMETRICS фактически является смещением списка эквивалентных имен семейств или псевдонимов. Первое имя — это базовое или реальное имя; последующие имена являются эквивалентами или псевдонимами. Каждое имя в списке заканчивается null; список завершается двумя нулями.

<базовое имя><0><псевдоним 1><0...<>псевдоним n>
<0><0>

Имена на основе используются только для сопоставления; они не перечисляются.

FM_INFO_IGNORE_TC_RA_ABLE

Указывает, что для этого шрифта флаг TC_RA_ABLE игнорируется.

FM_INFO_INTEGER_WIDTH

Указывает, что все глифы имеют непрекциональную ширину. Этот флаг обычно устанавливают точечные шрифты.

FM_INFO_INTEGRAL_SCALING

Указывает, что шрифт можно масштабировать на целочисленное значение как в направлении x, так и в направлении y. Если этот флаг установлен, драйвер должен иметь возможность отрисовки глифов в случае, когда преобразование от даты к устройству масштабируется на целые величины в направлениях x и y. GDI запрашивает целочисленное масштабирование шрифта, включив осевое масштабирование в преобразование "От даты до устройства", переданное драйверу при создании шрифта. Этот флаг имеет смысл только в том случае, если флаг FM_INFO_ARB_XFORMS не установлен.

FM_INFO_ISOTROPIC_SCALING_ONLY

Указывает, что шрифт поддерживает только произвольное изотропное масштабирование. То есть преобразования эквивалентны матрице удостоверений, умноженной на положительное вещественное число. Если этот флаг установлен, то ни FM_INFO_ARB_XFORMS, ни FM_INFO_ANISOTROPIC_SCALING_ONLY флаги не могут быть установлены. Если установлен флаг FM_INFO_90DEGREE_ROTATIONS, шрифт поддерживает преобразования, эквивалентные изотропическому масштабированию, за которым следует поворот, кратный 90 градусам.

FM_INFO_OPTICALLY_FIXED_PITCH

Указывает, что этот шрифт считается типографским как фиксированный тон. Это оптическое качество шрифта, которое не обязательно указывает на то, что все глифы шрифта имеют одинаковый приращение символов.

FM_INFO_NONNEGATIVE_AC

Указывает, что все глифы этого шрифта имеют неосознанные интервалы a и c . То есть черный ящик глифа никогда не выходит за пределы области, гранича с источником символа и точкой объединения символов.

FM_INFO_NOT_CONTIGUOUS

Указывает, что поддерживаемая кодировка не является непрерывной.

FM_INFO_RETURNS_BITMAPS

Указывает, что шрифт содержит допустимую цифровую подпись.

FM_INFO_RETURNS_OUTLINES

Указывает, что для любого глифа, поддерживаемого драйвером, GDI может запросить структуру PATHOBJ , описывающую структуру этого глифа. Если это возможно, если структура заполняется с помощью соглашений о заполнении пути GDI, итоговая растровая карта должна быть идентична растровой диаграмме, возвращенной драйвером. Флаги FM_INFO_RETURNS_OUTLINES и FM_INFO_RETURNS_STOKES нельзя задать одновременно.

FM_INFO_RETURNS_STROKES

Указывает, что для любого глифа, поддерживаемого драйверами, GDI может запросить структуру PATHOBJ, описывающую сплайн глифа. Этот путь не может быть заполнен, но его можно обвести, чтобы получить представление глифа. Флаги FM_INFO_RETURNS_OUTLINES и FM_INFO_RETURNS_STOKES нельзя задать одновременно.

FM_INFO_RIGHT_HANDED

Указывает, что направление подъема шрифта составляет 90 градусов против часовой стрелки от базового направления. Направление подъема — это направление, вдоль которого измеряется высота, и всегда перпендикулярно направлению базовой линии.

FM_INFO_TECH_BITMAP

Указывает, что шрифт является шрифтом растрового изображения.

FM_INFO_TECH_CFF

Указывает, что шрифт является шрифтом Pscript OpenType, содержащим таблицу CFF.

FM_INFO_TECH_MM

Указывает, что это шрифт с несколькими образцами (ММ).

FM_INFO_TECH_OUTLINE_NOT_TRUETYPE

Указывает, что шрифт основан на технологии масштабируемого шрифта, которая использует контурные пути, но не на основе TrueType. Этот флаг не указывает, следует ли заполнять или обводить пути, возвращаемые для этого шрифта; Потребитель должен проверить флаги FM_INFO_RETURNS_STROKES и FM_INFO_RETURNS_OUTLINES для получения этих сведений.

FM_INFO_TECH_STROKE

Указывает, что шрифт основан на технологии штриховки. Этот флаг не указывает, следует ли заполнять или обводить пути, возвращаемые для этого шрифта; Потребитель должен проверить флаги FM_INFO_RETURNS_STROKES и FM_INFO_RETURNS_OUTLINES для этих сведений.

FM_INFO_TECH_TRUETYPE

Указывает, что шрифт является шрифтом TrueType.

FM_INFO_TECH_TYPE1

Указывает, что этот шрифт является шрифтом экрана PostScript (Type1 или OpenType PostScript).

fsSelection

Задает сочетание следующих флагов:

Значение Значение
FM_SEL_BOLD Установите значение, если символы шрифта выделены полужирным шрифтом.
FM_SEL_ITALIC Задает значение , если символы шрифта являются курсивом.
FM_SEL_NEGATIVE Установите значение , если символы шрифта имеют обратный передний план и фон.
FM_SEL_OUTLINED Установите значение , если символы шрифта пустые.
FM_SEL_REGULAR Установите значение, если символы шрифта имеют нормальный вес.
FM_SEL_STRIKEOUT Установите значение , если символы шрифта вычеркнуты по умолчанию; в противном случае необходимо имитировать зачеркивающие удары.
FM_SEL_UNDERSCORE Установите значение , если все символы шрифта подчеркнуты по умолчанию; в противном случае необходимо имитировать подчеркивание.

fsType

Это битовое поле TrueType, указывающее определенные свойства шрифта, такие как внедрение шрифта и лицензионные права для шрифта. Внедренные шрифты могут храниться в документе. При открытии документа с внедренными шрифтами в системе, где не установлен шрифт (удаленная система), внедренный шрифт может быть загружен для временного (в некоторых случаях постоянного) использования в этой системе приложением с поддержкой внедрения. Права на лицензирование внедрения предоставляются поставщиком шрифтов. Можно задать следующие флаги:

Значение Значение
FM_EDITABLE_EMBED Установите значение , если шрифт можно внедрить и временно загрузить в другие системы. Документы, содержащие редактируемые шрифты, можно открывать для чтения и записи.
FM_READONLY_EMBED Установите значение , если встраивание для чтения и записи запрещено; Допускается только инкапсуляция предварительного просмотра и печати. Если этот бит задан, шрифт можно внедрить и временно загрузить в удаленную систему. Документы, содержащие шрифты для предварительного просмотра и печати, должны быть открыты только для чтения; изменения не могут применяться к документу.
FM_TYPE_LICENSED
FM_NO_EMBEDDING
Установите значение , если шрифт является шрифтом с ограниченной лицензией. Если задан только этот бит, этот шрифт не должен изменяться, внедряться или обмениваться каким-либо образом без предварительного получения разрешения законного владельца. Чтобы внедрение ограниченной лицензии войло в силу, это должен быть единственный выбранный уровень внедрения.
 

Шрифты с набором битов FM_READONLY_EMBED указывают, что они могут быть внедрены в документы, но должны быть установлены только временно в удаленной системе. Любой документ, содержащий шрифт FM_READONLY_EMBED, должен быть открыт "только для чтения". То есть приложение может позволить пользователю просматривать и (или) печатать документ, но не редактировать его.

Шрифты с набором битов FM_EDITABLE_EMBED указывают, что они могут быть внедрены в документы, но должны быть установлены только временно в удаленной системе. В отличие от FM_READONLY_EMBED шрифтов, документы, содержащие редактируемые шрифты, можно открывать "чтение и запись"; редактирование разрешено, и изменения можно сохранять.

Шрифты без набора битов fsType указывают на то, что они могут быть внедрены и окончательно установлены в удаленной системе приложением. Пользователь удаленной системы получает те же права, обязанности и лицензии на этот шрифт, что и исходный покупатель шрифта, и на нее распространяется то же лицензионное соглашение конечного пользователя, авторское право, патент на дизайн и (или) товарный знак, как и у первоначального покупателя.

Приложения, реализующие поддержку внедрения шрифтов с помощью библиотеки DLL внедрения шрифтов или другими средствами, не должны внедрять шрифты, которые не имеют лицензии на разрешение внедрения. Кроме того, приложения, загружающие внедренные шрифты для временного использования , должны удалять шрифты при закрытии документа, содержащего внедренный шрифт.

Если задано несколько битов внедрения, приоритет имеет наименее ограниченная лицензия. Например, если заданы биты 1 и 3, бит 3 имеет приоритет над битом 1, и шрифт может быть внедрен с правами редактируемых. В целях совместимости большинство поставщиков, предоставляющих права редактируемого внедрения, также устанавливают бит предварительного просмотра & печати (0x000C). Это позволяет приложению, поддерживающему только предварительное внедрение & печать, обнаруживать, что внедрение шрифтов разрешено.

fwdUnitsPerEm

Указывает em-height шрифта.

fwdLowestPPEm

Указывает наименьший доступный для чтения размер шрифта (в пикселях). Это значение не учитывается для точечных шрифтов.

fwdWinAscender

Задает значение возрастания Windows для шрифта.

fwdWinDescender

Задает значение убывателя Windows для шрифта.

fwdMacAscender

Задает значение возрастания Macintosh для шрифта.

fwdMacDescender

Задает значение убывателя Macintosh для шрифта. Обычно это число меньше нуля. Он измеряет смещение знака от базовой линии нижнего убывания в наборе символов Macintosh.

fwdMacLineGap

Указывает разрыв в строках Macintosh для шрифта. Предлагаемый междустрочный интервал Macintosh равен fwdMacLineGap + fwdMacAscenderfwdMacDescender.

fwdTypoAscender

Задает типографическое значение возрастания для шрифта.

fwdTypoDescender

Задает типографическое значение убывателя шрифта. Это значение указывает смещение со знаком наименьшего нисходящего элемента от базового плана.

fwdTypoLineGap

Задает типографический разрыв в строках для шрифта.

fwdAveCharWidth

Задает среднее арифметическое значение ширины всех 26 строчными буквами от "a" до "z" латинского алфавита и символа пробела. Если какая-либо из 26 строчных букв отсутствует, этот элемент должен быть равен среднему взвешенный вес всех глифов в шрифте.

fwdMaxCharInc

Задает максимальный приращение символов для всех глифов в шрифте.

fwdCapHeight

Задает высоту оптической линии, описывающей верхнюю часть верхнего регистра "H" в единицах шрифта (FUnits). Это может не совпадать с измеряемой высотой верхнего регистра "H". Если эти сведения не существуют, параметру fwdCapHeight следует задать нулевое значение, что указывает на то, что она не определена.

fwdXHeight

Задает высоту оптической строки, описывающей высоту нижнего регистра "x" в единицах шрифта. Это может не совпадать с измеряемой высотой нижнего регистра "x". Нулевое значение указывает, что этот элемент не определен.

fwdSubscriptXSize

Задает предлагаемую ширину символа (размер по базовому направлению) подстрочного шрифта.

fwdSubscriptYSize

Указывает предлагаемую высоту символа (размер по возрастанию) подстрочного шрифта.

fwdSubscriptXOffset

Задает предлагаемое смещение в базовом направлении подстрочного символа. Смещение определяется относительно происхождения символа базового символа.

fwdSubscriptYOffset

Задает предлагаемое смещение в базовом направлении подстрочного символа. Смещение берется из исходного символа базового символа.

fwdSuperscriptXSize

Задает предлагаемую ширину символа (размер в базовом направлении) надстрочного шрифта.

fwdSuperscriptYSize

Указывает предлагаемую высоту символа (размер по восходящей линии) надстрочного шрифта.

fwdSuperscriptXOffset

Задает предлагаемое смещение в базовом направлении надстрочного символа. Смещение берется из исходного символа базового символа.

fwdSuperscriptYOffset

Задает предлагаемое смещение в базовом направлении надстрочного символа. Смещение берется из исходного символа базового символа.

fwdUnderscoreSize

Задает предлагаемую ширину полосы подчеркивания в единицах шрифта.

fwdUnderscorePosition

Указывает предлагаемое смещение (в единицах шрифта) от базовой строки до середины полосы подчеркивания.

fwdStrikeoutSize

Указывает предлагаемую ширину зачеркаемой полосы в координатах шрифта.

fwdStrikeoutPosition

Указывает предлагаемое смещение середины полосы зачеркиния от базового плана.

chFirstChar

Задает самый низкий поддерживаемый символ на кодовой странице, указанной в jWinCharSet. Это поле предоставляется для совместимости с Windows 3.1.

chLastChar

Указывает самый высокий поддерживаемый символ на кодовой странице, указанной в jWinCharSet. Это поле предоставляется для совместимости с Windows 3.1.

chDefaultChar

Задает символ по умолчанию на кодовой странице, указанной в jWinCharSet. Это поле предоставляется для совместимости с Windows 3.1.

chBreakChar

Указывает символ разрыва на кодовой странице, указанной в jWinCharSet. Это поле предоставляется для совместимости с Windows 3.1.

wcFirstChar

Указывает поддерживаемый символ с наименьшим кодом юникода.

wcLastChar

Указывает поддерживаемый символ с наибольшим кодом символов Юникода.

wcDefaultChar

Указывает символ, который следует заменить, когда приложение запрашивает символ, который не поддерживается шрифтом.

wcBreakChar

Указывает кодовую точку символа пробела или его эквивалента.

ptlBaseline

Задает структуру POINTL , содержащую предполагаемое направление записи этого шрифта. Например, типичный латинский шрифт задает значение (1,0).

ptlAspect

Задает структуру POINTL, содержащую пропорции центров пикселей, для которых был разработан шрифт растрового рисунка. Это значение используется только шрифтами точечных рисунков.

ptlCaret

Задает структуру POINTL, содержащую направление по возрастанию шрифта. Например, для неитализированного латинского шрифта используется значение (0,1), в то время как курсивный латинский шрифт может указывать значение (2,5).

rclFontBox

Задает структуру RECTL , описывающую ограничивающий прямоугольник всех глифов в шрифте в пространстве конструктора.

achVendId[4]

Задает идентификатор из четырех символов для поставщика шрифтов. Идентификаторы описаны в спецификации Microsoft TrueType.

cKerningPairs

Указывает количество пар кернинга, связанных с этим шрифтом.

ulPanoseCulture

Указывает способ интерпретации номера panose. Для этого числа должно быть задано значение FM_PANOSE_CULTURE_LATIN для латинских шрифтов. Сведения о структуре PANOSE см. в документации по пакету SDK Microsoft Window.

panose

Массив из 10 байт, используемый для описания визуальных характеристик данного шрифта. Затем эти характеристики используются для связывания шрифта с другими шрифтами аналогичного вида с разными именами. Сведения о структуре PANOSE см. в документации по пакету SDK для Windows.

Align

Этот член определяется только в том случае, если определена константа _WIN64. Его единственная цель — обеспечить правильное выравнивание этой структуры в соответствии с архитектурой Itanium.

Комментарии

Дополнительные сведения для шрифта можно дополнительно указать в структуре IFIEXTRA .

Подпрограмма DrvQueryFont драйвера заполняет и возвращает структуру IFIMETRICS в GDI.

Структура IFIMETRICS определяет все сведения для шрифта, который понимает GDI. Большинство членов представляют собой значения FWORD, которые представляют собой 16-разрядные значения со знаком в пространстве разработки. Если шрифт является растровой, пространство конструктора и пространство устройства совпадают, а единица шрифта эквивалентна расстоянию между пикселями.

Система координат в пространстве шрифта/нотации такова, что координата Y увеличивается в направлении вверх, а координата X — вправо.

Элемент Align структуры IFIMETRICS приводит к тому, что он больше для 64-разрядных компьютеров, чем для компьютеров x32, что имеет последствия для файлов двоичного формата шрифтов, отформатированных в соответствии с этой структурой. Начиная с Windows Server 2003 с пакетом обновления 1 (SP1), в Prntfont.h: PRINTIFI32 добавлена дополнительная структура фиксированного размера. Структура PRINTIFI32 идентична структуре IFIMETRICS, за исключением того, что она не содержит элемента Align .

Требования

Требование Значение
Заголовок winddi.h (включая Winddi.h)

См. также раздел

DrvQueryFont

IFIEXTRA

PATHOBJ