Freigeben über


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.

Vorsicht Die falsche Verwendung der GetStringTypeW-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.

 

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
CT_CTYPE1
Abrufen von Zeichentypinformationen.
CT_CTYPE2
Abrufen bidirektionaler Layoutinformationen.
CT_CTYPE3
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

Siehe auch

GetStringTypeA

GetStringTypeEx

Unterstützung für landessprachliche Sprachen

Unterstützungsfunktionen für nationalsprachliche Sprachen