GetStringTypeW-Funktion (stringapiset.h)
Ruft Zeichentypinformationen für die Zeichen in der angegebenen Unicode-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 GetStringTypeW(
[in] DWORD dwInfoType,
[in] _In_NLS_string_(cchSrc)LPCWCH lpSrcStr,
[in] int cchSrc,
[out] LPWORD lpCharType
);
Parameter
[in] dwInfoType
Flags, die die abzurufenden Zeichentypinformationen angeben. Dieser Parameter kann die folgenden Werte aufweisen. Die Zeichentypen sind in verschiedene Ebenen unterteilt, wie im Abschnitt Hinweise beschrieben.
Flag | Bedeutung |
---|---|
|
Abrufen von Zeichentypinformationen. |
|
Abrufen bidirektionaler Layoutinformationen. |
|
Abrufen von Textverarbeitungsinformationen. |
[in] lpSrcStr
Zeiger auf die Unicode-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 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.
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 , der von der entsprechenden GetStringTypeA-Funktion verwendet wird, wird von dieser Funktion nicht verwendet. 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. Eine Anwendung kann diese Einschränkung umgehen, indem sie GetStringTypeEx verwendet, die empfohlene Funktion.
Unterstützte Zeichentypen
Die Zeichentypbits sind in mehrere Ebenen unterteilt. Die Informationen für eine Ebene können durch einen einzelnen Aufruf dieser Funktion abgerufen werden. Jede Ebene ist auf 16 Bits an Informationen beschränkt, sodass die anderen Zuordnungsfunktionen, die auf 16 Bits der Darstellung pro Zeichen beschränkt sind, auch Zeichentypinformationen zurückgeben können.
Ctyp 1
Diese Typen unterstützen die Zeicheneingabefunktionen ANSI C und POSIX (LC_CTYPE). Ein bitweiser OR dieser Werte wird im Array im Ausgabepuffer abgerufen, wenn dwInfoType auf CT_CTYPE1 festgelegt ist. Für DBCS-Gebietsschemas gelten die Typattribute sowohl für schmale Zeichen als auch für breite Zeichen. Die japanischen Hiragana- und Katakana-Zeichen und die Kanji-Ideographen haben alle das attribut C1_ALPHA.
Name | Wert | Bedeutung |
---|---|---|
C1_UPPER | 0x0001 | Großbuchstaben |
C1_LOWER | 0x0002 | Kleinbuchstaben |
C1_DIGIT | 0x0004 | Dezimalzahlen |
C1_SPACE | 0x0008 | Leerzeichen |
C1_PUNCT | 0x0010 | Interpunktion |
C1_CNTRL | 0x0020 | Steuerzeichen |
C1_BLANK | 0x0040 | Leere Zeichen |
C1_XDIGIT | 0x0080 | Hexadezimalstellen |
C1_ALPHA | 0x0100 | Beliebige linguistische Zeichen: alphabetisch, silbenhaft oder ideografisch |
C1_DEFINED | 0x0200 | Ein definiertes Zeichen, aber nicht einer der anderen C1_*-Typen |
Die folgenden Zeichentypen sind entweder konstant oder aus Basistypen berechenbar und müssen von dieser Funktion nicht unterstützt werden.
Typ | BESCHREIBUNG |
---|---|
Alphanumerisch | Alphabetische Zeichen und Ziffern (C1_ALPHA und C1_DIGIT) |
Druckbar | Grafische Zeichen und Leerzeichen (alle C1_*-Typen außer C1_CNTRL) |
Ctyp 2
Diese Typen unterstützen das richtige Layout von Unicode-Text. Für DBCS-Gebietsschemas gilt der Zeichentyp sowohl für schmale als auch für breite Zeichen. Die Richtungsattribute werden zugewiesen, sodass der bidirektionale Layoutalgorithmus, der von Unicode standardisiert ist, genaue Ergebnisse erzeugt. Diese Typen schließen sich gegenseitig aus. Weitere Informationen zur Verwendung dieser Attribute finden Sie unter Der Unicode-Standard.
Name | Wert | Bedeutung |
---|---|---|
STARK (Strong) | ||
C2_LEFTTORIGHT | 0x0001 | Von links nach rechts |
C2_RIGHTTOLEFT | 0x0002 | Von rechts nach links |
Schwach | ||
C2_EUROPENUMBER | 0x0003 | Europäische Nummer, europäische Ziffer |
C2_EUROPESEPARATOR | 0x0004 | Europäisches numerisches Trennzeichen |
C2_EUROPETERMINATOR | 0x0005 | Europäisches numerisches Abschlusszeichen |
C2_ARABICNUMBER | 0x0006 | Arabische Nummer |
C2_COMMONSEPARATOR | 0x0007 | Allgemeines numerisches Trennzeichen |
Neutral | ||
C2_BLOCKSEPARATOR | 0x0008 | Blocktrennzeichen |
C2_SEGMENTSEPARATOR | 0x0009 | Segmenttrennzeichen |
C2_WHITESPACE | 0x000A | Leerzeichen |
C2_OTHERNEUTRAL | 0x000B | Andere neutrale |
Nicht zutreffend | ||
C2_NOTAPPLICABLE | 0x0000 | Keine implizite Direktionalität (z. B. Steuercodes) |
Ctype 3
Diese Typen sollen Platzhalter für Erweiterungen der POSIX-Typen sein, die für die allgemeine Textverarbeitung oder für die Standardmäßigen C-Bibliotheksfunktionen erforderlich sind. Ein bitweises OR dieser Werte wird abgerufen, wenn dwInfoType auf CT_CTYPE3 festgelegt ist. Für DBCS-Gebietsschemas gelten die Ctype 3-Attribute sowohl für Schmalzeichen als auch für Breitzeichen. Die japanischen Hiragana- und Katakana-Zeichen und die Kanji-Ideographen haben alle das attribut C3_ALPHA.
Name | Wert | Bedeutung |
---|---|---|
C3_NONSPACING | 0x0001 | Nonspacing-Markierung |
C3_DIACRITIC | 0x0002 | Diakritisches Zeichen ohne Strich |
C3_VOWELMARK | 0x0004 | Vokal-Nonspacing-Markierung |
C3_SYMBOL | 0x0008 | Symbol |
C3_KATAKANA | 0x0010 | Katakana-Zeichen |
C3_HIRAGANA | 0x0020 | Hiragana-Zeichen |
C3_HALFWIDTH | 0x0040 | Zeichen mit halber Breite (schmal) |
C3_FULLWIDTH | 0x0080 | Zeichen mit voller Breite (breit) |
C3_IDEOGRAPH | 0x0100 | Ideografisches Zeichen |
C3_KASHIDA | 0x0200 | Arabische Kashida-Zeichen |
C3_LEXICAL | 0x0400 | Interpunktion, die als Teil des Worts gezählt wird (Kashida, Bindestrich, weibliche/männliche Ordnungsindikatoren, Gleichheitszeichen usw.) |
C3_ALPHA | 0x8000 | Alle linguistischen Zeichen (alphabetisch, silbisch und ideografisch) |
C3_HIGHSURROGATE | 0x0800 | Windows Vista: Hohe Ersatzcodeeinheit |
C3_LOWSURROGATE | 0x1000 | Windows Vista: Niedrige Ersatzzeichencodeeinheit |
Nicht zutreffend | ||
C3_NOTAPPLICABLE | 0x0000 | Nicht zutreffend |
C3_HIGHSURROGATE und C3_LOWSURROGATE werden nur aus Gründen der Vollständigkeit aufgeführt und sollten niemals für diese Funktion bereitgestellt werden. Sie sind nur für Unicode relevant.
Ab Windows 8: GetStringTypeW wird in Stringapiset.h deklariert. Vor Windows 8 wurde sie in Winnls.h deklariert.
Anforderungen
Anforderung | Wert |
---|---|
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ßen von Windows.h) |
Bibliothek | Kernel32.lib |
DLL | Kernel32.dll |