Structure IFIMETRICS (winddi.h)

La structure IFIMETRICS définit des informations pour une police de type donnée que GDI peut utiliser.

Syntaxe

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;

Membres

cjThis

Spécifie la taille en octets de cette structure. La taille spécifiée inclut toutes les chaînes Unicode ajoutées à la fin de cette structure, ainsi que la taille en octets de la structure IFIEXTRA facultative.

cjIfiExtra

Spécifie la taille en octets de la structure IFIEXTRA qui suit cette structure IFIMETRICS. La valeur zéro indique qu’aucune structure IFIEXTRA n’est présente.

dpwszFamilyName

Spécifie le décalage en octets d’une chaîne Unicode terminée par null contenant le nom de famille de la police (par exemple, « Times Roman »). En règle générale, cette chaîne suit immédiatement la structure IFIMETRICS. Cette chaîne doit être identique au nom enregistré dans le membre lfFaceName de la structure Win32 LOGFONT.

dpwszStyleName

Spécifie le décalage en octets d’une chaîne Unicode terminée par null décrivant le style de la police (par exemple, « Gras »).

dpwszFaceName

Spécifie le décalage en octets d’une chaîne Unicode terminée par null représentant le nom unique et complet de la police. Le nom contient les noms de famille et de sous-famille de la police (par exemple, « Times New Roman Bold »).

dpwszUniqueName

Spécifie le décalage en octets d’une chaîne Unicode terminée par null représentant l’identificateur unique de la police (par exemple, « Monotype :Times New Roman :1990 »).

dpFontSim

Spécifie le décalage en octets entre le début de cette structure IFIMETRICS et une structure FONTSIM qui décrit les simulations que la police prend en charge. Le pilote doit définir ce membre sur une valeur différente de zéro uniquement si la police prend en charge les simulations italiques en gras, italique ou gras ; sinon, le pilote doit définir cette valeur sur zéro.

Notez que si une police est en italique par conception, le pilote ne doit pas indiquer la prise en charge de la police pour la simulation italique, bien qu’il puisse indiquer la prise en charge de la police pour la simulation italique en gras. De même, le pilote ne doit pas indiquer la prise en charge de la police pour la simulation en gras si la police est en gras par conception, mais peut indiquer la prise en charge de la police pour la simulation italique en gras. Si la police est à la fois en gras et italique, elle ne doit prendre en charge aucune simulation.

Les décalages dans la structure FONTSIM sont relatifs à la base de la structure FONTSIM.

lEmbedId

Spécifie l’ID d’incorporation de la police. Cette valeur est spécifique à TrueType et doit être définie sur zéro par tous les autres fournisseurs de polices.

lItalicAngle

Spécifie l’angle italique de la police. Cette valeur est spécifique à TrueType et doit être définie sur zéro par tous les autres fournisseurs de polices.

lCharBias

Spécifie le biais de caractère. Cette valeur est spécifique à TrueType et doit être définie sur zéro par tous les autres fournisseurs de polices.

dpCharSets

Spécifie le décalage entre le début de cette structure IFIMETRICS et un tableau contenant une liste de tous les jeux de caractères Windows pris en charge par cette police. La taille du tableau est de 16 octets et se termine toujours par DEFAULT_CHARSET. La première valeur du tableau doit identifier le jeu de caractères Windows qui a la couverture la plus optimale et la plus complète dans la police ; cette valeur doit également être stockée dans jWinCharSet. Par instance, s’il s’agit d’une police japonaise qui prend également en charge les jeux de caractères US ANSI et Cyrillic, jWinCharSet doit être défini sur SHIFTJIS_CHARSET et le tableau identifié par dpCharSets contiendrait SHIFTJIS_CHARSET, ANSI_CHARSET, RUSSIAN_CHARSET DEFAULT_CHARSET.

Si cette police ne prend pas en charge plusieurs jeux de caractères Windows, dpCharSets doit être défini sur zéro.

jWinCharSet

Identifie le jeu de caractères le mieux pris en charge par cette police. Si la police ne prend en charge qu’un seul jeu de caractères Windows, le pilote doit stocker la valeur correspondante dans jWinCharSet. Le pilote ne doit pas stocker DEFAULT_CHARSET dans ce champ. Ce membre peut être l’une des valeurs suivantes :

