Freigeben über


GetStringTypeExW-Funktion (stringapiset.h)

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 falsche Verwendung der GetStringTypeEx-Funktion kann die Sicherheit Ihrer Anwendung gefährden. 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 ihren engen Verwandten GetStringTypeA und GetStringTypeW weist diese Funktion durch die Verwendung des #define UNICODE-Schalters ein geeignetes ANSI- oder Unicode-Verhalten auf. Dies ist die empfohlene Funktion für das Abrufen 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

Gebietsschemabezeichner , der das Gebietsschema angibt. Dieser Wert definiert eindeutig die ANSI-Codepage. 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 Gebietsschemabezeichner 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 unter Hinweise zu GetStringTypeW.

[in] lpSrcStr

Zeiger auf die Zeichenfolge, für die die Zeichentypen abgerufen werden sollen. Es wird davon ausgegangen, dass die Zeichenfolge null-beendet ist, wenn cchSrc auf einen beliebigen negativen Wert festgelegt ist.

[in] cchSrc

Größe der von lpSrcStr. angegebenen 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 beendendes NULL-Zeichen enthält, ruft die Funktion Zeichentypinformationen für dieses Zeichen ab. Wenn die Anwendung die Größe auf eine beliebige negative ganze Zahl festlegt, wird angenommen, dass die Quellzeichenfolge null-beendet ist, und die Funktion berechnet die Größe automatisch mit einem zusätzlichen Zeichen für die NULL-Beendigung.

[out] lpCharType

Zeiger 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ückgibt, enthält dieses Array ein Wort, das jedem Zeichen in der Quellzeichenfolge entspricht.

Rückgabewert

Gibt bei erfolgreicher Ausführung einen wert ungleichen Wert zurück, andernfalls 0. Um erweiterte Fehlerinformationen abzurufen, kann 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.

Hinweise

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

Mithilfe der ANSI-Codepage 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 ihrer Unicode-Entsprechung. Die Konvertierung von ANSI zu 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 Korrespondenz zwischen den Wörtern im Ausgabepuffer und den Zeichen in der ursprünglichen ANSI-Zeichenfolge nicht in allen Fällen eins zu 1, z. B. Multibytezeichenfolgen. Daher ist die ANSI-Version dieser Funktion für mehrstellige Zeichenfolgen von eingeschränkter Verwendung. Stattdessen wird die Unicode-Version der Funktion empfohlen.

Diese Funktion umgeht eine Einschränkung, die durch den Unterschied in den Parametern zwischen GetStringTypeA und GetStringTypeW verursacht wird. Aufgrund des Parameterunterschieds kann eine Anwendung nicht automatisch die richtige ANSI- oder Unicode-Version einer GetStringType* -Funktion durch die Verwendung des #define UNICODE-Schalters aufrufen. Andererseits verhält sich GetStringTypeEx in Bezug auf diesen Switch ordnungsgemäß. Daher ist es die empfohlene Funktion.

Wenn die ANSI-Version dieser Funktion mit einem reinen Unicode-Gebietsschemabezeichner verwendet wird, kann die Funktion erfolgreich sein, da das Betriebssystem die Systemcodepage verwendet. Zeichen, die auf der Systemcodepage 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_PARAMETER fehl.

Der Gebietsschemaparameter wird nur verwendet, um eine Zeichenfolgenkonvertierung in Unicode durchzuführen. Es hat nichts mit den CTYPE*-Werten zu tun, die von der Anwendung bereitgestellt werden. Diese Werte werden ausschließlich durch Unicode-Codepunkte bestimmt und variieren nicht je nach Gebietsschema. Beispielsweise werden griechische Buchstaben als C1_ALPHA für jeden Wert von Gebietsschema angegeben.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 2000 Professional [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile stringapiset.h (einschließlich Windows.h)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

GetStringTypeW

Unterstützung für nationale Sprachen

Nationale Sprachunterstützungsfunktionen