GetStringScripts-Funktion (winnls.h)

Stellt eine Liste der Skripts bereit, die in der angegebenen Unicode-Zeichenfolge verwendet werden.

Syntax

int GetStringScripts(
  [in]            DWORD   dwFlags,
  [in]            LPCWSTR lpString,
  [in]            int     cchString,
  [out, optional] LPWSTR  lpScripts,
  [in]            int     cchScripts
);

Parameter

[in] dwFlags

Flags, die Optionen für den Skriptabruf angeben.

Wert Bedeutung
GSS_ALLOW_INHERITED_COMMON
Rufen Sie die Skriptinformationen "Qaii" (GEERBT) und "Zyyy" (COMMON) ab. Dieses Flag wirkt sich nicht auf die Verarbeitung nicht zugewiesener Zeichen aus. Diese Zeichen in der Eingabezeichenfolge führen immer dazu, dass ein "Zzzz" (UNASSIGNED-Skript) in der Skriptzeichenfolge angezeigt wird.
 
Hinweis Standardmäßig ignoriert GetStringScripts alle geerbten oder allgemeinen Zeichen in der eingabezeichenfolge, die von lpString angegeben wird. Wenn GSS_ALLOW_INHERITED_COMMON nicht festgelegt ist, wird weder "Qaii" noch "Zyyy" in der Skriptzeichenfolge angezeigt, auch wenn die Eingabezeichenfolge solche Zeichen enthält. Wenn GSS_ALLOW_INHERITED_COMMON festgelegt ist und die Eingabezeichenfolge geerbte und/oder allgemeine Zeichen enthält, werden "Qaii" bzw. "Zyyy" in der Skriptzeichenfolge angezeigt. Weitere Informationen finden Sie im Abschnitt mit den Hinweisen.
 

[in] lpString

Zeiger auf die zu analysierende Unicode-Zeichenfolge.

[in] cchString

Größe in Zeichen der unicode-Zeichenfolge, die von lpString angegeben wird. Die Anwendung legt diesen Parameter auf -1 fest, wenn die Unicode-Zeichenfolge NULL-beendet ist. Wenn die Anwendung diesen Parameter auf 0 festlegt, ruft die Funktion eine UNICODE-NULL-Zeichenfolge (L"\0") in lpScripts ab und gibt 1 zurück.

[out, optional] lpScripts

Zeiger auf einen Puffer, in dem diese Funktion eine NULL-Zeichenfolge abruft, die eine Liste von Skripts darstellt, wobei die in ISO 15924 verwendete 4-Zeichen-Notation verwendet wird. Jeder Skriptname besteht aus vier lateinischen Zeichen, und die Namen werden in alphabetischer Reihenfolge abgerufen. Jedem Namen, einschließlich des letzten, folgt ein Semikolon.

Alternativ enthält dieser Parameter NULL , wenn cchScripts auf 0 festgelegt ist. In diesem Fall gibt die Funktion die erforderliche Größe für den Skriptpuffer zurück.

[in] cchScripts

Größe des Skriptpuffers, der von lpScripts angegeben wird, in Zeichen.

Alternativ kann die Anwendung diesen Parameter auf 0 festlegen. In diesem Fall ruft die Funktion NULL in lpScripts ab und gibt die erforderliche Größe für den Skriptpuffer zurück.

Rückgabewert

Gibt die Anzahl der im Ausgabepuffer abgerufenen Zeichen zurück, einschließlich eines beendenden NULL-Zeichens, wenn erfolgreich und cchScripts auf einen Nonzero-Wert festgelegt ist. Die Funktion gibt 1 zurück, um anzugeben, dass kein Skript gefunden wurde, z. B. wenn die Eingabezeichenfolge nur COMMON- oder INHERITED-Zeichen enthält und GSS_ALLOW_INHERITED_COMMON nicht festgelegt ist. Da jedes gefundene Skript fünf Zeichen (vier Zeichen + Trennzeichen) hinzufügt, stellt ein einfacher mathematischer Vorgang die Skriptanzahl als (return_code - 1) / 5 bereit.

Wenn die Funktion erfolgreich ist und der Wert von cchScripts 0 ist, gibt die Funktion die erforderliche Größe in Zeichen zurück, einschließlich eines beendenden NULL-Zeichens, für den Skriptpuffer. Die Skriptanzahl ist wie oben beschrieben.

Diese Funktion gibt 0 zurück, wenn sie nicht erfolgreich ist. Um erweiterte Fehlerinformationen abzurufen, kann die Anwendung GetLastError aufrufen, wodurch einer der folgenden Fehlercodes zurückgegeben werden kann:

  • ERROR_BADDB. Die Funktion konnte nicht auf die Daten zugreifen. Diese Situation sollte normalerweise nicht auftreten und weist in der Regel auf eine fehlerhafte Installation, ein Datenträgerproblem oder ähnliches hin.
  • ERROR_INSUFFICIENT_BUFFER. Eine angegebene Puffergröße war nicht groß genug, oder sie wurde fälschlicherweise auf NULL festgelegt.
  • ERROR_INVALID_FLAGS. Die für Flags angegebenen Werte waren ungültig.
  • ERROR_INVALID_PARAMETER. Jeder der Parameterwerte war ungültig.

Hinweise

Diese Funktion ist als Teil einer Strategie nützlich, um Sicherheitsprobleme im Zusammenhang mit internationalisierten Domänennamen (IDNs) zu beheben.

Die Skriptermittlung basiert auf den Skriptwerten, die vom Unicode-Konsortium in http://www.unicode.org/Public/4.1.0/ucd/Scripts.txtveröffentlicht werden, mit dem Unterschied, dass die nicht zugewiesenen Zeichen den Wert "Zzzz" (UNASSIGNED) anstelle von "Zyyy" (COMMON) aufweisen.

Hier sind einige Beispiele für das Verhalten dieser Funktion:

Eingabezeichenfolge dwFlags lpScripts Skripts
Microsoft.com 0 Latn; Lateinisch
Microsoft.com GSS_ALLOW_INHERITED_COMMON Latn; Zyyy; Lateinisch + Allgemein
Niño 004E 0069 0241 006F GSS_ALLOW_INHERITED_COMMON Latn; Lateinisch
VERWENDET LATEINISCHEN KLEINBUCHSTABEN N MIT TILDE
Niño 004E 0069 006E 0303 006F GSS_ALLOW_INHERITED_COMMON Latn; Qaii; Lateinisch + geerbt
Verwendet COMBINING TILDE
Spооf 0053 0070 043e 043e 0066 0 Latn; Cyrl; Lateinisch + Kyrillisch
Verwendet CYRILLIC SMALL LETTER O
U+f000 0 Zzzz; Nicht zugewiesen
U+f000 GSS_ALLOW_INHERITED_COMMON Zzzz; Nicht zugewiesen

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile winnls.h (windows.h einschließen)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

DownlevelGetStringScripts

Umgang mit internationalisierten Domänennamen (IDNs)

Unterstützung für landessprachliche Sprachen

Unterstützungsfunktionen für nationalsprachliche Sprachen

VerifyScripts