Partager via


Fonction ScriptGetCMap (usp10.h)

Récupère les index de glyphe des caractères Unicode dans une chaîne en fonction de la table cmap TrueType ou de la table cmap standard implémentée pour les polices de style ancien.

Syntaxe

HRESULT ScriptGetCMap(
  [in]      HDC          hdc,
  [in, out] SCRIPT_CACHE *psc,
  [in]      const WCHAR  *pwcInChars,
  [in]      int          cChars,
  [in]      DWORD        dwFlags,
  [out]     WORD         *pwOutGlyphs
);

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] pwcInChars

Pointeur vers une chaîne de caractères Unicode.

[in] cChars

Nombre de caractères Unicode dans la chaîne indiquée par pwcInChars.

[in] dwFlags

Indicateurs spécifiant toute gestion spéciale des glyphes. Par défaut, les glyphes sont fournis dans l’ordre logique sans gestion spéciale. Ce paramètre peut avoir la valeur suivante.

Valeur Signification
SGCM_RTL
Le tableau de glyphes indiqué par pwOutGlyphes doit contenir des glyphes en miroir pour les glyphes qui ont un équivalent mis en miroir.

[out] pwOutGlyphs

Pointeur vers une mémoire tampon dans laquelle la fonction récupère un tableau d’index de glyphes. Cette mémoire tampon doit être de la même longueur que la mémoire tampon d’entrée indiquée par pwcInChars. Chaque point de code est mappé à un glyphe unique.

Valeur retournée

Retourne S_OK si tous les points de code Unicode sont présents dans la police. La fonction retourne l’une des valeurs HRESULT non nulles répertoriées ci-dessous si elle échoue.

Valeur retournée Signification
E_HANDLE La police ou le système d’exploitation ne prend pas en charge les index de glyphe.
S_FALSE Certains points de code Unicode ont été mappés au glyphe par défaut.

Remarques

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

Cette fonction peut être utilisée pour déterminer les caractères d’une exécution pris en charge par la police sélectionnée. L’application peut analyser la mémoire tampon de glyphe récupérée, à la recherche du glyphe par défaut pour déterminer les caractères qui ne sont pas disponibles. L’application doit déterminer l’index de glyphe par défaut pour la police sélectionnée en appelant ScriptGetFontProperties.

La valeur de retour de cette fonction indique la présence de glyphes manquants.

Note La fonction suppose une relation 1 :1 entre les éléments dans les tableaux d’entrée et de sortie. Toutefois, la fonction ne prend pas en charge cette relation pour les paires de substitution UTF-16. Pour une paire de substitution, la fonction ne récupère pas l’index de glyphe pour le caractère de plan supplémentaire. De même, la fonction ne prend pas en charge les séquences Unicode Variation-Selector (VS), chacune d’elles se compose d’un caractère de graphique Unicode suivi d’un ensemble de caractères SELECTOR DE VARIATION pour sélectionner une représentation de glyphe particulière pour ce caractère graphique. Pour une séquence VS, la fonction récupère l’index de glyphe pour le glyphe par défaut mappé par le cmap pour les deux caractères, au lieu de l’index de glyphe pour le glyphe particulier pour la séquence VS.
 
Certains points de code peuvent être rendus par une combinaison de glyphes, ainsi que par un seul glyphe, par exemple, 00C9 ; LETTRE MAJUSCULE LATINE E AVEC AIGU. Dans ce cas, si la police prend en charge le glyphe E majuscule et le glyphe aigu, mais pas un seul glyphe pour 00C9, ScriptGetCMap indique que 00C9 n’est pas pris en charge. Pour déterminer la prise en charge de la police pour une chaîne qui contient ces types de points de code, l’application peut appeler ScriptShape. Si la fonction retourne S_OK, l’application doit case activée la sortie pour les glyphes manquants.
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_CACHE

ScriptGetFontProperties

ScriptShape

Uniscribe

Fonctions uniscribe