Função DownlevelVerifyScripts

Compara duas listas enumeradas de scripts.

Observação

Essa função é usada apenas por aplicativos executados em sistemas operacionais anteriores ao Windows Vista. Seu uso requer o pacote de download. Aplicativos que só são executados no Windows Vista e posteriores devem chamar VerifyScripts.

 

Sintaxe

BOOL DownlevelVerifyScripts(
  _In_ DWORD   dwFlags,
  _In_ LPCWSTR lpLocaleScripts,
  _In_ int     cchLocaleScripts,
  _In_ LPCWSTR lpTestScripts,
  _In_ int     cchTestScripts
);

Parâmetros

dwFlags [in]

Sinalizadores especificando opções de verificação de script.

Valor Significado
VS_ALLOW_LATIN
Permitir "Latn" (script latino) na lista de testes, mesmo que não esteja na lista de localidades.

 

lpLocaleScripts [in]

Ponteiro para a lista de localidades, a lista enumerada de scripts para uma determinada localidade. Essa lista normalmente é preenchida chamando DownlevelGetLocaleScripts.

cchLocaleScripts [in]

Tamanho, em caracteres, da cadeia de caracteres indicada por lpLocaleScripts. O aplicativo define esse parâmetro como -1 se a cadeia de caracteres terminar em nulo. Se esse parâmetro for definido como 0, a função falhará.

lpTestScripts [in]

Ponteiro para a lista de testes, uma segunda lista enumerada de scripts. Essa lista normalmente é preenchida chamando DownlevelGetStringScripts.

cchTestScripts [in]

Tamanho, em caracteres, da cadeia de caracteres indicada por lpTestScripts. O aplicativo define esse parâmetro como -1 se a cadeia de caracteres terminar em nulo. Se esse parâmetro for definido como 0, a função falhará.

Valor retornado

Retorna TRUE se a lista de testes não estiver vazia e todos os itens na lista também estiverem incluídos na lista de localidades. Caso contrário, a função retornará FALSE.

Um valor retornado de FALSE pode indicar que a lista de testes contém um item que não está na lista de localidades ou pode indicar um erro. Para distinguir entre esses dois casos, o aplicativo pode chamar GetLastError. Se DownlevelVerifyScripts tiver determinado com êxito que há um item na lista de testes que não está na lista de localidades, GetLastError retornará ERROR_SUCCESS. Caso contrário, GetLastError poderá retornar um dos seguintes códigos de erro:

  • ERROR_INVALID_FLAGS. Os valores fornecidos para os sinalizadores não eram válidos.
  • ERROR_INVALID_PARAMETER. Qualquer um dos valores de parâmetro era inválido.

Comentários

Essa função compara cadeias de caracteres, como "Latn; Cyrl;", que consiste em uma série de nomes de script de 4 caracteres, com cada nome de script seguido por um ponto e vírgula. Também há um caso especial para considerar o fato de que o script latino frequentemente é usado em idiomas e regiões em que ele não é nativo.

Essa função é útil como parte de uma estratégia para atenuar problemas de segurança relacionados a IDNs (nomes de domínio internacionalizados).

Veja a seguir exemplos do retorno dessa função e uma chamada subsequente para GetLastError em vários cenários. Os dois últimos exemplos ilustram, respectivamente, um caso em que a lista de testes não tem um ponto e vírgula de terminação (cadeia de caracteres malformada) e um caso em que a lista de testes está vazia.

Cadeia de caracteres "Locale" Cadeia de caracteres “Test” dwFlags Valor retornado Retorno de GetLastError
Hani;Hira;Kana; Hani; N/D TRUE N/D
Hani;Hira;Kana; Hani;Latn; 0 FALSE ERROR_SUCCESS
Hani;Hira;Kana; Hani;Latn; VS_ALLOW_LATIN TRUE N/D
Hani;Hira;Kana; Cyrl; N/D FALSE ERROR_SUCCESS
Hani;Hira;Kana; Cyrl; N/D FALSE ERROR_INVALID_PARAMETER
Hani;Hira;Kana; N/D FALSE ERROR_SUCCESS

 

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 de IDN (Nome de Domínio Internacionalizado) da Microsoft no Windows XP com SP2, Windows Server 2003 com SP1 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)

DownlevelGetLocaleScripts

DownlevelGetStringScripts

VerifyScripts