Função GetStringTypeW (stringapiset.h)
Nota
Essa API pode ter informações incompletas/desatualizadas para determinados caracteres Unicode, especialmente aqueles no intervalo suplementar. Para obter informações de tipo de caractere Unicode mais precisas e abrangentes, considere o uso de APIs de UTI equivalentes, como u_charType, u_islower, u_isspacee u_ispunct. Para obter diretrizes sobre como usar APIs de UTI no Windows, consulte Introdução à UTI no Windows.
Recupera informações de tipo de caractere para os caracteres na cadeia de caracteres de origem Unicode especificada. Para cada caractere na cadeia de caracteres, a função define um ou mais bits no elemento de 16 bits correspondente da matriz de saída. Cada bit identifica um determinado tipo de caractere, por exemplo, letra, dígito ou nenhum deles.
Sintaxe
BOOL GetStringTypeW(
[in] DWORD dwInfoType,
[in] _In_NLS_string_(cchSrc)LPCWCH lpSrcStr,
[in] int cchSrc,
[out] LPWORD lpCharType
);
Parâmetros
[in] dwInfoType
Sinalizadores especificando as informações de tipo de caractere a serem recuperadas. Esse parâmetro pode ter os seguintes valores. Os tipos de caractere são divididos em diferentes níveis, conforme descrito na seção Comentários.
Bandeira | Significado |
---|---|
|
Recuperar informações de tipo de caractere. |
|
Recuperar informações de layout bidirecional. |
|
Recuperar informações de processamento de texto. |
[in] lpSrcStr
Ponteiro para a cadeia de caracteres Unicode para a qual recuperar os tipos de caractere. Supõe-se que a cadeia de caracteres seja terminada em nulo se cchSrc for definido como qualquer valor negativo.
[in] cchSrc
Tamanho, em caracteres, da cadeia de caracteres indicada por lpSrcStr. Se o tamanho incluir um caractere nulo de encerramento, a função recuperará informações de tipo de caractere para esse caractere. Se o aplicativo definir o tamanho como qualquer inteiro negativo, a cadeia de caracteres de origem será considerada terminada em nulo e a função calculará o tamanho automaticamente com um caractere adicional para a terminação nula.
[out] lpCharType
Ponteiro para uma matriz de valores de 16 bits. O comprimento dessa matriz deve ser grande o suficiente para receber um valor de 16 bits para cada caractere na cadeia de caracteres de origem. Se
Valor de retorno
Retorna um valor diferente de zero se tiver êxito ou 0 de outra forma. Para obter informações de erro estendidas, o aplicativo pode chamar GetLastError, que pode retornar um dos seguintes códigos de erro:
- ERROR_INVALID_FLAGS. Os valores fornecidos para sinalizadores não eram válidos.
- ERROR_INVALID_PARAMETER. Qualquer um dos valores de parâmetro era inválido.
Observações
Para obter uma visão geral do uso das funções de cadeia de caracteres, consulte Strings.
Os valores dos parâmetros lpSrcStr
O parâmetro localidade
tipos de caracteres com suporte
Os bits de tipo de caractere são divididos em vários níveis. As informações de um nível podem ser recuperadas por uma única chamada para essa função. Cada nível é limitado a 16 bits de informações para que as outras funções de mapeamento, limitadas a 16 bits de representação por caractere, também possam retornar informações de tipo de caractere.
Ctype 1
Esses tipos dão suporte a funções de digitação de caracteres ANSI C e POSIX (LC_CTYPE). Um OR bit a bit desses valores é recuperado na matriz no buffer de saída quando dwInfoType é definido como CT_CTYPE1. Para localidades DBCS, os atributos de tipo se aplicam a caracteres estreitos e caracteres largos. Os caracteres hiragana e katakana japoneses e os caracteres ideógrafos kanji têm o atributo C1_ALPHA.
Nome | Valor | Significado |
---|---|---|
C1_UPPER | 0x0001 | Maiúscula |
C1_LOWER | 0x0002 | Minúsculo |
C1_DIGIT | 0x0004 | Dígitos decimais |
C1_SPACE | 0x0008 | Caracteres de espaço |
C1_PUNCT | 0x0010 | Pontuação |
C1_CNTRL | 0x0020 | Caracteres de controle |
C1_BLANK | 0x0040 | Caracteres em branco |
C1_XDIGIT | 0x0080 | Dígitos hexadecimal |
C1_ALPHA | 0x0100 | Qualquer caractere linguístico: alfabético, syllabary ou ideográfico |
C1_DEFINED | 0x0200 | Um caractere definido, mas não um dos outros tipos de C1_* |
Os tipos de caractere a seguir são constantes ou computáveis de tipos básicos e não precisam ter suporte nessa função.
Tipo | Descrição |
---|---|
Alfanumérico | Caracteres e dígitos alfabéticos (C1_ALPHA e C1_DIGIT) |
Imprimível | Caracteres gráficos e espaços em branco (todos os tipos C1_*, exceto C1_CNTRL) |
Ctype 2
Esses tipos dão suporte ao layout adequado do texto Unicode. Para localidades DBCS, o tipo de caractere se aplica a caracteres estreitos e largos. Os atributos de direção são atribuídos para que o algoritmo de layout bidirecional padronizado pelo Unicode produza resultados precisos. Esses tipos são mutuamente exclusivos. Para obter mais informações sobre o uso desses atributos, consulte oPadrão Unicode.
Nome | Valor | Significado |
---|---|---|
Forte | ||
C2_LEFTTORIGHT | 0x0001 | Da esquerda para a direita |
C2_RIGHTTOLEFT | 0x0002 | Da direita para a esquerda |
Fraco | ||
C2_EUROPENUMBER | 0x0003 | Número europeu, dígito europeu |
C2_EUROPESEPARATOR | 0x0004 | Separador numérico europeu |
C2_EUROPETERMINATOR | 0x0005 | Terminador numérico europeu |
C2_ARABICNUMBER | 0x0006 | Número árabe |
C2_COMMONSEPARATOR | 0x0007 | Separador numérico comum |
Neutro | ||
C2_BLOCKSEPARATOR | 0x0008 | Separador de blocos |
C2_SEGMENTSEPARATOR | 0x0009 | Separador de segmento |
C2_WHITESPACE | 0x000A | Espaço em branco |
C2_OTHERNEUTRAL | 0x000B | Outros neutros |
Não aplicável | ||
C2_NOTAPPLICABLE | 0x0000 | Sem direcionalidade implícita (por exemplo, códigos de controle) |
Ctype 3
Esses tipos destinam-se a serem espaços reservados para extensões para os tipos POSIX necessários para o processamento geral de texto ou para as funções de biblioteca C padrão. Um OR bit a bit desses valores é recuperado quando dwInfoType é definido como CT_CTYPE3. Para localidades DBCS, os atributos Ctype 3 se aplicam a caracteres estreitos e caracteres largos. Os caracteres hiragana e katakana japoneses e os caracteres ideógrafos kanji têm o atributo C3_ALPHA.
Nome | Valor | Significado |
---|---|---|
C3_NONSPACING | 0x0001 | Marca de não espaçamento |
C3_DIACRITIC | 0x0002 | Marca de não espaçamento diacrítico |
C3_VOWELMARK | 0x0004 | Marca de não espaçamento vogais |
C3_SYMBOL | 0x0008 | Símbolo |
C3_KATAKANA | 0x0010 | Caractere Katakana |
C3_HIRAGANA | 0x0020 | Caractere Hiragana |
C3_HALFWIDTH | 0x0040 | Caractere de meia largura (estreito) |
C3_FULLWIDTH | 0x0080 | Caractere de largura total (largo) |
C3_IDEOGRAPH | 0x0100 | Caractere ideográfico |
C3_KASHIDA | 0x0200 | Caractere kashida árabe |
C3_LEXICAL | 0x0400 | Pontuação que é contada como parte da palavra (kashida, hifen, indicadores ordinais femininos/masculinos, sinal de igual e assim por diante) |
C3_ALPHA | 0x8000 | Todos os caracteres linguísticos (alfabéticos, syllabary e ideográficos) |
C3_HIGHSURROGATE | 0x0800 | Windows Vista: unidade de código substituto do High |
C3_LOWSURROGATE | 0x1000 | Windows Vista: Unidade de código substituto baixa |
Não aplicável | ||
C3_NOTAPPLICABLE | 0x0000 | Não aplicável |
C3_HIGHSURROGATE e C3_LOWSURROGATE são listados apenas para integridade e nunca devem ser fornecidos para essa função. Elas são relevantes apenas para Unicode.
começando com o Windows 8: GetStringTypeW é declarado em Stringapiset.h. Antes do Windows 8, ele foi declarado em Winnls.h.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 2000 Professional [aplicativos da área de trabalho | Aplicativos UWP] |
servidor com suporte mínimo | Windows 2000 Server [aplicativos da área de trabalho | Aplicativos UWP] |
da Plataforma de Destino |
Windows |
cabeçalho | stringapiset.h (inclua Windows.h) |
biblioteca | Kernel32.lib |
de DLL |
Kernel32.dll |