Valeur Signification
ANSI_CHARSET Cette police prend en charge le jeu de caractères ANSI Windows.
ARABIC_CHARSET Cette police prend en charge le jeu de caractères arabes.
BALTIC_CHARSET Cette police prend en charge le jeu de caractères baltes.
CHINESEBIG5_CHARSET Cette police prend en charge le jeu de caractères chinois traditionnel (Big 5).
EASTEUROPE_CHARSET Cette police prend en charge le jeu de caractères d’Europe de l’Est.
GB2312_CHARSET Cette police prend en charge le jeu de caractères chinois simplifié (PRC).
GREEK_CHARSET Cette police prend en charge le jeu de caractères grecs.
HANGEUL_CHARSET Cette police prend en charge le jeu de caractères coréen (Hangeul).
HEBREW_CHARSET Cette police prend en charge le jeu de caractères hébreux.
JOHAB_CHARSET Cette police prend en charge le jeu de caractères coréen (Johab).
OEM_CHARSET Cette police prend en charge un jeu de caractères spécifique à l’OEM. Le jeu de caractères OEM dépend du système.
SHIFTJIS_CHARSET Cette police prend en charge le jeu de caractères Shift-JIS (Japanese Industry Standard).
SYMBOL_CHARSET Cette police prend en charge le jeu de caractères de symboles Windows.
RUSSIAN_CHARSET Cette police prend en charge le jeu de caractères cyrilliques.
THAI_CHARSET Cette police prend en charge le jeu de caractères thaïlandais.
TURKISH_CHARSET Cette police prend en charge le jeu de caractères turc.
VIETNAMESE_CHARSET Cette police prend en charge le jeu de caractères vietnamien.

jWinPitchAndFamily

Spécifie le pitch de la police. Les deux bits d’ordre inférieur spécifient le pitch de la police et peuvent être l’une des valeurs suivantes :

Valeur Signification
FIXED_PITCH Pour les polices de pas fixes
VARIABLE_PITCH Pour les polices de pas variable
 

Les bits 4 à 7 de ce membre spécifient la famille de polices et peuvent être l’une des valeurs suivantes :

Valeur Signification
FF_DECORATIVE Polices de nouveauté, telles que l’ancien anglais.
FF_DONTCARE Ne vous en fout pas ou inconnu.
FF_MODERN Polices à largeur de trait constante (pas fixe), avec ou sans empattements. Les polices à pas fixe sont généralement modernes, telles que Pica, Elite et Courier.
FF_ROMAN Polices avec une largeur de trait variable (proportionnellement espacée) et avec des empattements, comme Times Roman, Palatino et Century Schoolbook.
FF_SCRIPT Polices conçues pour ressembler à de l’écriture manuscrite, telles que Script et Cursive.
FF_SWISS Polices avec une largeur de trait variable (espacement proportionnel) et sans empattements, comme Helvetica et Swiss.

usWinWeight

Spécifie le poids de la police dans la plage de 0 à 1000 (par exemple, 400 est normal et 700 en gras). Cette valeur est fournie à l’application dans le membre lfWeight de la structure Win32 LOGFONT.

flInfo

Spécifie des informations supplémentaires sur la police. Ce champ peut être une combinaison des valeurs d’indicateur suivantes :

FM_INFO_1BPP

Indique qu’une bitmap de glyphe a une profondeur de couleur d’un bit par pixel. Pour Windows NT 3.1, la première version de Windows NT, cet indicateur doit être défini.

FM_INFO_4BPP

Indique qu’une bitmap de glyphe a une profondeur de couleur de quatre bits par pixel. Le pilote doit définir cette valeur si la police prend en charge les bitmaps de glyphes anti-aliased avec 16 niveaux de gris.

FM_INFO_8BPP

Indique qu’une bitmap de glyphe a une profondeur de couleur de huit bits par pixel. La version actuelle de GDI ignore ce paramètre, car elle ne prend pas en charge les polices de couleur.

FM_INFO_16BPP

Indique qu’une bitmap de glyphe a une profondeur de couleur de 16 bits par pixel. La version actuelle de GDI ignore ce paramètre, car elle ne prend pas en charge les polices de couleur.

FM_INFO_24BPP

