Função GetStringTypeW (stringapiset.h)

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 correspondente de 16 bits da matriz de saída. Cada bit identifica um determinado tipo de caractere, por exemplo, letra, dígito ou nenhum deles.

Cuidado Usar a função GetStringTypeW incorretamente pode comprometer a segurança do aplicativo. Para evitar um estouro de buffer, o aplicativo deve definir o tamanho do buffer de saída corretamente. Para obter mais informações de segurança, consulte Considerações de segurança: Interface do usuário do Windows.

 

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 valores a seguir. Os tipos de caractere são divididos em diferentes níveis, conforme descrito na seção Comentários.

Sinalizador Significado
CT_CTYPE1
Recuperar informações de tipo de caractere.
CT_CTYPE2
Recuperar informações de layout bidirecional.
CT_CTYPE3
Recuperar informações de processamento de texto.

[in] lpSrcStr

Ponteiro para a cadeia de caracteres Unicode para a qual recuperar os tipos de caracteres. Presume-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 terminação, 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 cchSrc não for um número negativo, lpCharType deverá ser uma matriz de palavras com elementos cchSrc . Se cchSrc for definido como um número negativo, lpCharType será uma matriz de palavras com elementos lpSrcStr + 1. Quando a função retorna, essa matriz contém uma palavra correspondente a cada caractere na cadeia de caracteres de origem.

Retornar valor

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.

Comentários

Para obter uma visão geral do uso das funções de cadeia de caracteres, consulte Cadeias de caracteres.

Os valores dos parâmetros lpSrcStr e lpCharType não devem ser os mesmos. Se forem iguais, a função falhará com ERROR_INVALID_PARAMETER.

O parâmetro Locale usado pela função GetStringTypeA correspondente não é usado por essa função. Devido à diferença de parâmetro, um aplicativo não pode invocar automaticamente a versão ANSI ou Unicode adequada de uma função GetStringType* por meio do uso do comutador UNICODE #define. Um aplicativo pode contornar essa limitação usando GetStringTypeEx, que é a função recomendada.

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úsculas
C1_LOWER 0x0002 Minúsculas
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 hexadecimais
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 C1_*
 

Os tipos de caracteres 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 O Padrã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 ser espaços reservados para extensões para os tipos POSIX necessários para 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 de 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, hífen, 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 alternativo alta
C3_LOWSURROGATE 0x1000 Windows Vista: Unidade de código alternativo 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 a essa função. Eles são relevantes apenas para Unicode.

Começando com Windows 8: GetStringTypeW é declarado em Stringapiset.h. Antes de Windows 8, ele foi declarado em Winnls.h.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows 2000 Server [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho stringapiset.h (inclua Windows.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

GetStringTypeA

GetStringTypeEx

Suporte a idiomas nacionais

Funções de suporte à linguagem nacional