Freigeben über


GetStringTypeExW-Funktion (stringapiset.h)

Anmerkung

Diese API enthält möglicherweise unvollständige/veraltete Informationen für bestimmte Unicode-Zeichen, insbesondere solche im ergänzenden Bereich. Für genauere und umfassendere Unicode-Zeichentypinformationen sollten Sie entsprechende ICU-APIs wie u_charType, u_islower, u_isspaceund u_ispunctverwenden. Anleitungen zur Verwendung von ICU-APIs unter Windows finden Sie unter Erste Schritte mit ICU unter Windows.

Ruft Zeichentypinformationen für die Zeichen in der angegebenen Quellzeichenfolge ab. Für jedes Zeichen in der Zeichenfolge legt die Funktion ein oder mehrere Bits im entsprechenden 16-Bit-Element des Ausgabearrays fest. Jedes Bit identifiziert einen bestimmten Zeichentyp, z. B. Buchstaben, Ziffern oder keines.

Vorsicht Die Verwendung der GetStringTypeEx-Funktion kann die Sicherheit Ihrer Anwendung falsch beeinträchtigen. Um einen Pufferüberlauf zu vermeiden, muss die Anwendung die Ausgabepuffergröße richtig festlegen. Weitere Sicherheitsinformationen finden Sie unter Sicherheitsüberlegungen: Windows-Benutzeroberfläche.
 
Hinweis Im Gegensatz zu den schließenden Relativen GetStringTypeA und GetStringTypeWzeigt diese Funktion über die Verwendung des #define UNICODE-Schalters geeignetes ANSI- oder Unicode-Verhalten an. Dies ist die empfohlene Funktion für den Abruf von Zeichentypen.
 

Syntax

BOOL GetStringTypeExW(
  [in]  LCID                          Locale,
  [in]  DWORD                         dwInfoType,
  [in]  _In_NLS_string_(cchSrc)LPCWCH lpSrcStr,
  [in]  int                           cchSrc,
  [out] LPWORD                        lpCharType
);

Parameter

[in] Locale

Gebietsschema-ID, die das Gebietsschema angibt. Dieser Wert definiert eindeutig die ANSI-Codeseite. Sie können das MAKELCID Makro verwenden, um einen Gebietsschemabezeichner zu erstellen oder einen der folgenden vordefinierten Werte zu verwenden.

Windows Vista und höher: Die folgenden benutzerdefinierten Gebietsschema-IDs werden ebenfalls unterstützt.

[in] dwInfoType

Flags, die die abzurufenden Zeichentypinformationen angeben. Mögliche Flagwerte finden Sie im dwInfoType Parameter von GetStringTypeW. Ausführliche Informationen zu den Zeichentypbits finden Sie in den Hinweisen für GetStringTypeW-.

[in] lpSrcStr

Zeigen Sie auf die Zeichenfolge, für die die Zeichentypen abgerufen werden sollen. Die Zeichenfolge wird als NULL-terminiert angenommen, wenn cchSrc- auf einen negativen Wert festgelegt ist.

[in] cchSrc

Größe der durch lpSrcStrangegebenen Zeichenfolge in Zeichen. Die Größe bezieht sich auf Bytes für die ANSI-Version der Funktion oder breite Zeichen für die Unicode-Version. Wenn die Größe ein endendes NULL-Zeichen enthält, ruft die Funktion Zeichentypinformationen für dieses Zeichen ab. Wenn die Anwendung die Größe auf eine negative ganze Zahl festlegt, wird davon ausgegangen, dass die Quellzeichenfolge NULL beendet wird und die Funktion die Größe automatisch mit einem zusätzlichen Zeichen für die NULL-Beendigung berechnet.

[out] lpCharType

Zeigen Sie auf ein Array mit 16-Bit-Werten. Die Länge dieses Arrays muss groß genug sein, um einen 16-Bit-Wert für jedes Zeichen in der Quellzeichenfolge zu erhalten. Wenn cchSrc keine negative Zahl ist, sollte lpCharType- ein Array von Wörtern mit cchSrc Elementen sein. Wenn cchSrc- auf eine negative Zahl festgelegt ist, ist lpCharType- ein Array von Wörtern mit lpSrcStr + 1 Elementen. Wenn die Funktion zurückgegeben wird, enthält dieses Array ein Wort, das jedem Zeichen in der Quellzeichenfolge entspricht.