Indique qu’une bitmap de glyphe a une profondeur de couleur de 24 bits par pixel. La version actuelle de GDI ignore ce paramètre, car elle ne prend pas en charge les polices de couleur.

FM_INFO_32BPP

Indique qu’une bitmap de glyphe a une profondeur de couleur de 32 bits par pixel. La version actuelle de GDI ignore ce paramètre, car elle ne prend pas en charge les polices de couleur.

FM_INFO_90DEGREE_ROTATIONS

Indique que la police peut être réalisée dans des rotations de 90 degrés de la forme notionnelle d’origine. GDI demande la rotation d’une police en incluant la rotation dans la transformation notionnelle à l’appareil passée au pilote lors de la création de la police. Ce membre a une signification uniquement lorsque l’indicateur FM_INFO_ARB_XFORMS n’a pas été défini.

FM_INFO_ANISOTROPIC_SCALING_ONLY

Indique que la police prend uniquement en charge la mise à l’échelle anisotrope arbitraire. Autrement dit, les transformations sont équivalentes à une matrice diagonale multipliée par un nombre réel positif. Si cet indicateur est défini, les indicateurs FM_INFO_ARB_XFORMS et FM_INFO_ISOTROPIC_SCALING_ONLY ne peuvent pas être définis. Si l’indicateur FM_INFO_90DEGREE_ROTATIONS est également défini, la police prend en charge les transformations qui sont une combinaison d’une mise à l’échelle anisotrope simple suivie d’une rotation d’un multiple de 90 degrés.

FM_INFO_ARB_XFORMS

Indique qu’une police peut être réalisée sous une plage continue de transformations linéaires à deux dimensions.

FM_INFO_CONSTANT_WIDTH

Indique que tous les glyphes de la police sous toutes les réalisations ont la même valeur d’incrément de caractères. Si cet indicateur est défini, l’indicateur FM_INFO_OPTICALLY_FIXED_PITCH doit également être défini.

FM_INFO_DBCS_FIXED_PITCH

Indique que les caractères codés sur deux octets pour cette police sont d’une hauteur fixe. Rien n’est implicite concernant les caractères d’un octet. Cet indicateur n’est significatif que pour les polices qui prennent en charge un jeu de caractères sur deux octets (DBCS), comme jiS shift. Les polices qui ne prennent pas en charge un DBCS ne doivent pas définir cet indicateur.

FM_INFO_DO_NOT_ENUMERATE

Indique que cette police ne sera pas énumérée par les routines Win32 EnumFontFamiliesEx, EnumFontFamilies ou EnumFonts . En outre, la chaîne retournée à un appel d’application Win32 à GetTextFace sera récupérée à partir de la chaîne dpwszUniqueName. Cet indicateur permet au fournisseur de polices d’associer plusieurs structures IFIMETRICS à l’une de ses polices.

FM_INFO_DSIG

Indique qu’une police est conforme à la norme Unicode.

FM_INFO_FAMILY_EQUIV

Indique que le décalage dpwszFamilyName dans IFIMETRICS est en fait le décalage vers une liste de noms de famille ou d’alias équivalents. Le prénom est le nom de base ou réel ; les noms suivants sont des équivalents ou des alias. Chaque nom de la liste est terminé par null ; la liste est terminée par deux zéros.

<nom de><base 0><alias 1><0...<>alias n>
<0><0>

Les noms basés sont utilisés uniquement pour le mappage ; ils ne sont pas énumérés.

FM_INFO_IGNORE_TC_RA_ABLE

Indique que, pour cette police, l’indicateur TC_RA_ABLE est ignoré.

FM_INFO_INTEGER_WIDTH

Indique que tous les glyphes ont des largeurs d’avance nonfractionnelles. Les polices bitmap définissent généralement cet indicateur.

FM_INFO_INTEGRAL_SCALING

Indique que la police peut être mise à l’échelle d’une quantité intégrale dans les directions x et y. Si cet indicateur est défini, le pilote doit être en mesure de restituer les glyphes dans le cas où le notionnel de transformation d’appareil est mis à l’échelle par des quantités intégrales dans les directions x et y. GDI demande la mise à l’échelle intégrale d’une police en incluant les mises à l’échelle axiales dans la transformation notionnelle en appareil transmise au pilote lors de la création de la police. Cet indicateur n’est significatif que lorsque l’indicateur FM_INFO_ARB_XFORMS n’a pas été défini.

