VerifyScripts-Funktion (winnls.h)

Vergleicht zwei aufgezählte Skriptlisten.

Syntax

BOOL VerifyScripts(
  [in] DWORD   dwFlags,
  [in] LPCWSTR lpLocaleScripts,
  [in] int     cchLocaleScripts,
  [in] LPCWSTR lpTestScripts,
  [in] int     cchTestScripts
);

Parameter

[in] dwFlags

Flags, die Skriptüberprüfungsoptionen angeben.

Wert Bedeutung
VS_ALLOW_LATIN
Lassen Sie "Latn" (lateinische Schrift) in der Testliste zu, auch wenn sie nicht in der Gebietsschemaliste enthalten ist.

[in] lpLocaleScripts

Zeiger auf die Gebietsschemaliste, die liste der Skripts für ein bestimmtes Gebietsschema. Diese Liste wird in der Regel durch Aufrufen von GetLocaleInfoEx aufgefüllt, wobei LCType auf LOCALE_SSCRIPTS festgelegt ist.

[in] cchLocaleScripts

Größe der von lpLocaleScripts angegebenen Zeichenfolge in Zeichen. Die Anwendung legt diesen Parameter auf -1 fest, wenn die Zeichenfolge null-beendet ist. Wenn dieser Parameter auf 0 festgelegt ist, schlägt die Funktion fehl.

[in] lpTestScripts

Zeiger auf die Testliste, eine zweite aufgezählte Liste von Skripts. Diese Liste wird in der Regel durch Aufrufen von GetStringScripts aufgefüllt.

[in] cchTestScripts

Größe der von lpTestScripts angegebenen Zeichenfolge in Zeichen. Die Anwendung legt diesen Parameter auf -1 fest, wenn die Zeichenfolge null-beendet ist. Wenn dieser Parameter auf 0 festgelegt ist, schlägt die Funktion fehl.

Rückgabewert

Gibt TRUE zurück, wenn die Testliste nicht leer ist und alle Elemente in der Liste ebenfalls in der Gebietsschemaliste enthalten sind. Die Funktion gibt weiterhin TRUE zurück, wenn die Gebietsschemaliste mehr Skripts enthält als die Testliste, aber alle Testlistenskripts müssen in der Gebietsschemaliste enthalten sein. Wenn VS_ALLOW_LATIN in dwFlags angegeben ist, verhält sich die Funktion so, als ob sich "Latn;" immer in der Gebietsschemaliste befindet.

In allen anderen Fällen gibt die Funktion FALSE zurück. Diese Rückgabe kann angeben, dass die Testliste ein Element enthält, das nicht in der Gebietsschemaliste enthalten ist, oder dass sie auf einen Fehler hinweisen kann. Um zwischen diesen beiden Fällen zu unterscheiden, sollte die Anwendung GetLastError aufrufen, wodurch einer der folgenden Fehlercodes zurückgegeben werden kann:

  • ERROR_INVALID_FLAGS. Die für Flags angegebenen Werte waren ungültig.
  • ERROR_INVALID_PARAMETER. Jeder der Parameterwerte war ungültig.
  • ERROR_SUCCESS. Die Aktion wurde erfolgreich abgeschlossen, lieferte aber keine Ergebnisse.

Hinweise

Diese Funktion vergleicht Zeichenfolgen, z. B. "Latn; Cyrl;", die aus einer Reihe von 4-stelligen Skriptnamen bestehen, wobei jeder Skriptname von einem Semikolon gefolgt wird. Es hat auch einen Sonderfall, um die Tatsache zu berücksichtigen, dass die lateinische Schrift häufig in Sprachen und Gebietsschemas verwendet wird, für die sie nicht nativ ist.

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

Im Folgenden finden Sie Beispiele für die Rückgabe dieser Funktion und einen nachfolgenden Aufruf von GetLastError in verschiedenen Szenarien. Die letzten beiden Beispiele veranschaulichen jeweils einen Fall, in dem der Testliste ein beendendes Semikolon (falsch formatierte Zeichenfolge) fehlt, und einen Fall, in dem die Testliste leer ist.

Zeichenfolge des Gebietsschemas Testzeichenfolge dwFlags Rückgabewert GetLastError-Rückgabe
Hani; Hira; Kana; Hani; * TRUE (unverändert)
Hani; Hira; Kana; Hani; Latn; 0 FALSE ERROR_SUCCESS
Hani; Hira; Kana; Hani; Latn; VS_ALLOW_LATIN TRUE (unverändert)
Hani; Hira; Kana; Cyrl; * FALSE ERROR_SUCCESS
Hani; Hani; Hira; Kana; * false ERROR_SUCCESS
Hani; Hira; Kana; Cyrl * FALSE ERROR_INVALID_PARAMETER
Hani; Hira; Kana; * true (unverändert)
 
  • Die Ergebnisse sind identisch, unabhängig davon, ob VS_ALLOW_LATIN im dwFlags-Parameter übergeben wird oder keine Flags angegeben werden.

Beispiele

NLS: IdN-Entschärfungsbeispiel (Internationalized Domain Name) veranschaulicht die Verwendung dieser Funktion.

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 (einschließlich Windows.h)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

DownlevelVerifyScripts

GetLocaleInfoEx

GetStringScripts

Umgang mit internationalisierten Domänennamen (IDNs)

Unterstützung für nationale Sprachen

Nationale Sprachunterstützungsfunktionen