Freigeben über


ScriptPlace-Funktion (usp10.h)

Generiert Glyphenvorrückungsbreite und zweidimensionale Offsetinformationen aus der Ausgabe von ScriptShape.

Syntax

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
);

Parameter

[in] hdc

Optional. Handle mit dem Gerätekontext. Weitere Informationen finden Sie unter Zwischenspeichern.

[in, out] psc

Zeiger auf eine SCRIPT_CACHE Struktur, die den Skriptcache identifiziert.

[in] pwGlyphs

Zeiger auf einen Glyphenpuffer, der aus einem früheren Aufruf der ScriptShape-Funktion abgerufen wurde.

[in] cGlyphs

Anzahl der Glyphen im Glyphenpuffer.

[in] psva

Zeiger auf ein Array von SCRIPT_VISATTR Strukturen, die visuelle Attribute angeben.

[in, out] psa

Zeiger auf eine SCRIPT_ANALYSIS-Struktur . Bei der Eingabe wird diese Struktur aus einem vorherigen Aufruf von ScriptItemize abgerufen. In der Ausgabe enthält diese Struktur Werte, die von ScriptPlace abgerufen werden.

[out] piAdvance

Zeiger auf ein Array, in dem diese Funktion Informationen zur erweiterten Breite abruft.

[out] pGoffset

Optional. Zeiger auf ein Array von GOFFSET-Strukturen , in dem diese Funktion die x- und y-Offsets der Kombination von Glyphen abruft. Dieses Array muss von der Länge sein, die durch cGlyphen angegeben wird.

[out] pABC

Zeiger auf eine ABC-Struktur , in der diese Funktion die ABC-Breite für die gesamte Ausführung abruft.

Rückgabewert

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

Die Funktion gibt E_PENDING zurück, wenn der vom psc-Parameter angegebene Skriptcache nicht genügend Informationen enthält, um die Glyphen zu platzieren, und der hdc-Parameter auf NULL festgelegt ist, sodass die Funktion den Platzierungsprozess nicht abschließen kann. Die Anwendung sollte einen richtigen Gerätekontext für die Ausführung einrichten und diese Funktion erneut mit dem entsprechenden Gerätekontext und mit allen anderen Parametern aufrufen.

Hinweise

Eine Diskussion über den Kontext, in dem diese Funktion normalerweise aufgerufen wird, finden Sie unter Anzeigen von Text mit Uniscribe .

Die zusammengesetzte ABC-Breite für das gesamte Element gibt an, wie stark die Glyphen links von der Startposition und rechts von der Länge überhängen , die durch die Summe der Vorlaufbreiten impliziert wird. Die gesamte Vorlaufbreite der Linie ist genau abcA+abcB+abcC. Die AbcA- und abcC-Werte werden als Anteile der Zellenhöhe beibehalten, die in 8 Bits dargestellt wird und somit ungefähr +/-1 Prozent betragen. Die abgerufene Gesamtbreite, d. h. die Summe der von piAdvance angegebenen abcA+abcB+abcC-Werte, entspricht der Auflösung der TrueType-Shaping-Engine.

Alle Arrays befinden sich in visueller Reihenfolge, es sei denn, das fLogicalOrder-Element wird in der durch den psa-Parameter angegebenen SCRIPT_ANALYSIS Struktur festgelegt.

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 seiner Bibliotheksliste angeben.
 

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile usp10.h
Bibliothek Usp10.lib
DLL Usp10.dll

Weitere Informationen

Anzeigen von Text mit Uniscribe

GOFFSET

SCRIPT_ANALYSIS

SCRIPT_CACHE

SCRIPT_VISATTR

ScriptItemize

ScriptPlaceOpenType

ScriptShape

Uniscribe

Uniscribe Functions