ScriptPlaceOpenType, fonction (usp10.h)

Génère des glyphes et des attributs visuels pour une exécution Unicode avec des informations OpenType à partir de la sortie de ScriptShapeOpenType.

Syntaxe

HRESULT ScriptPlaceOpenType(
  [in, optional]  HDC                    hdc,
  [in, out]       SCRIPT_CACHE           *psc,
  [in, out]       SCRIPT_ANALYSIS        *psa,
  [in]            OPENTYPE_TAG           tagScript,
  [in]            OPENTYPE_TAG           tagLangSys,
  [in, optional]  int                    *rcRangeChars,
  [in, optional]  TEXTRANGE_PROPERTIES   **rpRangeProperties,
  [in]            int                    cRanges,
  [in]            const WCHAR            *pwcChars,
  [in]            WORD                   *pwLogClust,
  [in]            SCRIPT_CHARPROP        *pCharProps,
  [in]            int                    cChars,
  [in]            const WORD             *pwGlyphs,
  [in]            const SCRIPT_GLYPHPROP *pGlyphProps,
  [in]            int                    cGlyphs,
  [out]           int                    *piAdvance,
  [out]           GOFFSET                *pGoffset,
  [out, optional] ABC                    *pABC
);

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, out] 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 qui régit la liste générée des glyphes et leurs largeurs associées, ainsi que les décalages de placement x et y.

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

[in] tagScript

Structure OPENTYPE_TAG contenant la balise de script OpenType que le système d’écriture doit utiliser.

[in] tagLangSys

Structure OPENTYPE_TAG contenant la balise de langue OpenType pour le système d’écriture.

[in, optional] rcRangeChars

Tableau du nombre de caractères dans chaque plage. Le nombre de membres est indiqué dans le paramètre cRanges . Le total des valeurs doit être égal à la valeur de cChars.

[in, optional] rpRangeProperties

Tableau de structures TEXTRANGE_PROPERTIES définissant des propriétés pour chaque plage. Le nombre d’éléments est défini par le paramètre cRanges .

[in] cRanges

Nombre de plages de fonctionnalités OpenType.

[in] pwcChars

Pointeur vers un tableau de caractères Unicode contenant l’exécution. Le nombre d’éléments est défini par le paramètre cRanges .

[in] pwLogClust

Pointeur vers un tableau d’informations de cluster logique. Chaque élément du tableau correspond à un caractère dans le tableau défini par pwcChars. La valeur de chaque élément est le décalage entre le premier glyphe de l’exécution et le premier glyphe du cluster contenant le caractère correspondant. Notez que, lorsque le membre fRTL de la structure SCRIPT_ANALYSIS a la valeur TRUE, les éléments dans pwLogClust diminuent à mesure que le tableau est lu.

[in] pCharProps

Pointeur vers un tableau de valeurs de propriété de caractères dans l’exécution Unicode.

[in] cChars

Nombre de caractères dans l’exécution Unicode.

[in] pwGlyphs

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

[in] pGlyphProps

Pointeur vers un tableau d’attributs pour chacun des glyphes à récupérer. Le nombre de valeurs est égal à la valeur des cGlyphes. Étant donné qu’il existe une propriété de glyphe par glyphe, ce paramètre a le nombre d’éléments indiqué par les cGlyphes.

[in] cGlyphs

Nombre de glyphes dans une mémoire tampon de tableau de glyphes.

[out] piAdvance

Pointeur vers un tableau, de longueur indiquée par les cGlyphes, dans lequel cette fonction récupère des informations de largeur avancées .

[out] pGoffset

Pointeur vers un tableau de structures GOFFSET dans laquelle cette structure 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, optional] 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. Dans tous les cas d’erreur, les valeurs de sortie ne sont pas définies. L’application peut tester la valeur de retour avec les macros SUCCEEDED et FAILED .

La fonction retourne E_OUTOFMEMORY si la longueur de la mémoire tampon de sortie indiquée par les cGlyphes est trop petite. L’application peut réessayer d’appeler avec des mémoires tampons plus volumineuses.

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 est passé en tant que 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 la valeur appropriée dans hdc et avec tous les autres paramètres identiques.

Remarques

Cette fonction est préférée à l’ancienne fonction ScriptPlace . Voici quelques avantages de ScriptPlaceOpenType :

  • Les paramètres correspondent directement aux balises OpenType dans les tables de disposition des polices.
  • Les paramètres définissent les fonctionnalités appliquées à chaque caractère. L’entrée est divisée en plages, et chaque plage a des propriétés OpenType associées.
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

   
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

Affichage du texte avec un caractères non inscrit

GOFFSET

OPENTYPE_TAG

SCRIPT_ANALYSIS

SCRIPT_CACHE

SCRIPT_CHARPROP

SCRIPT_GLYPHPROP

ScriptItemizeOpenType

ScriptPlace

ScriptShapeOpenType

TEXTRANGE_PROPERTIES

Annuler l’inscription de fonctions