VerifyScripts 함수(winnls.h)
열거된 두 스크립트 목록을 비교합니다.
구문
BOOL VerifyScripts(
[in] DWORD dwFlags,
[in] LPCWSTR lpLocaleScripts,
[in] int cchLocaleScripts,
[in] LPCWSTR lpTestScripts,
[in] int cchTestScripts
);
매개 변수
[in] dwFlags
스크립트 확인 옵션을 지정하는 플래그입니다.
값 | 의미 |
---|---|
|
로캘 목록에 없는 경우에도 테스트 목록에서 "Latn"(라틴어 스크립트)을 허용합니다. |
[in] lpLocaleScripts
지정된 로캘에 대한 열거형 스크립트 목록인 로캘 목록에 대한 포인터입니다. 이 목록은 일반적으로 LCType이 LOCALE_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 |