FM_INFO_ISOTROPIC_SCALING_ONLY

Indique que la police prend uniquement en charge la mise à l’échelle isotrope arbitraire. Autrement dit, les transformations sont équivalentes à la matrice d’identité multipliée par un nombre réel positif. Si cet indicateur est défini, ni les indicateurs FM_INFO_ARB_XFORMS ni les indicateurs de FM_INFO_ANISOTROPIC_SCALING_ONLY ne peuvent être définis. Si l’indicateur FM_INFO_90DEGREE_ROTATIONS est défini, la police prend en charge les transformations équivalentes à une mise à l’échelle isotrope suivie d’une rotation d’un multiple de 90 degrés.

FM_INFO_OPTICALLY_FIXED_PITCH

Indique que cette police est considérée typographiquement comme un pitch fixe. Il s’agit d’une qualité optique de la police et n’indique pas nécessairement que tous les glyphes de la police ont le même incrément de caractères.

FM_INFO_NONNEGATIVE_AC

Indique que tous les glyphes de cette police ont un espacement A et C non négatif. Autrement dit, la zone noire du glyphe ne s’étend jamais en dehors de la région délimitée par l’origine des caractères et le point de concaténation des caractères.

FM_INFO_NOT_CONTIGUOUS

Indique que le jeu de caractères pris en charge n’est pas contigu.

FM_INFO_RETURNS_BITMAPS

Indique que la police contient une signature numérique valide.

FM_INFO_RETURNS_OUTLINES

Indique que pour tout glyphe pris en charge par le pilote, GDI peut demander une structure PATHOBJ qui décrit le contour de ce glyphe. Si possible, lorsque le plan est rempli à l’aide des conventions de remplissage de chemin d’accès de GDI, l’image bitmap obtenue doit être identique à la bitmap retournée par le pilote. Les indicateurs FM_INFO_RETURNS_OUTLINES et FM_INFO_RETURNS_STOKES ne peuvent pas être définis simultanément.

FM_INFO_RETURNS_STROKES

Indique que pour tout glyphe pris en charge par les pilotes, GDI peut demander une structure PATHOBJ qui décrit la spline du glyphe. Ce chemin ne peut pas être rempli, mais peut être tracé pour donner une représentation du glyphe. Les indicateurs FM_INFO_RETURNS_OUTLINES et FM_INFO_RETURNS_STOKES ne peuvent pas être définis simultanément.

FM_INFO_RIGHT_HANDED

Indique que le sens d’ascension de la police est de 90 degrés dans le sens inverse des aiguilles d’une montre par rapport à la direction de base. La direction d’ascension est la direction le long de laquelle la hauteur est mesurée et est toujours perpendiculaire à la direction de base.

FM_INFO_TECH_BITMAP

Indique que la police est une police bitmap.

FM_INFO_TECH_CFF

Indique que la police est une police OpenType Pscript qui contient une table CFF (Compact Font Format).

FM_INFO_TECH_MM

Indique qu’il s’agit d’une police MM (Multiple Master).

FM_INFO_TECH_OUTLINE_NOT_TRUETYPE

Indique que la police est basée sur une technologie de police évolutive qui utilise des chemins d’accès de plan, mais n’est pas basée sur TrueType. Cet indicateur ne spécifie pas si les chemins retournés pour cette police doivent être remplis ou tracés ; le consommateur doit examiner les indicateurs de FM_INFO_RETURNS_STROKES et de FM_INFO_RETURNS_OUTLINES pour cette information.

FM_INFO_TECH_STROKE

Indique que la police est basée sur une technologie de police avec traits. Cet indicateur ne spécifie pas si les chemins retournés pour cette police doivent être remplis ou tracés ; le consommateur doit examiner les indicateurs de FM_INFO_RETURNS_STROKES et de FM_INFO_RETURNS_OUTLINES pour cette information.

FM_INFO_TECH_TRUETYPE

Indique que la police est une police TrueType.

FM_INFO_TECH_TYPE1

Indique que cette police est une police d’écran PostScript (Type1 ou OpenType PostScript).

fsSelection

Spécifie une combinaison des indicateurs suivants :

