Share via


DownlevelGetStringScripts 함수

지정된 유니코드 문자열에 사용되는 스크립트 목록을 제공합니다.

참고 항목

이 함수는 Windows Vista 이전 운영 체제에서 실행되는 애플리케이션에서만 사용됩니다. 사용하려면 다운로드 패키지가 필요합니다. Windows Vista 이상에서만 실행되는 애플리케이션은 GetStringScripts를 호출해야 합니다.

 

구문

int DownlevelGetStringScripts(
  _In_  DWORD   dwFlags,
  _In_  LPCWSTR lpString,
  _In_  int     cchString,
  _Out_ LPWSTR  lpScripts,
  _In_  int     cchScripts
);

매개 변수

dwFlags [in]

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

의미
GSS_ALLOW_INHERITED_COMMON
"Qaii"(INHERITED) 및 "Zyyy"(COMMON) 스크립트 정보를 검색합니다. 이 값은 할당되지 않은 문자 처리에 영향을 주지 않습니다. 입력 문자열의 이러한 문자는 항상 스크립트 문자열에 "Zzzz"(UNASSIGNED 스크립트)를 표시합니다.

 

참고 항목

기본적으로 이 함수는 입력 유니코드 문자열에서 상속되거나 일반적인 문자를 무시합니다. GSS_ALLOW_INHERITED_COMMON 설정되지 않은 경우 입력 문자열에 이러한 문자가 포함된 경우에도 스크립트 문자열에 "Qaii" 또는 "Zyyy"가 나타나지 않습니다. GSS_ALLOW_INHERITED_COMMON 설정되고 입력 문자열에 상속된 및/또는 공통 문자가 포함된 경우 스크립트 문자열에 "Qaii" 및/또는 "Zyyy"가 나타납니다. 주의 섹션을 참조하십시오.

 

lpString [in]

분석할 유니코드 문자열에 대한 포인터입니다.

cchString [in]

lpString으로 표시된 유니코드 문자열의 크기( 문자)입니다. 문자열이 null로 종료된 경우 애플리케이션은 이 매개 변수를 -1로 설정합니다. 애플리케이션이 이 매개 변수를 0으로 설정하면 함수는 lpScripts에서 null 유니코드 문자열(L"\0")을 검색하고 1을 반환합니다 .

lpScripts [out]

이 함수가 ISO 15924에서 사용되는 4자 표기법을 사용하여 스크립트 목록을 나타내는 null로 끝나는 문자열을 검색하는 버퍼에 대한 포인터입니다. 각 스크립트 이름은 4개의 라틴 문자로 구성되며 이름은 사전순으로 검색됩니다. 마지막을 포함한 각 이름 뒤에 세미콜론이 옵니다.

또는 cchScripts가 0으로 설정된 경우 이 매개 변수는 NULL 포함할 수 있습니다. 이 경우 함수는 스크립트 버퍼에 필요한 크기를 반환합니다.

cchScripts [in]

lpScripts로 표시된 스크립트 버퍼의 크기( 문자)입니다.

또는 애플리케이션에서 이 매개 변수를 0으로 설정할 수 있습니다. 이 경우 함수는 lpScripts에서 NULL을 검색하고 스크립트 버퍼에 필요한 크기를 반환합니다.

반환 값

성공 하고 cchScripts가 0이 아닌 값으로 설정된 경우 종료 null 문자를 포함하여 출력 버퍼에서 검색된 문자 수를 반환합니다 . 예를 들어 입력 문자열에 COMMON 또는 INHERITED 문자만 포함되고 GSS_ALLOW_INHERITED_COMMON 설정되지 않은 경우와 같이 스크립트를 찾을 수 없음을 나타내는 함수는 1을 반환합니다. 발견된 각 스크립트가 5자(4자 + 구분 기호)를 추가한다는 점을 감안할 때 간단한 수학 연산은 스크립트 수를 (return_code - 1) / 5로 제공합니다.

함수가 성공하고 cchScripts이 0이면 반환 값은 스크립트 버퍼에 대해 종료 null 문자를 포함한 문자의 필수 크기입니다. 스크립트 수는 위에서 설명한 대로 표시됩니다.

함수가 성공하지 못하면 0을 반환합니다. 확장 오류 정보를 가져오기 위해 애플리케이션은 다음 오류 코드 중 하나를 반환할 수 있는 GetLastError를 호출할 수 있습니다.

  • ERROR_BADDB. 함수가 데이터에 액세스할 수 없습니다. 이 상황은 일반적으로 발생하지 않아야 하며 일반적으로 잘못된 설치, 디스크 문제 등을 나타냅니다.
  • ERROR_INSUFFICIENT_BUFFER. 제공된 버퍼 크기가 충분히 크지 않거나 NULL잘못 설정되었습니다.
  • ERROR_INVALID_FLAGS. 플래그에 제공된 값이 잘못되었습니다.
  • ERROR_INVALID_PARAMETER. 매개 변수 값이 잘못되었습니다.

설명

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

스크립트 결정은 할당되지 않은 문자가 "Zyyy"(COMMON) 대신 "Zzzz"(UNASSIGNED) 값을 갖는다는 점을 제외하고 유니코드 컨소시엄 https://www.unicode.org/Public/4.1.0/ucd/Scripts.txt에서 게시한 스크립트 값을 기반으로 합니다.

다음은 이 함수의 동작에 대한 몇 가지 예입니다.

입력 문자열

dwFlags

lpScripts

스크립트

Microsoft.com

0

Latn;

라틴어

Microsoft.com

GSS_ALLOW_INHERITED_COMMON

Latn; Zyyy;

라틴어 + 일반

${ROWSPAN2}$Ni ño${REMOVE}$

004E 0069 0241 006F

${ROWSPAN2}$GSS_ALLOW_INHERITED_COMMON${REMOVE}$

${ROWSPAN2}$Latn;${REMOVE}$

${ROWSPAN2}$Latin${REMOVE}$

LATIN SMALL LETTER N WITH TILDE 사용

${ROWSPAN2}$Ni ño${REMOVE}$

004E 0069 006E 0303 006F

${ROWSPAN2}$GSS_ALLOW_INHERITED_COMMON${REMOVE}$

${ROWSPAN2}$Latn; Qaii;${REMOVE}$

${ROWSPAN2}$Latin + Inherited${REMOVE}$

조합 TILDE 사용

${ROWSPAN2}$Sp оf${REMOVE}$

0053 0070 043e 043e 0066

${ROWSPAN2}$0${REMOVE}$

${ROWSPAN2}$Latn; Cyrl;${REMOVE}$

${ROWSPAN2}$Latin + 키릴 자모${REMOVE}$

키릴 자모 작은 문자 O 사용

U+f000

0

Zzzz;

미할당

U+f000

GSS_ALLOW_INHERITED_COMMON

Zzzz;

미할당

 

필요한 헤더 파일 및 DLL은 archive.org 사용할 수 있는 "IdN(Microsoft Internationalized Do기본 Name) 완화 API" 다운로드의 일부입니다.

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버
Windows Server 2003 [데스크톱 앱만 해당]
재배포 가능 파일
Windows XP(SP2 이상), Windows Server 2003(SP1 이상) 또는 Windows Vista의 Microsoft IDN(Do기본 Name) 완화 API
헤더
Idndl.h
DLL
Idndl.dll

참고 항목

국가별 언어 지원

국가별 언어 지원 함수

IDN(Internationalized Do기본 이름) 처리

DownlevelGetLocaleScripts

DownlevelVerifyScripts

GetStringScripts