Partager via


Fonction ScriptJustify (usp10.h)

Crée une table de largeurs avancées pour autoriser la justification du texte lorsqu’il est passé à la fonction ScriptTextOut .

Syntaxe

HRESULT ScriptJustify(
  [in]  const SCRIPT_VISATTR *psva,
  [in]  const int            *piAdvance,
  [in]  int                  cGlyphs,
  [in]  int                  iDx,
  [in]  int                  iMinKashida,
  [out] int                  *piJustify
);

Paramètres

[in] psva

Pointeur vers un tableau, de longueur indiquée par des cGlyphes, contenant des structures SCRIPT_VISATTR . Chaque structure contient des attributs visuels pour un glyphe dans la ligne à traiter.

[in] piAdvance

Pointeur vers un tableau de largeurs avancées, de longueur indiquée par des cGlyphes, obtenu à partir d’un appel précédent à ScriptPlace.

[in] cGlyphs

Nombre de glyphes pour les tableaux indiqués par psva et piAdvance. Ce paramètre indique également le nombre de glyphes pour le paramètre de sortie piJustify.

[in] iDx

Largeur, en pixels, de la modification souhaitée, soit une augmentation de la diminution.

[in] iMinKashida

Largeur minimale d’un glyphe kashida à générer.

[out] piJustify

Pointeur vers une mémoire tampon dans laquelle cette fonction récupère un tableau, de longueur indiquée par des cGlyphes, contenant des largeurs d’avance justifiées. Les largeurs justifiées sont parfois appelées « largeurs de cellule » pour les distinguer des largeurs d’avance injustifiées.

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

Pour plus d’informations sur le contexte dans lequel cette fonction est normalement appelée, consultez Affichage de texte avec Uniscribe .

Cette fonction fournit une implémentation simple de la justification multilingue. Il établit la quantité d’ajustement à effectuer à chaque position de glyphe sur la ligne. Il interprète le tableau SCRIPT_VISATTR généré par un appel à ScriptShape, en accordant la priorité absolue à kashida. La fonction utilise l’espacement interword si aucun point kashida n’est disponible. Il utilise l’espacement intercharacter si aucun point d’interword n’est disponible.

Note Les formateurs de texte sophistiqués peuvent générer leur propre tableau delta dx en combinant des fonctionnalités spécifiques au formateur avec les informations récupérées par ScriptShape dans le tableau SCRIPT_VISATTR .
 
L’application doit passer les largeurs d’avance justifiées générées par ScriptJustify à ScriptTextOut dans le paramètre piJustify .

ScriptJustify crée un tableau justifié contenant des largeurs avancées mises à jour pour chaque glyphe. Lorsqu’une largeur d’avance pour un glyphe est augmentée, la largeur supplémentaire est rendue à droite du glyphe, avec un espace blanc ou, pour le texte arabe, un kashida.

Note L’insertion de Kashida se produit à droite du glyphe pour justifier visuellement. Microsoft Word et Microsoft PowerPoint utilisent ce concept. Toute modification de l’algorithme de placement kashida doit accompagner une modification du gestionnaire ScriptTextOut correspondant pour un script particulier, par exemple, le gestionnaire de justification TextOut arabe.
 
Parfois, l’application tente de gérer des glyphes qui ne peuvent pas être justifiés, auquel cas le membre uJustification de SCRIPT_VISATTR est défini sur SCRIPT_JUSTIFY_NONE. Dans ce cas, ScriptJustify copie le tableau d’entrée indiqué par piAdvance dans le tableau de sortie indiqué par piJustify et retourne S_FALSE à l’application.
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 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête usp10.h
Bibliothèque Usp10.lib
DLL Usp10.dll
Composant redistribuable Internet Explorer 5 ou version ultérieure sur Windows Me/98/95

Voir aussi

Affichage de texte avec uniscribe

SCRIPT_VISATTR

ScriptPlace

ScriptShape

ScriptTextOut

Uniscribe

Fonctions uniscribe