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 |
---|---|
|
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
Umgang mit internationalisierten Domänennamen (IDNs)