Share via


ScriptGetFontAlternateGlyphs-Funktion (usp10.h)

Ruft eine Liste alternativer Glyphen für ein angegebenes Zeichen ab, auf das über ein angegebenes OpenType-Feature zugegriffen werden kann.

Syntax

HRESULT ScriptGetFontAlternateGlyphs(
  [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]           WORD            wGlyphId,
  [in]           int             cMaxAlternates,
  [out]          WORD            *pAlternateGlyphs,
  [out]          int             *pcAlternates
);

Parameter

[in, optional] hdc

Handle für den Gerätekontext. Weitere Informationen finden Sie unter Zwischenspeichern.

[in, out] psc

Zeiger auf eine SCRIPT_CACHE Struktur, die den Skriptcache definiert.

[in, optional] psa

Zeiger auf eine SCRIPT_ANALYSIS-Struktur, die aus einem vorherigen Aufruf von ScriptItemizeOpenType abgerufen wurde. Dieser Parameter identifiziert die Gestaltungs-Engine, sodass das Array alternativer Glyphen mit dem richtigen Bereich erstellt werden kann.

Alternativ kann die Anwendung diesen Parameter auf NULL festlegen, um ungefilterte Ergebnisse zu erhalten.

[in] tagScript

Eine OPENTYPE_TAG Struktur, die das Skripttag definiert, das alternativen Glyphen zugeordnet ist.

[in] tagLangSys

Eine OPENTYPE_TAG Struktur, die das Sprachtag definiert, das alternativen Glyphen zugeordnet ist.

[in] tagFeature

Eine OPENTYPE_TAG Struktur, die das Featuretag definiert, das alternativen Glyphen zugeordnet ist.

[in] wGlyphId

Der Bezeichner der ursprünglichen Glyphe, die aus der Zeichenzuordnungstabelle zugeordnet ist.

[in] cMaxAlternates

Länge des Arrays, das von pAlternateGlyphs angegeben wird.

[out] pAlternateGlyphs

Zeiger auf den Puffer, in dem diese Funktion ein Array von Glyphenbezeichnern abruft. Das Array enthält die ursprüngliche Glyphe, gefolgt von alternativen Glyphen. Das erste Element ist immer die ursprüngliche Glyphe. Alternative Formulare werden durch einen Index im Array identifiziert. Der Index ist ein Wert größer als eins und kleiner als der Wert von pcAlternates.

Wenn der Benutzer ein alternatives Formular auf der Benutzeroberfläche auswähelt, wird die alternative Glyphe auf das entsprechende Zeichen angewendet, und das Rendering wird neu formatiert.

[out] pcAlternates

Zeiger auf die Anzahl der Elemente im Array, das von pAlternateGlyphs angegeben wird.

Rückgabewert

Gibt bei Erfolg 0 zurück. Die Funktion gibt einen HRESULT-Wert ungleich null zurück, wenn sie nicht erfolgreich ist. Die Anwendung kann den Rückgabewert mit den Makros SUCCEEDED und FAILED testen.

Wenn die Anzahl der alternativen Glyphen den Wert von cMaxAlternates überschreitet, schlägt die Funktion mit E_OUTOFMEMORY fehl. Die Anwendung kann versuchen, mit größeren Puffern erneut aufzurufen.

Hinweise

Bei Verwendung alternativer Glyphen gestaltet die Anwendung zunächst die ursprüngliche Glyphe um, ohne ein Featuretag anzuwenden, und wählt dann eine Alternative aus. Die ursprüngliche Glyphe wird als Basisglyphe festgelegt. Wenn eine andere Alternative erforderlich ist, stellt die ursprüngliche Glyphe Informationen bereit, die mit der entsprechenden Alternativenliste übereinstimmen.

Wenn eine alternative Glyphe als Basissymbol verwendet wird, wird keine übereinstimmende Ausgabeliste gefunden. Die Benutzeroberfläche verwendet das ausgewählte endgültige Formular, ohne die Möglichkeit zu bieten, eine andere Alternative auszuwählen.

Die Vorgänge von ScriptGetFontAlternateGlyphen können von ScriptSubstituteSingleGlyph emuliert werden. Die Anwendung sollte die Parameter nacheinander ausprobieren, während Glyphen ersetzt werden.

Für das Strukturieren von Schriftarten mit Uniscribe wird ScriptShapeOpenType gegenüber der älteren ScriptShape-Funktion bevorzugt.

Wichtig Ab Windows 8: Um die Ausführung unter Windows 7 zu gewährleisten, muss ein Modul, das Uniscribe verwendet, Usp10.lib vor gdi32.lib in der Bibliotheksliste angeben.
 

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile usp10.h
Bibliothek Usp10.lib
DLL Usp10.dll
Verteilbare Komponente Usp10.dll Version 1.600 oder höher unter Windows XP

Weitere Informationen

Zwischenspeichern

OPENTYPE_TAG

SCRIPT_ANALYSIS

SCRIPT_CACHE

ScriptItemizeOpenType

ScriptShapeOpenType

ScriptSubstituteSingleGlyph

Uniscribe

Uniscribe-Funktionen