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
Idndl.h
DLL
Idndl.dll

Confira também

Suporte ao idioma nacional

Funções de suporte ao idioma nacional

Manipular IDNs (nomes de domínio internacionalizados)

DownlevelGetStringScripts

DownlevelVerifyScripts

GetLocaleInfo