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.
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 |