Compartir a través de


Función GetStringTypeA (winnls.h)

Desusado. 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 GetStringTypeA 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 GetStringTypeA(
  [in]  LCID   Locale,
  [in]  DWORD  dwInfoType,
  [in]  LPCSTR lpSrcStr,
  [in]  int    cchSrc,
  [out] LPWORD lpCharType
);

Parámetros

[in] Locale

Identificador de configuración regional que especifica la configuración regional. 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 ANSI para la que se van a recuperar los tipos de caracteres. La cadena puede ser una cadena de juego de caracteres de doble byte (DBCS) si la configuración regional proporcionada es adecuada para DBCS. 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. 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.

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 , GetStringTypeA es de uso limitado para cadenas de varios caracteres. En su lugar, se recomienda la función GetStringTypeW y GetStringTypeEx.

Cuando esta función se usa con un identificador de configuración regional de 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 con 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.

La función GetStringTypeW correspondiente no usa el parámetro Locale. 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.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winnls.h (incluye Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

GetStringTypeEx

GetStringTypeW

Compatibilidad con idiomas nacionales

Funciones de compatibilidad con idiomas nacionales