ScriptXtoCP-Funktion (usp10.h)
Generiert den führenden oder nachfolgenden Edge eines Clusters für logische Zeichen aus dem x-Offset einer Ausführung.
Syntax
HRESULT ScriptXtoCP(
[in] int iX,
[in] int cChars,
[in] int cGlyphs,
[in] const WORD *pwLogClust,
[in] const SCRIPT_VISATTR *psva,
[in] const int *piAdvance,
[in] const SCRIPT_ANALYSIS *psa,
[out] int *piCP,
[out] int *piTrailing
);
Parameter
[in] iX
Offset in logischen Einheiten vom Ende der Ausführung, die durch das fLogicalOrder-Element der SCRIPT_ANALYSIS Struktur angegeben wird, die durch den psa-Parameter angegeben wird.
[in] cChars
Anzahl der logischen Codepunkte in der Ausführung.
[in] cGlyphs
Anzahl der Glyphen in der Ausführung.
[in] pwLogClust
Zeiger auf ein Array logischer Cluster.
[in] psva
Zeiger auf ein Array von SCRIPT_VISATTR Strukturen, die die visuellen Attribute für die Glyphe enthalten.
[in] piAdvance
Zeiger auf ein Array mit erweiterten Breiten.
[in] psa
Zeiger auf eine SCRIPT_ANALYSIS-Struktur . Das fLogicalOrder-Element gibt TRUE an, um die führende Kante der Ausführung zu verwenden, oder FALSE , um den nachfolgenden Edge zu verwenden.
[out] piCP
Zeiger auf einen Puffer, in dem diese Funktion die Zeichenposition abruft, die der x-Koordinate entspricht.
[out] piTrailing
Zeiger auf einen Puffer, in dem diese Funktion den Abstand in Codepunkten vom führenden Rand des logischen Zeichens zur iX-Position abruft . Wenn dieser Wert 0 ist, befindet sich die iX-Position am Anfang des logischen Zeichens. Weitere Informationen finden Sie im Abschnitt mit Hinweisen.
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.
Hinweise
Die an diese Funktion übergebenen Werte sind normalerweise das Ergebnis früherer Aufrufe anderer Uniscribe-Funktionen. Weitere Informationen finden Sie unter Verwalten von Caret Placement und Treffertests .
Die vor- und nachgestellten Kanten des logischen Zeichens werden durch die Textrichtung in der Ausführung (von links nach rechts oder von rechts nach links) bestimmt. Für die Richtung von links nach rechts ist der führende Rand mit dem linken Rand identisch. Für die Rechts-nach-Links-Richtung ist die führende Kante der rechte Rand.
Für Skripts, in denen das Caret konventionell in der Mitte eines Clusters platziert wird, z. B. Arabisch und Hebräisch, kann die abgerufene Zeichenposition für jeden Codepunkt in der Zeile sein. In diesem Fall ist der piTrailing-Parameter entweder auf 0 oder 1 festgelegt.
Bei Skripts, in denen das Caret konventionell an die Grenzen eines Clusters angeknockt wird, ist die abgerufene Zeichenposition immer die Position des ersten Codepunkts in einem Cluster (logisch betrachtet). Der piTrailing-Parameter ist auf 0 oder auf die Anzahl der Codepunkte im Cluster festgelegt.
Die passende Caretposition für einen Maustreffer ist immer die abgerufene Zeichenposition plus der durch piTrailing angegebenen Entfernung.
Wenn iX eine Position außerhalb der Ausführung angibt, verhält sich ScriptXtoCP so, als ob sich hinter jedem Ende der Ausführung ein extra unendlich großes Zeichen befindet. Dies führt zu dem in der folgenden Tabelle gezeigten Verhalten.
iX-Position (außerhalb der Ausführung) | Ergebnis |
---|---|
Vor der Ausführung, d. h. iX< 0, wenn die Ausführung von links nach rechts ist, oder iX>= Summe der Fortschritte, wenn die Ausführung von rechts nach links ist | Der Wert von piCP ist -1 und der Wert von piTrailing ist 0. |
Nach der Ausführung, d. h. iX>= Summe der Fortschritte, wenn die Ausführung von links nach rechts erfolgt, oder iX< 0, wenn die Ausführung von rechts nach links ist | Der Wert von piCP ist der Wert von cChars und der Wert von piTrailing ist 1. |
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 |
Verteilbare Komponente | Internet Explorer 5 oder höher unter Windows Me/98/95 |