Fonction ScriptPlace (usp10.h)

Génère des informations sur la largeur avancée du glyphe et le décalage en deux dimensions à partir de la sortie de ScriptShape.

Syntaxe

HRESULT ScriptPlace(
  [in]      HDC                  hdc,
  [in, out] SCRIPT_CACHE         *psc,
  [in]      const WORD           *pwGlyphs,
  [in]      int                  cGlyphs,
  [in]      const SCRIPT_VISATTR *psva,
  [in, out] SCRIPT_ANALYSIS      *psa,
  [out]     int                  *piAdvance,
  [out]     GOFFSET              *pGoffset,
  [out]     ABC                  *pABC
);

Paramètres

[in] hdc

Facultatif. 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] pwGlyphs

Pointeur vers une mémoire tampon de glyphes obtenue à partir d’un appel antérieur à la fonction ScriptShape .

[in] cGlyphs

Nombre de glyphes dans la mémoire tampon de glyphes.

[in] psva

Pointeur vers un tableau de structures SCRIPT_VISATTR indiquant des attributs visuels.

[in, out] psa

Pointeur vers une structure SCRIPT_ANALYSIS . Lors de l’entrée, cette structure est obtenue à partir d’un appel précédent à ScriptItemize. Lors de la sortie, cette structure contient les valeurs récupérées par ScriptPlace.

[out] piAdvance

Pointeur vers un tableau dans lequel cette fonction récupère des informations de largeur avancées.

[out] pGoffset

facultatif. Pointeur vers un tableau de structures GOFFSET dans laquelle cette fonction récupère les décalages x et y de la combinaison de glyphes. Ce tableau doit être de longueur indiquée par les cGlyphes.

[out] pABC

Pointeur vers une structure ABC dans laquelle cette fonction récupère la largeur ABC pour l’exécution entière.

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 .

La fonction retourne E_PENDING si le cache de script spécifié par le paramètre psc ne contient pas suffisamment d’informations pour placer les glyphes et si le paramètre hdc a la valeur NULL afin que la fonction ne puisse pas terminer le processus de placement. L’application doit configurer un contexte d’appareil correct pour l’exécution et appeler à nouveau cette fonction avec le contexte d’appareil approprié et avec tous les autres paramètres identiques.

Remarques

Consultez Affichage de texte avec uniscribe pour une présentation du contexte dans lequel cette fonction est normalement appelée.

La largeur ABC composite pour l’ensemble de l’élément identifie le dépassement des glyphes à gauche de la position de départ et à droite de la longueur impliquée par la somme des largeurs avancées. La largeur d’avance totale de la ligne est exactement abcA+abcB+abcC. Les valeurs abcA et abcC sont conservées sous forme de proportions de la hauteur de cellule représentée en 8 bits et sont donc d’environ +/-1 %. La largeur totale récupérée, qui est la somme des valeurs abcA+abcB+abcC indiquées par piAdvance, est exacte à la résolution du moteur de mise en forme TrueType.

Tous les tableaux sont dans l’ordre visuel, sauf si le membre fLogicalOrder est défini dans la structure SCRIPT_ANALYSIS indiquée par le paramètre psa .

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

Voir aussi

Affichage du texte avec un caractères non inscrit

GOFFSET

SCRIPT_ANALYSIS

SCRIPT_CACHE

SCRIPT_VISATTR

ScriptItemize

ScriptPlaceOpenType

ScriptShape

Annuler l’inscription

Annuler l’inscription de fonctions