Valeur Signification
FM_SEL_BOLD Définissez si les caractères de la police sont en gras.
FM_SEL_ITALIC Définissez si les caractères de la police sont en italique.
FM_SEL_NEGATIVE Définissez si les caractères de la police ont le premier plan et l’arrière-plan inversés.
FM_SEL_OUTLINED Définissez si les caractères de la police sont creux.
FM_SEL_REGULAR Définissez si les caractères de la police ont un poids normal.
FM_SEL_STRIKEOUT Définir si les caractères de la police sont rayés par défaut ; sinon, les grèves doivent être simulées.
FM_SEL_UNDERSCORE Définissez si tous les caractères de la police sont soulignés par défaut ; sinon, la mise en valeur doit être simulée.

fsType

Il s’agit d’un champ de bits spécifique à TrueType indiquant certaines propriétés de la police, telles que l’incorporation de polices et les droits de licence pour la police. Les polices incorporables peuvent être stockées dans un document. Lorsqu’un document avec des polices incorporées est ouvert sur un système sur lequel la police n’est pas installée (le système distant), la police incorporée peut être chargée pour une utilisation temporaire (et dans certains cas permanente) sur ce système par une application prenant en charge l’incorporation. Les droits de licence d’incorporation sont accordés par le fournisseur de polices. Les indicateurs suivants peuvent être définis :

Valeur Signification
FM_EDITABLE_EMBED Définissez si la police peut être incorporée et chargée temporairement sur d’autres systèmes. Les documents contenant des polices modifiables peuvent être ouverts pour la lecture et l’écriture.
FM_READONLY_EMBED Définir si l’incorporation en lecture/écriture n’est pas autorisée ; seule l’encapsulation « aperçu et impression » est autorisée. Lorsque ce bit est défini, la police peut être incorporée et chargée temporairement sur le système distant. Les documents contenant des polices « aperçu et impression » doivent être ouverts « en lecture seule ». Aucune modification ne peut être appliquée au document.
FM_TYPE_LICENSED
FM_NO_EMBEDDING
Définissez si la police est une police de licence restreinte. Lorsque seul ce bit est défini, cette police ne doit pas être modifiée, incorporée ou échangée de quelque manière que ce soit sans obtenir au préalable l’autorisation du propriétaire légal. Pour que l’incorporation de licences restreintes prenne effet, il doit s’agir du seul niveau d’incorporation sélectionné.
 

Les polices avec l’ensemble de bits FM_READONLY_EMBED indiquent qu’elles peuvent être incorporées dans des documents, mais ne doivent être installées que temporairement sur le système distant. Tout document qui inclut une police FM_READONLY_EMBED doit être ouvert en lecture seule. Autrement dit, l’application peut permettre à l’utilisateur d’afficher et/ou d’imprimer le document, mais pas de le modifier.

Les polices avec l’ensemble de bits FM_EDITABLE_EMBED indiquent qu’elles peuvent être incorporées dans des documents, mais ne doivent être installées que temporairement sur le système distant. Contrairement aux polices FM_READONLY_EMBED, les documents contenant des polices modifiables peuvent être ouverts en lecture/écriture et les modifications peuvent être enregistrées.

Les polices sans bits fsType définis indiquent qu’elles peuvent être incorporées et installées de manière permanente sur le système distant par une application. L’utilisateur du système distant acquiert les mêmes droits, obligations et licences pour cette police que l’acheteur d’origine de la police, et est soumis au même contrat de licence d’utilisateur final, droit d’auteur, brevet de conception et/ou marque que l’acheteur d’origine.

Les applications qui implémentent la prise en charge de l’incorporation de polices, soit par le biais de la DLL d’incorporation de polices, soit par d’autres moyens, ne doivent pas incorporer des polices qui ne sont pas autorisées sous licence pour autoriser l’incorporation. En outre, les applications qui chargent des polices incorporées pour une utilisation temporaire doivent supprimer les polices lorsque le document contenant la police incorporée est fermé.

Si plusieurs bits d’incorporation sont définis, la licence la moins restrictive accordée est prioritaire. Par exemple, si les bits 1 et 3 sont définis, le bit 3 est prioritaire sur le bit 1 et la police peut être incorporée avec des droits modifiables. À des fins de compatibilité, la plupart des fournisseurs qui accordent des droits d’incorporation modifiables définissent également la préversion & bit d’impression (0x000C). Cela permet à une application qui prend uniquement en charge la préversion & l’incorporation d’impression de détecter que l’incorporation de polices est autorisée.

