Compartir a través de


Función GetStringTypeW (stringapiset.h)

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 El uso incorrecto de la función GetStringTypeW puede poner en peligro la seguridad de la aplicación. Para evitar un desbordamiento de búfer, la aplicación debe establecer el tamaño del búfer de salida correctamente. 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 de tipo de carácter que se va a recuperar. Este parámetro puede tener los valores siguientes. Los tipos de caracteres se dividen en distintos niveles, como se describe en la sección Comentarios.

Marca 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 está establecida 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 null.

[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 elementos lpSrcStr + 1. 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.

Comentarios

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

Los valores de los parámetros 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 Locale 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 una función GetStringType* 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). Un OR bit a bit de estos valores se recupera en la matriz del búfer de salida cuando dwInfoType se establece en CT_CTYPE1. Para 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 los caracteres ideógrafos kanji tienen el atributo C1_ALPHA.

Nombre Valor Significado
C1_UPPER 0x0001 Mayúsculas
C1_LOWER 0x0002 Minúsculas
C1_DIGIT 0x0004 Dígitos decimales
C1_SPACE 0x0008 Caracteres de espacio
C1_PUNCT 0x0010 Signos de 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, esillabario o ideográfico
C1_DEFINED 0x0200 Un 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 es necesario que esta función admita.

Tipo Descripción
Alfanuméricas Caracteres alfabéticos y dígitos (C1_ALPHA y C1_DIGIT)
Carácter 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 El estándar Unicode.

Nombre Valor Significado
Alta
C2_LEFTTORIGHT 0x0001 De izquierda a derecha
C2_RIGHTTOLEFT 0x0002 De derecha a izquierda
Baja
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
Neutra
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 de 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 de no 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 kashida árabe
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ético, silabario e ideográfico)
C3_HIGHSURROGATE 0x0800 Windows Vista: Unidad de código suplente alta
C3_LOWSURROGATE 0x1000 Windows Vista: Unidad de código suplente baja
No aplicable
C3_NOTAPPLICABLE 0x0000 No aplicable
 

C3_HIGHSURROGATE y C3_LOWSURROGATE solo se muestran 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 Value
Cliente mínimo compatible Windows 2000 Professional [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows 2000 Server [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado stringapiset.h (incluya Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

GetStringTypeA

GetStringTypeEx

Compatibilidad con idiomas nacionales

Funciones de compatibilidad con idiomas nacionales