Rückgabewert

Gibt einen Wert ungleich Null zurück, wenn dies erfolgreich war, oder 0 andernfalls. Um erweiterte Fehlerinformationen zu erhalten, kann die Anwendung GetLastErroraufrufen, wodurch eine der folgenden Fehlercodes zurückgegeben werden kann:

  • ERROR_INVALID_FLAGS. Die für Flags angegebenen Werte waren ungültig.
  • ERROR_INVALID_PARAMETER. Ungültige Parameterwerte.

Bemerkungen

Eine Übersicht über die Verwendung der Zeichenfolgenfunktionen finden Sie unter Strings.

Mithilfe der ANSI-Codeseite für das angegebene Gebietsschema übersetzt diese Funktion die Quellzeichenfolge von ANSI in Unicode. Anschließend wird jedes Unicode-Zeichen auf Zeichentypinformationen analysiert.

Die ANSI-Version dieser Funktion konvertiert die Quellzeichenfolge in Unicode und ruft die entsprechende GetStringTypeW--Funktion auf. Daher entsprechen die Wörter im Ausgabepuffer nicht der ursprünglichen ANSI-Zeichenfolge, sondern dem Unicode-Äquivalent. Die Konvertierung von ANSI in Unicode kann zu einer Änderung der Zeichenfolgenlänge führen, z. B. kann ein ANSI-Zeichenpaar einem einzelnen Unicode-Zeichen zugeordnet werden. Daher ist die Entsprechung zwischen den Wörtern im Ausgabepuffer und den Zeichen in der ursprünglichen ANSI-Zeichenfolge in allen Fällen nicht 1:1 in allen Fällen, z. B. Multibyte-Zeichenfolgen. Daher ist die ANSI-Version dieser Funktion für mehrstellige Zeichenfolgen eingeschränkt. Stattdessen wird die Unicode-Version der Funktion empfohlen.

Diese Funktion umgeht eine Einschränkung, die durch den Unterschied zwischen parametern zwischen GetStringTypeA und GetStringTypeWverursacht wird. Aufgrund des Parameterunterschieds kann eine Anwendung nicht automatisch die richtige ANSI- oder Unicode-Version einer GetStringType*--Funktion über die Verwendung der #define UNICODE-Switch aufrufen. Andererseits verhält sich GetStringTypeExim Hinblick auf diesen Schalter richtig. Daher ist es die empfohlene Funktion.

Wenn die ANSI-Version dieser Funktion mit einem Nur-Unicode-Gebietsschemabezeichner verwendet wird, kann die Funktion erfolgreich sein, da das Betriebssystem die Systemcodepage verwendet. Zeichen, die auf der Systemcodeseite nicht definiert sind, werden jedoch in der Zeichenfolge als Fragezeichen (?) angezeigt.

Die Werte der parameter lpSrcStr und lpCharType dürfen nicht identisch sein. Wenn sie identisch sind, schlägt die Funktion mit ERROR_INVALID_PARAMETERfehl.

Der parameter Gebietsschema- wird nur zum Ausführen der Zeichenfolgenkonvertierung in Unicode verwendet. Sie hat nichts mit den von der Anwendung bereitgestellten CTYPE*-Werten zu tun. Diese Werte werden ausschließlich von Unicode-Codepunkten bestimmt und variieren nicht auf Gebietsschemabasis. Beispielsweise werden griechische Buchstaben als C1_ALPHA für jeden Wert von Gebietsschema-angegeben.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 2000 Professional [Desktop-Apps | UWP-Apps]
mindestens unterstützte Server- Windows 2000 Server [Desktop-Apps | UWP-Apps]
Zielplattform- Fenster
Header- stringapiset.h (include Windows.h)
Library Kernel32.lib
DLL- Kernel32.dll

Siehe auch

GetStringTypeW-

Funktionen