fwdUnitsPerEm

Spécifie la hauteur d’em de la police.

fwdLowestPPEm

Spécifie la plus petite taille lisible de la police, en pixels. Cette valeur est ignorée pour les polices bitmap.

fwdWinAscender

Spécifie la valeur de l’ascendant Windows pour la police.

fwdWinDescender

Spécifie la valeur du descendeur Windows pour la police.

fwdMacAscender

Spécifie la valeur ascendante Macintosh pour la police.

fwdMacDescender

Spécifie la valeur du descendeur Macintosh pour la police. Ce nombre est généralement inférieur à zéro. Il mesure le déplacement signé à partir de la ligne de base du descendeur le plus bas du jeu de caractères Macintosh.

fwdMacLineGap

Spécifie l’écart de ligne Macintosh pour la police. L’espacement interligne Macintosh suggéré est égal à fwdMacLineGap + fwdMacAscenderfwdMacDescender.

fwdTypoAscender

Spécifie la valeur de l’ascendant typographique pour la police.

fwdTypoDescender

Spécifie la valeur de descendeur typographique pour la police. Cette valeur spécifie le déplacement signé du descendeur le plus bas de la ligne de base.

fwdTypoLineGap

Spécifie l’écart de ligne typographique pour la police.

fwdAveCharWidth

Spécifie la moyenne arithmétique de la largeur des 26 lettres minuscules « a » à « z » de l’alphabet latin et de l’espace. Si l’une des 26 lettres minuscules n’est pas présente, ce membre doit être défini comme égal à la moyenne pondérée de tous les glyphes de la police.

fwdMaxCharInc

Spécifie l’incrément de caractères maximal de tous les glyphes de la police.

fwdCapHeight

Spécifie la hauteur de la ligne optique décrivant le haut de la majuscule « H » en unités de police (FUnits). Cela peut ne pas être identique à la hauteur mesurée de l’élément « H » majuscule. Si ces informations n’existent pas, fwdCapHeight doit être défini sur zéro, ce qui indique qu’il n’est pas défini.

fwdXHeight

Spécifie la hauteur de la ligne optique décrivant la hauteur de la minuscule 'x' en unités de police. Cela peut ne pas être identique à la hauteur mesurée de la minuscule « x ». La valeur zéro indique que ce membre n’est pas défini.

fwdSubscriptXSize

Spécifie la largeur de caractères suggérée (la taille le long de la direction de base) de la police d’indice.

fwdSubscriptYSize

Spécifie la hauteur de caractère suggérée (la taille le long de la direction de l’ascendant) de la police d’indice.

fwdSubscriptXOffset

Spécifie le décalage suggéré dans la direction de base du caractère d’indice. Le décalage correspond à l’origine du caractère de base.

fwdSubscriptYOffset

Spécifie le décalage suggéré dans la direction de base du caractère d’indice. Le décalage est extrait de l’origine du caractère de base.

fwdSuperscriptXSize

Spécifie la largeur de caractères suggérée (la taille le long de la direction de base) de la police d’exposant.

fwdSuperscriptYSize

Spécifie la hauteur de caractère suggérée (la taille le long de la direction ascendante) de la police d’exposant.

fwdSuperscriptXOffset

Spécifie le décalage suggéré dans le sens de la ligne de base du caractère exposant. Le décalage est extrait de l’origine du caractère de base.

fwdSuperscriptYOffset

Spécifie le décalage suggéré dans le sens de la ligne de base du caractère exposant. Le décalage est extrait de l’origine du caractère de base.

fwdUnderscoreSize

Spécifie la largeur suggérée de la barre de soulignement, en unités de police.

fwdUnderscorePosition

Spécifie le déplacement suggéré, en unités de police, de la ligne de base au milieu de la barre de soulignement.

fwdStrikeoutSize

Spécifie la largeur suggérée de la barre de grève, en coordonnées de police.

fwdStrikeoutPosition

Spécifie le déplacement suggéré du milieu de la barre de grève de la ligne de base.

chFirstChar

