Partager via


ScriptPositionSingleGlyph, fonction (usp10.h)

Positionne un glyphe unique avec un seul ajustement à l’aide d’une fonctionnalité spécifiée fournie dans la police pour le traitement OpenType. Le plus souvent, les applications utilisent cette fonction pour aligner un glyphe optiquement au début ou à la fin d’une ligne.

Syntaxe

HRESULT ScriptPositionSingleGlyph(
  [in, optional] HDC             hdc,
  [in, out]      SCRIPT_CACHE    *psc,
  [in, optional] SCRIPT_ANALYSIS *psa,
  [in]           OPENTYPE_TAG    tagScript,
  [in]           OPENTYPE_TAG    tagLangSys,
  [in]           OPENTYPE_TAG    tagFeature,
  [in]           LONG            lParameter,
  [in]           WORD            wGlyphId,
  [in]           int             iAdvance,
  [in]           GOFFSET         GOffset,
  [out]          int             *piOutAdvance,
  [out]          GOFFSET         *pOutGoffset
);

Paramètres

[in, optional] hdc

Gérez le contexte de l’appareil. Pour plus d’informations, consultez Mise en cache.

[in, out] psc

Pointeur vers une structure SCRIPT_CACHE identifiant le cache de script.

[in, optional] psa

Pointeur vers une structure SCRIPT_ANALYSIS obtenue à partir d’un appel précédent à ScriptItemizeOpenType. Cette structure identifie le moteur de mise en forme, afin que les largeurs avancées puissent être récupérées.

L’application peut également définir ce paramètre sur NULL pour récupérer des résultats non filtrés.

[in] tagScript

Structure OPENTYPE_TAG définissant la balise de script pour la mise en forme.

[in] tagLangSys

Structure OPENTYPE_TAG définissant la balise de langue pour la mise en forme.

[in] tagFeature

Structure OPENTYPE_TAG définissant la balise de fonctionnalité à utiliser pour la mise en forme du glyphe de remplacement.

[in] lParameter

Indicateur spécifiant si la substitution unique doit être appliquée à l’identificateur spécifié dans wGlyphId. L’application définit ce paramètre sur 1 pour appliquer la fonctionnalité de substitution unique à l’identificateur. L’application définit le paramètre sur 0 si la fonction ne doit pas appliquer la fonctionnalité.

[in] wGlyphId

Identificateur du glyphe d’origine mis en forme.

[in] iAdvance

Largeur avancée du glyphe d’origine.

[in] GOffset

Décalage du glyphe d’origine. En règle générale, cette valeur est une sortie de ScriptPlaceOpenType ou ScriptPlace.

[out] piOutAdvance

Pointeur vers l’emplacement où cette fonction récupère la nouvelle largeur avancée ajustée pour le glyphe de remplacement.

[out] pOutGoffset

Pointeur vers l’emplacement où cette fonction récupère le nouveau décalage de glyphe ajusté pour le glyphe de remplacement.

Valeur retournée

Retourne 0 en cas de réussite. La fonction retourne une valeur HRESULT différente de zéro si elle ne réussit pas. L’application peut tester la valeur de retour avec les macros SUCCEEDED et FAILED .

Remarques

Cette fonction positionne un glyphe individuel en ajustant la largeur avancée et/ou le décalage du glyphe donné. La fonction suppose que la police ne nécessite qu’un seul ajustement.

Une utilisation classique de cette fonction est le léger ajustement de la marge pour tenir compte de l’impression visuelle effectuée par certains caractères. Dans l’écriture latine, par exemple, au début d’une ligne, il est courant d’effectuer un léger ajustement à gauche pour une majuscule initiale (telle que « T » ou « O ») qui n’a pas de ligne verticale sur la partie gauche du glyphe. Bien que cela casse la marge linéaire stricte, l’œil perçoit la marge comme plus égale.

Les exemples suivants illustrent cet effet. Le premier exemple montre un alignement strict ; Les deux exemples suivants montrent un ajustement du « T » initial à gauche. Les réglages sont d’un pixel et de deux pixels, respectivement. Les images agrandies à droite montrent comment le « T » pousse légèrement plus loin dans la marge gauche dans chaque cas successif.

Illustration montrant le même bloc de texte trois fois, avec des agrandissements de chacun affichant un alignement légèrement différent
Important À compter de Windows 8 : pour conserver la possibilité de s’exécuter sur Windows 7, un module qui utilise Uniscribe doit spécifier Usp10.lib avant gdi32.lib dans sa liste de bibliothèques.
 

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête usp10.h
Bibliothèque Usp10.lib
DLL Usp10.dll
Composant redistribuable Usp10.dll version 1.600 ou ultérieure sur Windows XP

Voir aussi

Mise en cache

OPENTYPE_TAG

SCRIPT_ANALYSIS

SCRIPT_CACHE

ScriptItemizeOpenType

Annuler l’inscription

Annuler l’inscription de fonctions