Compartir a través de


Función GetStringTypeW (stringapiset.h)

Nota

Esta API puede tener información incompleta o obsoleta para determinados caracteres Unicode, especialmente las del intervalo complementario. Para obtener información de tipo de caracteres Unicode más precisa y completa, considere la posibilidad de usar API de ICU equivalentes, como u_charType, u_islower, u_isspacey u_ispunct. Para obtener instrucciones sobre cómo usar las API de ICU en Windows, consulte Introducción a ICU en Windows.

Recupera información de tipo de carácter para los caracteres de la cadena de origen Unicode especificada. Para cada carácter de la cadena, la función establece uno o varios bits en el elemento de 16 bits correspondiente de la matriz de salida. Cada bit identifica un tipo de carácter determinado, por ejemplo, letra, dígito o ninguno.

precaución Usar la función getStringTypeW de puede poner en peligro la seguridad de la aplicación. Para evitar un desbordamiento de búfer, la aplicación debe establecer correctamente el tamaño del búfer de salida. Para obtener más información de seguridad, consulte Consideraciones de seguridad: Interfaz de usuario de Windows.

 

Sintaxis

BOOL GetStringTypeW(
  [in]  DWORD                         dwInfoType,
  [in]  _In_NLS_string_(cchSrc)LPCWCH lpSrcStr,
  [in]  int                           cchSrc,
  [out] LPWORD                        lpCharType
);

Parámetros

[in] dwInfoType

Marcas que especifican la información del tipo de carácter que se va a recuperar. Este parámetro puede tener los siguientes valores. Los tipos de caracteres se dividen en diferentes niveles, tal como se describe en la sección Comentarios.

Bandera Significado
CT_CTYPE1
Recuperar información de tipo de carácter.
CT_CTYPE2
Recuperar información de diseño bidireccional.
CT_CTYPE3
Recuperar información de procesamiento de texto.

[in] lpSrcStr

Puntero a la cadena Unicode para la que se van a recuperar los tipos de caracteres. Se supone que la cadena está terminada en null si cchSrc se establece en cualquier valor negativo.

[in] cchSrc

Tamaño, en caracteres, de la cadena indicada por lpSrcStr. Si el tamaño incluye un carácter nulo de terminación, la función recupera información de tipo de carácter para ese carácter. Si la aplicación establece el tamaño en un entero negativo, se supone que la cadena de origen está terminada en null y la función calcula automáticamente el tamaño con un carácter adicional para la terminación nula.

[out] lpCharType

Puntero a una matriz de valores de 16 bits. La longitud de esta matriz debe ser lo suficientemente grande como para recibir un valor de 16 bits para cada carácter de la cadena de origen. Si cchSrc no es un número negativo, lpCharType debe ser una matriz de palabras con elementos cchSrc. Si cchSrc se establece en un número negativo, lpCharType es una matriz de palabras con lpSrcStr + 1 elementos. Cuando la función devuelve, esta matriz contiene una palabra correspondiente a cada carácter de la cadena de origen.

Valor devuelto

Devuelve un valor distinto de cero si se ejecuta correctamente o 0 de lo contrario. Para obtener información de error extendida, la aplicación puede llamar a GetLastError, que puede devolver uno de los siguientes códigos de error:

  • ERROR_INVALID_FLAGS. Los valores proporcionados para las marcas no eran válidos.
  • ERROR_INVALID_PARAMETER. Cualquiera de los valores de parámetro no era válido.

Observaciones

Para obtener información general sobre el uso de las funciones de cadena, consulte Strings.

Los valores de los parámetros de lpSrcStr y lpCharType no deben ser los mismos. Si son iguales, se produce un error en la función con ERROR_INVALID_PARAMETER.

Esta función no usa el parámetro de configuración regional usado por la función getStringTypeA correspondiente. Debido a la diferencia de parámetros, una aplicación no puede invocar automáticamente la versión ANSI o Unicode adecuada de un GetStringType* función mediante el uso del modificador UNICODE de #define. Una aplicación puede eludir esta limitación mediante GetStringTypeEx, que es la función recomendada.

tipos de caracteres admitidos

Los bits de tipo de carácter se dividen en varios niveles. La información de un nivel se puede recuperar mediante una sola llamada a esta función. Cada nivel está limitado a 16 bits de información para que las demás funciones de asignación, que están limitadas a 16 bits de representación por carácter, también pueden devolver información de tipo de carácter.

Ctype 1

Estos tipos admiten funciones de escritura de caracteres ANSI C y POSIX (LC_CTYPE). Se recupera un OR bit a bit de estos valores en la matriz del búfer de salida cuando dwInfoType se establece en CT_CTYPE1. En el caso de las configuraciones regionales de DBCS, los atributos de tipo se aplican tanto a caracteres estrechos como a caracteres anchos. Los caracteres hiragana y katakana japoneses, y todos los caracteres ideógrafos kanji tienen el atributo C1_ALPHA.