Spécifie le caractère le plus bas pris en charge dans la page de code spécifiée dans jWinCharSet. Ce champ est fourni pour la compatibilité de Windows 3.1.

chLastChar

Spécifie le caractère le plus élevé pris en charge dans la page de code spécifiée dans jWinCharSet. Ce champ est fourni pour la compatibilité de Windows 3.1.

chDefaultChar

Spécifie le caractère par défaut dans la page de code spécifiée dans jWinCharSet. Ce champ est fourni pour la compatibilité de Windows 3.1.

chBreakChar

Spécifie le caractère d’arrêt dans la page de codes spécifiée dans jWinCharSet. Ce champ est fourni pour la compatibilité windows 3.1.

wcFirstChar

Spécifie le caractère pris en charge avec le plus petit code de caractères Unicode.

wcLastChar

Spécifie le caractère pris en charge avec le plus grand code de caractères Unicode.

wcDefaultChar

Spécifie le caractère à remplacer lorsqu’une application demande un caractère qui n’est pas pris en charge par la police.

wcBreakChar

Spécifie le point de code du caractère d’espace ou son équivalent.

ptlBaseline

Spécifie une structure POINTL qui contient le sens d’écriture prévu de cette police. Par exemple, une police latine classique spécifie une valeur de (1,0).

ptlAspect

Spécifie une structure POINTL qui contient les proportions des centres de pixels pour lesquels la police bitmap a été conçue. Cette valeur est utilisée uniquement par les polices bitmap.

ptlCaret

Spécifie une structure POINTL qui contient la direction de la direction de l’ascendant de la police. Par exemple, la valeur d’une police latine nonitalicisée est (0,1) tandis qu’une police latine italique peut spécifier une valeur de (2,5).

rclFontBox

Spécifie une structure RECTL qui décrit le cadre englobant de tous les glyphes de la police dans l’espace de conception.

achVendId[4]

Spécifie un identificateur de quatre caractères pour le fournisseur de polices. Les identificateurs sont documentés dans la spécification Microsoft TrueType.

cKerningPairs

Spécifie le nombre de paires de crénage associées à cette police.

ulPanoseCulture

Spécifie la façon dont interpréter le nombre de panoses. Ce nombre doit être défini sur FM_PANOSE_CULTURE_LATIN pour les polices latines. Pour plus d’informations sur la structure PANOSE, consultez la documentation du Kit de développement logiciel (SDK) Microsoft Window.

panose

Tableau de 10 octets utilisé pour décrire les caractéristiques visuelles d’une police donnée. Ces caractéristiques sont ensuite utilisées pour associer la police à d’autres polices d’apparence similaire ayant des noms différents. Pour plus d’informations sur la structure PANOSE, consultez la documentation du Kit de développement logiciel (SDK) Windows.

Align

Ce membre est défini uniquement si la constante _WIN64 est définie. Son seul objectif est de s’assurer que cette structure est correctement alignée sous l’architecture Itanium.

Remarques

Des informations supplémentaires pour une police peuvent éventuellement être spécifiées dans la structure IFIEXTRA .

La routine DrvQueryFont d’un pilote remplit et retourne une structure IFIMETRICS à GDI.

La structure IFIMETRICS définit toutes les informations d’une police que GDI comprend. La plupart des membres sont des valeurs FWORD, qui sont des quantités 16 bits signées dans l’espace de conception. Si la police est une police raster, l’espace de conception et l’espace de périphérique sont identiques et une unité de police équivaut à la distance entre les pixels.

Le système de coordonnées dans l’espace de police/notionnel est tel que la coordonnée y augmente vers le haut et la coordonnée x augmente à droite.

Le membre Align de la structure IFIMETRICS la rend plus grande pour les machines x64 que pour les machines x32, ce qui a des ramifications pour les fichiers au format de police binaire mis en forme selon cette structure. À compter de Windows Server 2003 SP1, une structure de taille fixe supplémentaire a été ajoutée à Prntfont.h : PRINTIFI32. La structure PRINTIFI32 est identique à la structure IFIMETRICS, sauf qu’elle ne contient pas de membre Align .

Configuration requise

Condition requise Valeur
En-tête winddi.h (inclure Winddi.h)

Voir aussi

DrvQueryFont

IFIEXTRA

PATHOBJ