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 |
|
DLL |
|
Confira também