Função DownlevelGetLocaleScripts
Fornece uma lista de scripts para a localidade especificada.
Observação
Essa função é usada apenas por aplicativos executados em sistemas operacionais anteriores ao Windows Vista. Seu uso requer o pacote de download. Os aplicativos que são executados somente no Windows Vista e posteriores devem chamar GetLocaleInfo com LCType definido como LOCALE_SSCRIPTS.
Sintaxe
int DownlevelGetLocaleScripts(
_In_ LPCWSTR lpLocaleName,
_Out_ LPWSTR lpScripts,
_In_ int cchScripts
);
Parâmetros
-
lpLocaleName [in]
-
Ponteiro para um nome de localidade terminado em nulo.
-
lpScripts [out]
-
Ponteiro para um buffer no qual essa função recupera uma cadeia de caracteres terminada em nulo que representa uma lista de scripts, usando a notação de 4 caracteres usada na ISO 15924. Cada nome de script consiste em quatro caracteres latinos e os nomes são recuperados em ordem alfabética. Cada um deles, incluindo o último, é seguido por um ponto e vírgula.
Como alternativa, esse parâmetro poderá conter NULL se cchScripts estiver definido como 0. Nesse caso, a função retorna o tamanho necessário para o buffer de script.
-
cchScripts [in]
-
Tamanho, em caracteres, para o buffer de script indicado por lpScripts.
Como alternativa, o aplicativo pode definir esse parâmetro como 0. Nesse caso, a função recupera NULL em lpScripts e retorna o tamanho necessário para o buffer de script.
Valor retornado
Retorna o número de caracteres recuperados no buffer de script, incluindo o caractere nulo de terminação. Se a função for bem-sucedida e o valor de cchScripts for 0, o valor retornado será o tamanho necessário, em caracteres, incluindo um caractere nulo de terminação, para o buffer de script.
Essa função retornará 0 se não for bem-sucedida. Para obter informações de erro estendidas, o aplicativo pode chamar GetLastError, que pode retornar um dos seguintes códigos de erro:
- ERROR_BADDB. A função não pôde acessar os dados. Essa situação normalmente não deve ocorrer e geralmente indica uma instalação incorreta, um problema de disco ou algo similar.
- ERROR_INSUFFICIENT_BUFFER. Um tamanho de buffer fornecido não era grande o suficiente ou foi definido incorretamente como NULL.
- ERROR_INVALID_PARAMETER. Qualquer um dos valores de parâmetro era inválido.
Comentários
Essa função é útil como parte de uma estratégia para atenuar problemas de segurança relacionados a IDNs (nomes de domínio internacionalizados).
Aqui estão alguns exemplos de entradas e saídas para essa função, supondo um tamanho suficiente do buffer:
Localidade | lpLocaleName | lpScripts |
---|---|---|
Inglês (Estados Unidos) | pt-BR | Latn; |
Híndi (Índia) | hi-IN | Deva; |
Japonês (Japão) | ja-JP | Hani;Hira;Kana; |
A lista não contém o script latino, a menos que seja uma parte essencial do sistema de escrita usado para uma localidade. No entanto, os caracteres latinos geralmente são usados no contexto de localidades para as quais eles não são nativos, como para um nome comercial estrangeiro. No exemplo acima, para o hindi na Índia, o único script recuperado é "Deva" (para Devanagari), embora os caracteres latinos também possam aparecer no texto em hindi. A função DownlevelVerifyScripts tem um sinalizador especial para resolver esse caso.
O arquivo de cabeçalho necessário e a DLL fazem parte do download das "APIs de Mitigação de IDN (Nome de Domínio Internacionalizado) da Microsoft", disponíveis no archive.org.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte |
Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte |
Windows Server 2003 [somente aplicativos da área de trabalho] |
Redistribuível |
APIs de mitigação do IDN (Nome de Domínio Internacionalizado) da Microsoft no Windows XP (SP2 ou posterior), Windows Server 2003 (SP1 ou posterior) ou Windows Vista |
Cabeçalho |
|
DLL |
|
Confira também