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. |
|
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 + fwdMacAscender − fwdMacDescender.
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) |