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.
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 |
---|---|
|
Recuperar información de tipo de carácter. |
|
Recuperar información de diseño bidireccional. |
|
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 |