VerifyScripts 함수(winnls.h)

열거된 두 스크립트 목록을 비교합니다.

구문

BOOL VerifyScripts(
  [in] DWORD   dwFlags,
  [in] LPCWSTR lpLocaleScripts,
  [in] int     cchLocaleScripts,
  [in] LPCWSTR lpTestScripts,
  [in] int     cchTestScripts
);

매개 변수

[in] dwFlags

스크립트 확인 옵션을 지정하는 플래그입니다.

의미
VS_ALLOW_LATIN
로캘 목록에 없는 경우에도 테스트 목록에서 "Latn"(라틴어 스크립트)을 허용합니다.

[in] lpLocaleScripts

지정된 로캘에 대한 열거형 스크립트 목록인 로캘 목록에 대한 포인터입니다. 이 목록은 일반적으로 LCTypeLOCALE_SSCRIPTS 설정된 GetLocaleInfoEx를 호출하여 채워집니다.

[in] cchLocaleScripts

lpLocaleScripts로 표시된 문자열의 크기(문자)입니다. 문자열이 null로 끝나는 경우 애플리케이션은 이 매개 변수를 -1로 설정합니다. 이 매개 변수를 0으로 설정하면 함수가 실패합니다.

[in] lpTestScripts

두 번째 열거형 스크립트 목록인 테스트 목록에 대한 포인터입니다. 이 목록은 일반적으로 GetStringScripts를 호출하여 채워집니다.

[in] cchTestScripts

lpTestScripts로 표시된 문자열의 크기(문자)입니다. 문자열이 null로 끝나는 경우 애플리케이션은 이 매개 변수를 -1로 설정합니다. 이 매개 변수를 0으로 설정하면 함수가 실패합니다.

반환 값

테스트 목록이 비어 있지 않으며 목록의 모든 항목도 로캘 목록에 포함되면 TRUE 를 반환합니다. 로캘 목록에 테스트 목록보다 더 많은 스크립트가 포함되어 있지만 모든 테스트 목록 스크립트가 로캘 목록에 포함되어야 하는 경우 함수는 여전히 TRUE 를 반환합니다. VS_ALLOW_LATIN dwFlags에 지정된 경우 함수는 "Latn;"이 항상 로캘 목록에 있는 것처럼 동작합니다.

다른 모든 경우에서 함수는 FALSE를 반환합니다. 이 반환은 테스트 목록에 로캘 목록에 없는 항목이 포함되어 있거나 오류를 나타낼 수 있음을 나타낼 수 있습니다. 이러한 두 경우를 구분하기 위해 애플리케이션은 GetLastError를 호출해야 하며, 다음 오류 코드 중 하나를 반환할 수 있습니다.

  • ERROR_INVALID_FLAGS. 플래그에 제공된 값이 잘못되었습니다.
  • ERROR_INVALID_PARAMETER. 매개 변수 값이 잘못되었습니다.
  • ERROR_SUCCESS. 작업이 성공적으로 완료되었지만 결과가 생성되지 않았습니다.

설명

이 함수는 "Latn; Cyrl;"은 각 스크립트 이름 뒤에 세미콜론이 있는 일련의 4자 스크립트 이름으로 구성됩니다. 또한 라틴어 스크립트가 네이티브가 아닌 언어 및 로캘에서 자주 사용된다는 사실을 설명하기 위한 특별한 사례도 있습니다.

이 함수는 IDN(국제화된 도메인 이름)과 관련된 보안 문제를 완화하기 위한 전략의 일부로 유용합니다.

다음은 이 함수의 반환 및 다양한 시나리오에서 GetLastError 에 대한 후속 호출의 예입니다. 마지막 두 예제에서는 각각 테스트 목록에 종료 세미콜론(형식이 잘못된 문자열)이 없는 경우와 테스트 목록이 비어 있는 경우를 보여 줍니다.

로캘 문자열 테스트 문자열 dwFlags 반환 값 GetLastError 반환
하니족; 히라; 가나; 하니족; * TRUE (변경되지 않음)
하니족; 히라; 가나; 하니족; Latn; 0 FALSE ERROR_SUCCESS
하니족; 히라; 가나; 하니족; Latn; VS_ALLOW_LATIN TRUE (변경되지 않음)
하니족; 히라; 가나; Cyrl; * FALSE ERROR_SUCCESS
하니족; 하니족; 히라; 가나; * FALSE ERROR_SUCCESS
하니족; 히라; 가나; Cyrl (Cyrl) * FALSE ERROR_INVALID_PARAMETER
하니족; 히라; 가나; * TRUE (변경되지 않음)
 
  • 결과는 VS_ALLOW_LATIN dwFlags 매개 변수에 전달되거나 플래그가 제공되지 않는지 여부와 동일합니다.

예제

NLS: IDN(Internationalized Domain Name) 완화 샘플 은 이 함수의 사용을 보여 줍니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 winnls.h(Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

DownlevelVerifyScripts

GetLocaleInfoEx

GetStringScripts

IDN(Internationalized Domain Name) 처리

국가 언어 지원

국가 언어 지원 기능