Freigeben über


GetStringTypeW-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 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 Verwendung der GetStringTypeW--Funktion kann die Sicherheit Ihrer Anwendung 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.

 

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.

Flagge Bedeutung
CT_CTYPE1
Abrufen von Zeichentypinformationen.
CT_CTYPE2
Rufen Sie bidirektionale Layoutinformationen ab.
CT_CTYPE3
Abrufen von Textverarbeitungsinformationen.

[in] lpSrcStr

Zeigen Sie auf die Unicode-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. 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.

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 vom entsprechenden GetStringTypeA Funktion verwendete Gebietsschemaparameter wird von dieser Funktion nicht verwendet. 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. Eine Anwendung kann diese Einschränkung umgehen, indem GetStringTypeExverwendet wird. Dies ist die empfohlene Funktion.

unterstützte Zeichentypen

Die Zeichentypbits sind in mehrere Ebenen unterteilt. Die Informationen für eine Ebene können von einem einzelnen Aufruf dieser Funktion abgerufen werden. Jede Ebene ist auf 16 Bits von Informationen beschränkt, sodass die anderen Zuordnungsfunktionen, die auf 16 Bit darstellung pro Zeichen beschränkt sind, auch Zeichentypinformationen zurückgeben können.

Ctype 1

Diese Typen unterstützen ANSI C- und POSIX-Zeicheneingabefunktionen (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-Ideographzeichen weisen alle das C1_ALPHA Attribut auf.

Name Wert Bedeutung
C1_UPPER 0x0001 Großschrift
C1_LOWER 0x0002 Kleingeschrieben
C1_DIGIT 0x0004 Dezimalstellen
C1_SPACE 0x0008 Leerzeichen
C1_PUNCT 0x0010 Interpunktion
C1_CNTRL 0x0020 Steuerzeichen
C1_BLANK 0x0040 Leere Zeichen
C1_XDIGIT 0x0080 Hexadezimalziffern
C1_ALPHA 0x0100 Beliebiges sprachliches Zeichen: alphabetisch, silbisch oder ideografisch
C1_DEFINED 0x0200 Ein definiertes Zeichen, jedoch keins der anderen C1_*-Typen
 

Die folgenden Zeichentypen sind entweder konstant oder aus basisformatierbaren Typen und müssen von dieser Funktion nicht unterstützt werden.

Art Beschreibung
Alphanumerisch Alphabetische Zeichen und Ziffern (C1_ALPHA und C1_DIGIT)
Druckbar Grafikzeichen und Leerzeichen (alle C1_*-Typen außer C1_CNTRL)
 

Ctype 2-

Diese Typen unterstützen das richtige Layout von Unicode-Text. Bei DBCS-Gebietsschemas gilt der Zeichentyp sowohl für schmale als auch für breite Zeichen. Die Richtungsattribute werden zugewiesen, sodass der von Unicode standardisierte bidirektionale Layoutalgorithmus genaue Ergebnisse erzeugt. Diese Typen schließen sich gegenseitig aus. Weitere Informationen zur Verwendung dieser Attribute finden Sie unter Unicode Standard.

Name Wert Bedeutung
Stark
C2_LEFTTORIGHT 0x0001 Von links nach rechts
C2_RIGHTTOLEFT 0x0002 Von rechts nach links
Schwach
C2_EUROPENUMBER 0x0003 Europäische Zahl, europäische Ziffer
C2_EUROPESEPARATOR 0x0004 Europäisches numerisches Trennzeichen
C2_EUROPETERMINATOR 0x0005 Europäischer numerischer Terminator
C2_ARABICNUMBER 0x0006 Arabische Nummer
C2_COMMONSEPARATOR 0x0007 Allgemeines numerisches Trennzeichen
Neutral
C2_BLOCKSEPARATOR 0x0008 Blocktrennzeichen
C2_SEGMENTSEPARATOR 0x0009 Segmenttrennzeichen
C2_WHITESPACE 0x000A Leerraum
C2_OTHERNEUTRAL 0x000B Andere Neutrale
Nicht zutreffend
C2_NOTAPPLICABLE 0x0000 Keine implizite Direktionalität (z. B. Steuerelementcodes)
 

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 bitweiser OR dieser Werte wird abgerufen, wenn dwInfoType- auf CT_CTYPE3 festgelegt ist. Für DBCS-Gebietsschemas gelten die Ctype 3-Attribute sowohl für schmale Zeichen als auch für breite Zeichen. Die japanischen Hiragana- und Katakana-Zeichen und die Kanji-Ideographzeichen weisen alle das C3_ALPHA Attribut auf.

Name Wert Bedeutung
C3_NONSPACING 0x0001 Zeichen ohne Pacing
C3_DIACRITIC 0x0002 Diakritische Nicht-Pacing-Markierung
C3_VOWELMARK 0x0004 Vokal-Nonspacing-Marke
C3_SYMBOL 0x0008 Symbol
C3_KATAKANA 0x0010 Katakana-Zeichen
C3_HIRAGANA 0x0020 Hiragana-Zeichen
C3_HALFWIDTH 0x0040 Zeichen halber Breite (schmal)
C3_FULLWIDTH 0x0080 Zeichen mit voller Breite (breit)
C3_IDEOGRAPH 0x0100 Ideografisches Zeichen
C3_KASHIDA 0x0200 Arabisches Kashida-Zeichen
C3_LEXICAL 0x0400 Satzzeichen, die als Teil des Worts gezählt wird (Kashida, Bindestrich, weibliche/männliche Ordinalindikatoren, Gleichheitszeichen usw.)
C3_ALPHA 0x8000 Alle sprachlichen Zeichen (alphabetisch, silbisch und ideografisch)
C3_HIGHSURROGATE 0x0800 Windows Vista: Hohe Ersatzcodeeinheit
C3_LOWSURROGATE 0x1000 Windows Vista: Low Surrogate Code Unit
Nicht zutreffend
C3_NOTAPPLICABLE 0x0000 Nicht zutreffend
 

C3_HIGHSURROGATE und C3_LOWSURROGATE werden nur für Vollständigkeit aufgeführt und sollten dieser Funktion niemals zur Verfügung gestellt 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
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

GetStringTypeA-

GetStringTypeEx-

Funktionen