Структура 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_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 + fwdMacAscender − fwdMacDescender.
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) |