Función GetStringScripts (winnls.h)
Proporciona una lista de scripts usados en la cadena Unicode especificada.
Sintaxis
int GetStringScripts(
[in] DWORD dwFlags,
[in] LPCWSTR lpString,
[in] int cchString,
[out, optional] LPWSTR lpScripts,
[in] int cchScripts
);
Parámetros
[in] dwFlags
Marcas que especifican opciones para la recuperación de scripts.
[in] lpString
Puntero a la cadena Unicode que se va a analizar.
[in] cchString
Tamaño, en caracteres, de la cadena Unicode indicada por lpString. La aplicación establece este parámetro en -1 si la cadena Unicode termina en null. Si la aplicación establece este parámetro en 0, la función recupera una cadena Unicode nula (L"\0") en lpScripts y devuelve 1.
[out, optional] lpScripts
Puntero a un búfer en el que esta función recupera una cadena terminada en null que representa una lista de scripts, utilizando la notación de 4 caracteres usada en ISO 15924. Cada nombre de script consta de cuatro caracteres latinos y los nombres se recuperan en orden alfabético. Cada nombre, incluido el último, va seguido de un punto y coma.
Como alternativa, este parámetro contiene NULL si cchScripts está establecido en 0. En este caso, la función devuelve el tamaño necesario para el búfer de script.
[in] cchScripts
Tamaño, en caracteres, del búfer de script indicado por lpScripts.
Como alternativa, la aplicación puede establecer este parámetro en 0. En este caso, la función recupera NULL en lpScripts y devuelve el tamaño necesario para el búfer de script.
Valor devuelto
Devuelve el número de caracteres recuperados en el búfer de salida, incluido un carácter nulo de terminación, si es correcto y cchScripts se establece en un valor distinto de cero. La función devuelve 1 para indicar que no se ha encontrado ningún script, por ejemplo, cuando la cadena de entrada solo contiene caracteres COMMON o INHERITED y GSS_ALLOW_INHERITED_COMMON no está establecido. Dado que cada script encontrado agrega cinco caracteres (cuatro caracteres + delimitador), una operación matemática simple proporciona el recuento de scripts como (return_code - 1) / 5.
Si la función se ejecuta correctamente y el valor de cchScripts es 0, la función devuelve el tamaño necesario, en caracteres, incluido un carácter nulo de terminación, para el búfer de script. El recuento de scripts es como se ha descrito anteriormente.
Esta función devuelve 0 si no se realiza correctamente. 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_BADDB. La función no pudo acceder a los datos. Esta situación no debe producirse normalmente y normalmente indica una instalación incorrecta, un problema de disco o similar.
- ERROR_INSUFFICIENT_BUFFER. Un tamaño de búfer proporcionado no era lo suficientemente grande o se estableció incorrectamente en NULL.
- 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
Esta función es útil como parte de una estrategia para mitigar los problemas de seguridad relacionados con los nombres de dominio internacionalizados (IDN).
La determinación del script se basa en los valores de script publicados por el Consorcio Unicode en , salvo que los caracteres sin asignar tienen el valor "Zzzz" (UNASSIGNED) en http://www.unicode.org/Public/4.1.0/ucd/Scripts.txtlugar de "Zyyy" (COMMON).
Estos son algunos ejemplos del comportamiento de esta función:
Cadena de entrada | dwFlags | lpScripts | Scripts | |
---|---|---|---|---|
Microsoft.com | 0 | Latn; | Latín | |
Microsoft.com | GSS_ALLOW_INHERITED_COMMON | Latn; Zyyy; | Latino + Común | |
Niño | 004E 0069 0241 006F | GSS_ALLOW_INHERITED_COMMON | Latn; | Latín |
Usa LATIN SMALL LETTER N WITH TILDE | ||||
Niño | 004E 0069 006E 0303 006F | GSS_ALLOW_INHERITED_COMMON | Latn; Qaii; | Latino + Heredado |
Usa LA COMBINACIÓN DE TILDE | ||||
Spооf | 0053 0070 043e 043e 0066 | 0 | Latn; Cyrl; | Latino + Cirílico |
Usa LETRA PEQUEÑA CIRÍLICO O | ||||
| U+f000 | 0 | Zzzz; | Sin asignar |
| U+f000 | GSS_ALLOW_INHERITED_COMMON | Zzzz; | Sin asignar |
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista [aplicaciones de escritorio | aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2008 [aplicaciones de escritorio | aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | winnls.h (incluye Windows.h) |
Library | Kernel32.lib |
Archivo DLL | Kernel32.dll |
Vea también
Control de nombres de dominio internacionalizados (IDN)
Compatibilidad con idiomas nacionales