Nombre Valor Significado
C1_UPPER 0x0001 Mayúsculo
C1_LOWER 0x0002 Minúscula
C1_DIGIT 0x0004 Dígitos decimales
C1_SPACE 0x0008 Caracteres de espacio
C1_PUNCT 0x0010 Puntuación
C1_CNTRL 0x0020 Caracteres de control
C1_BLANK 0x0040 Caracteres en blanco
C1_XDIGIT 0x0080 Dígitos hexadecimales
C1_ALPHA 0x0100 Cualquier carácter lingüístico: alfabético, silabario o ideográfico
C1_DEFINED 0x0200 Carácter definido, pero no uno de los otros tipos de C1_*
 

Los siguientes tipos de caracteres son constantes o computables a partir de tipos básicos y no necesitan ser compatibles con esta función.

Tipo Descripción
Alfanumérico Caracteres alfabéticos y dígitos (C1_ALPHA y C1_DIGIT)
Imprimible Caracteres gráficos y espacios en blanco (todos los tipos C1_* excepto C1_CNTRL)
 

Ctype 2

Estos tipos admiten el diseño adecuado del texto Unicode. En el caso de las configuraciones regionales de DBCS, el tipo de carácter se aplica a caracteres estrechos y anchos. Los atributos de dirección se asignan para que el algoritmo de diseño bidireccional estandarizado por Unicode genere resultados precisos. Estos tipos son mutuamente excluyentes. Para obtener más información sobre el uso de estos atributos, vea The Unicode Standard.

Nombre Valor Significado
Fuerte
C2_LEFTTORIGHT 0x0001 De izquierda a derecha
C2_RIGHTTOLEFT 0x0002 Derecha a izquierda
Débil
C2_EUROPENUMBER 0x0003 Número europeo, dígito europeo
C2_EUROPESEPARATOR 0x0004 Separador numérico europeo
C2_EUROPETERMINATOR 0x0005 Terminador numérico europeo
C2_ARABICNUMBER 0x0006 Número árabe
C2_COMMONSEPARATOR 0x0007 Separador numérico común
Neutral
C2_BLOCKSEPARATOR 0x0008 Separador de bloques
C2_SEGMENTSEPARATOR 0x0009 Separador de segmentos
C2_WHITESPACE 0x000A Espacio en blanco
C2_OTHERNEUTRAL 0x000B Otros neutrales
No aplicable
C2_NOTAPPLICABLE 0x0000 Sin direccionalidad implícita (por ejemplo, códigos de control)
 

Ctype 3

Estos tipos están diseñados para ser marcadores de posición para las extensiones a los tipos POSIX necesarios para el procesamiento de texto general o para las funciones estándar de la biblioteca de C. Se recupera un OR bit a bit de estos valores cuando dwInfoType se establece en CT_CTYPE3. En el caso de las configuraciones regionales de DBCS, los atributos Ctype 3 se aplican tanto a caracteres estrechos como a caracteres anchos. Los caracteres hiragana y katakana japoneses, y los caracteres ideógrafos kanji tienen el atributo C3_ALPHA.

Nombre Valor Significado
C3_NONSPACING 0x0001 Marca sin espaciado
C3_DIACRITIC 0x0002 Marca sin espaciado diacrítico
C3_VOWELMARK 0x0004 Marca de no espaciado de vocal
C3_SYMBOL 0x0008 Símbolo
C3_KATAKANA 0x0010 Carácter katakana
C3_HIRAGANA 0x0020 Carácter Hiragana
C3_HALFWIDTH 0x0040 Carácter de ancho medio (estrecho)
C3_FULLWIDTH 0x0080 Carácter de ancho completo (ancho)
C3_IDEOGRAPH 0x0100 Carácter ideográfico
C3_KASHIDA 0x0200 Carácter árabe kashida
C3_LEXICAL 0x0400 Puntuación que se cuenta como parte de la palabra (kashida, guion, indicadores ordinales femeninos/masculinos, signo igual, etc.)
C3_ALPHA 0x8000 Todos los caracteres lingüísticos (alfabéticos, silabarios e ideográficos)
C3_HIGHSURROGATE 0x0800 Windows Vista: unidad de código suplente alto
C3_LOWSURROGATE 0x1000 Windows Vista: unidad de código suplente baja
No aplicable
C3_NOTAPPLICABLE 0x0000 No aplicable
 

C3_HIGHSURROGATE y C3_LOWSURROGATE solo aparecen por integridad y nunca se deben proporcionar a esta función. Solo son relevantes para Unicode.

a partir de Windows 8: GetStringTypeW se declara en Stringapiset.h. Antes de Windows 8, se declaró en Winnls.h.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 2000 Professional [aplicaciones de escritorio | Aplicaciones para UWP]
servidor mínimo admitido Windows 2000 Server [aplicaciones de escritorio | Aplicaciones para UWP]
de la plataforma de destino de Windows
encabezado de stringapiset.h (incluya Windows.h)
biblioteca de Kernel32.lib
DLL de Kernel32.dll

Consulte también

GetStringTypeA

GetStringTypeEx

de compatibilidad con idiomas nacionales

funciones de compatibilidad con idiomas nacionales