Compartir a través de


Función GetStringTypeExW (stringapiset.h)

Recupera información de tipo de carácter para los caracteres de la cadena de origen 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 GetStringTypeEx 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.
 
Nota A diferencia de sus parientes cercanos GetStringTypeA y GetStringTypeW, esta función muestra el comportamiento ANSI o Unicode adecuado mediante el uso del modificador UNICODE de #define. Esta es la función recomendada para la recuperación de tipos de caracteres.
 

Sintaxis

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

Parámetros

[in] Locale

Identificador de configuración regional que especifica la configuración regional. Este valor define de forma única la página de códigos ANSI. Puede usar la macro MAKELCID para crear un identificador de configuración regional o usar uno de los siguientes valores predefinidos.

Windows Vista y versiones posteriores: También se admiten los siguientes identificadores de configuración regional personalizados.

[in] dwInfoType

Marcas que especifican la información de tipo de carácter que se va a recuperar. Para conocer los posibles valores de marca, consulte el parámetro dwInfoType de GetStringTypeW. Para obtener información detallada sobre los bits de tipo de carácter, vea Comentarios para GetStringTypeW.

[in] lpSrcStr

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

[in] cchSrc

Tamaño, en caracteres, de la cadena indicada por lpSrcStr. El tamaño hace referencia a bytes para la versión ANSI de la función o caracteres anchos para la versión Unicode. 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 elementos lpSrcStr + 1. Cuando se devuelve la función, esta matriz contiene una palabra correspondiente a cada carácter de la cadena de origen.

Valor devuelto

Devuelve un valor distinto de cero si es correcto 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.

Con la página de códigos ANSI para la configuración regional proporcionada, esta función traduce la cadena de origen de ANSI a Unicode. A continuación, analiza cada carácter Unicode para obtener información de tipo de carácter.

La versión ANSI de esta función convierte la cadena de origen en Unicode y llama a la función GetStringTypeW correspondiente. Por lo tanto, las palabras del búfer de salida no corresponden a la cadena ANSI original, sino a su equivalente Unicode. La conversión de ANSI a Unicode puede dar lugar a un cambio en la longitud de cadena, por ejemplo, un par de caracteres ANSI puede asignarse a un único carácter Unicode. Por lo tanto, la correspondencia entre las palabras del búfer de salida y los caracteres de la cadena ANSI original no es uno a uno en todos los casos, por ejemplo, cadenas multibyte. Por lo tanto, la versión ANSI de esta función es de uso limitado para cadenas de varios caracteres. En su lugar, se recomienda la versión Unicode de la función.

Esta función evita una limitación causada por la diferencia en los parámetros entre GetStringTypeA y GetStringTypeW. 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. Por otro lado, GetStringTypeEx, se comporta correctamente con respecto a ese modificador. Por lo tanto, es la función recomendada.

Cuando la versión ANSI de esta función se usa con un identificador de configuración regional solo Unicode, la función puede realizarse correctamente porque el sistema operativo usa la página de códigos del sistema. Sin embargo, los caracteres que no están definidos en la página de códigos del sistema aparecen en la cadena como signo de interrogación (?).

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 ERROR_INVALID_PARAMETER.

El parámetro Configuración regional solo se usa para realizar la conversión de cadenas en Unicode. No tiene nada que ver con los valores CTYPE* proporcionados por la aplicación. Estos valores se determinan únicamente por puntos de código Unicode y no varían en función de la configuración regional. Por ejemplo, las letras griegas se especifican como C1_ALPHA para cualquier valor de Configuración regional.

Requisitos

   
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 (incluye Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

GetStringTypeW

Compatibilidad con idiomas nacionales

Funciones de compatibilidad con idiomas nacionales