DownlevelGetStringScripts-Funktion

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

Hinweis

Diese Funktion wird nur von Anwendungen verwendet, die unter älteren Betriebssystemen als Windows Vista ausgeführt werden. Für ihre Verwendung ist das Downloadpaket erforderlich. Anwendungen, die nur unter Windows Vista und höher ausgeführt werden, sollten GetStringScripts aufrufen.

 

Syntax

int DownlevelGetStringScripts(
  _In_  DWORD   dwFlags,
  _In_  LPCWSTR lpString,
  _In_  int     cchString,
  _Out_ LPWSTR  lpScripts,
  _In_  int     cchScripts
);

Parameter

dwFlags [in]

Flags, die Optionen für den Skriptabruf angeben

Wert Bedeutung
GSS_ALLOW_INHERITED_COMMON
Dient zum Abrufen von Skriptinformationen für „Qaii“ (INHERITED) und „Zyyy“ (COMMON). Dieser Wert wirkt sich nicht auf die Verarbeitung nicht zugewiesener Zeichen aus. Diese Zeichen in der Eingabezeichenfolge führen immer dazu, dass „Zzzz“ (UNASSIGNED-Skript) in der Skriptzeichenfolge angezeigt wird.

 

Hinweis

Standardmäßig ignoriert diese Funktion alle geerbten oder allgemeinen Zeichen in der Unicode-Eingabezeichenfolge. Wenn „GSS_ALLOW_INHERITED_COMMON“ nicht festgelegt ist, werden 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“ und/oder „Zyyy“ in der Skriptzeichenfolge angezeigt. Weitere Informationen finden Sie im Abschnitt mit den Hinweisen.

 

lpString [in]

Zeiger auf die zu analysierende Unicode-Zeichenfolge

cchString [in]

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

lpScripts [out]

Zeiger auf einen Puffer, in dem diese Funktion eine nullterminierte Zeichenfolge abruft, die eine Liste der Skripts darstellt. Dabei wird die in ISO 15924 angegebene Vier-Zeichen-Notation verwendet. Jeder Skriptname besteht aus vier lateinischen Zeichen, und die Namen werden in alphabetischer Reihenfolge abgerufen. Auf jeden Namen, einschließlich des letzten, folgt ein Semikolon.

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

cchScripts [in]

Größe in Zeichen für den Skriptpuffer, der durch lpScripts angegeben ist.

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 abschließenden NULL-Zeichens, wenn der Vorgang erfolgreich und cchScripts auf einen Wert ungleich null (0) 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 plus Trennzeichen) hinzufügt, stellt ein einfacher mathematischer Vorgang die Skriptanzahl als (return_code – 1) ÷ 5 bereit.

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

Diese Funktion gibt 0 zurück, wenn sie nicht erfolgreich ausgeführt wird. Um erweiterte Fehlerinformationen zu erhalten, kann die Anwendung GetLastError aufrufen, sodass 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 deutet in der Regel auf eine fehlerhafte Installation, ein Datenträgerproblem oder Ähnliches hin.
  • ERROR_INSUFFICIENT_BUFFER: Die angegebene Puffergröße war nicht ausreichend, oder sie wurde fälschlicherweise auf NULL festgelegt.
  • ERROR_INVALID_FLAGS: Die für Flags angegebenen Werte waren ungültig.
  • ERROR_INVALID_PARAMETER: Einer der Parameter war ungültig.

Hinweise

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

Die Skriptermittlung basiert auf den Skriptwerten, die vom Unicode Consortium in https://www.unicode.org/Public/4.1.0/ucd/Scripts.txt veröffentlicht wurden, 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;

Latin + Common

${ROWSPAN2}$Niño${REMOVE}$

004E 0069 0241 006F

${ROWSPAN2}$GSS_ALLOW_INHERITED_COMMON${REMOVE}$

${ROWSPAN2}$Latn;${REMOVE}$

${ROWSPAN2}$Latin${REMOVE}$

Uses LATIN SMALL LETTER N WITH TILDE

${ROWSPAN2}$Niño${REMOVE}$

004E 0069 006E 0303 006F

${ROWSPAN2}$GSS_ALLOW_INHERITED_COMMON${REMOVE}$

${ROWSPAN2}$Latn;Qaii;${REMOVE}$

${ROWSPAN2}$Latin + Inherited${REMOVE}$

Uses COMBINING TILDE

${ROWSPAN2}$Spооf${REMOVE}$

0053 0070 043e 043e 0066

${ROWSPAN2}$0${REMOVE}$

${ROWSPAN2}$Latn;Cyrl;${REMOVE}$

${ROWSPAN2}$Latin + Cyrillic${REMOVE}$

Uses CYRILLIC SMALL LETTER O

U+f000

0

Zzzz;

Nicht zugewiesen

U+f000

GSS_ALLOW_INHERITED_COMMON

Zzzz;

Nicht zugewiesen

 

Die erforderliche Headerdatei und die DLL-Datei sind Teil des Downloads Microsoft Internationalized Domain Name (IDN) Mitigation APIs, der unter archive.org verfügbar ist.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows Server 2003 [nur Desktop-Apps]
Verteilbar
„Microsoft Internationalized Domain Name (IDN) Mitigation APIs“ unter Windows XP (SP2 oder höher), Windows Server 2003 (SP1 oder höher) oder Windows Vista
Header
Idndl.h
DLL
Idndl.dll

Siehe auch

Unterstützung der Landessprache

Funktionen zur Unterstützung der Landessprache

Verarbeiten von internationalisierten Domänennamen (IDNs)

DownlevelGetLocaleScripts

DownlevelVerifyScripts

GetStringScripts