다음을 통해 공유


GetStringTypeW 함수(stringapiset.h)

메모

이 API에는 특정 유니코드 문자, 특히 보조 범위에 있는 문자에 대한 불완전/오래된 정보가 있을 수 있습니다. 보다 정확하고 포괄적인 유니코드 문자 형식 정보를 보려면 u_charType, u_islower, u_isspaceu_ispunct같은 동등한 ICU API를 사용하는 것이 좋습니다. Windows에서 ICU API를 사용하는 방법에 대한 지침은 WindowsICU 시작 참조하세요.

지정된 유니코드 소스 문자열의 문자에 대한 문자 형식 정보를 검색합니다. 문자열의 각 문자에 대해 함수는 출력 배열의 해당 16비트 요소에서 하나 이상의 비트를 설정합니다. 각 비트는 지정된 문자 형식(예: 문자, 숫자 또는 둘 다)을 식별합니다.

주의GetStringTypeW 함수를 잘못 사용하면 애플리케이션의 보안이 손상됩니다. 버퍼 오버플로를 방지하려면 애플리케이션에서 출력 버퍼 크기를 올바르게 설정해야 합니다. 자세한 보안 정보는 보안 고려 사항: Windows 사용자 인터페이스참조하세요.

 

통사론

BOOL GetStringTypeW(
  [in]  DWORD                         dwInfoType,
  [in]  _In_NLS_string_(cchSrc)LPCWCH lpSrcStr,
  [in]  int                           cchSrc,
  [out] LPWORD                        lpCharType
);

매개 변수

[in] dwInfoType

검색할 문자 형식 정보를 지정하는 플래그입니다. 이 매개 변수에는 다음 값이 있을 수 있습니다. 문자 형식은 주의 섹션에 설명된 대로 서로 다른 수준으로 나뉩니다.

의미
CT_CTYPE1
문자 형식 정보를 검색합니다.
CT_CTYPE2
양방향 레이아웃 정보를 검색합니다.
CT_CTYPE3
텍스트 처리 정보를 검색합니다.

[in] lpSrcStr

문자 형식을 검색할 유니코드 문자열에 대한 포인터입니다. cchSrc 음수 값으로 설정된 경우 문자열은 null로 종료되는 것으로 간주됩니다.

[in] cchSrc

lpSrcStr표시된 문자열의 크기(문자)입니다. 크기가 종료 null 문자를 포함하는 경우 함수는 해당 문자에 대한 문자 형식 정보를 검색합니다. 애플리케이션에서 크기를 음수 정수로 설정하면 원본 문자열은 null로 종료된 것으로 간주되고 함수는 null 종료에 대한 추가 문자를 사용하여 크기를 자동으로 계산합니다.

[out] lpCharType

16비트 값 배열에 대한 포인터입니다. 이 배열의 길이는 원본 문자열의 각 문자에 대해 하나의 16비트 값을 받을 수 있을 만큼 커야 합니다. cchSrc 음수가 아니면 lpCharTypecchSrc 요소가 있는 단어 배열이어야 합니다. cchSrc 음수로 설정된 경우 lpCharTypelpSrcStr + 1 요소가 있는 단어 배열입니다. 함수가 반환되면 이 배열에는 소스 문자열의 각 문자에 해당하는 한 단어가 포함됩니다.

반환 값

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

  • ERROR_INVALID_FLAGS. 플래그에 제공된 값이 잘못되었습니다.
  • ERROR_INVALID_PARAMETER. 매개 변수 값이 잘못되었습니다.

발언

문자열 함수 사용에 대한 개요는 Strings참조하세요.

lpSrcStrlpCharType 매개 변수의 값은 동일하지 않아야 합니다. 동일한 경우 함수는 ERROR_INVALID_PARAMETER 함께 실패합니다.

해당 GetStringTypeA 함수에서 사용하는 로캘 매개 변수는 이 함수에서 사용되지 않습니다. 매개 변수 차이로 인해 애플리케이션은 #define 유니코드 스위치를 사용하여 GetStringType* 함수의 적절한 ANSI 또는 유니코드 버전을 자동으로 호출할 수 없습니다. 애플리케이션은 권장되는 함수인 getStringTypeEx사용하여 이 제한을 피할 수 있습니다.

지원되는 문자 형식

문자 형식 비트는 여러 수준으로 나뉩니다. 이 함수에 대한 단일 호출을 통해 한 수준에 대한 정보를 검색할 수 있습니다. 각 수준은 16비트 정보로 제한되므로 문자당 16비트 표현으로 제한되는 다른 매핑 함수도 문자 형식 정보를 반환할 수 있습니다.

Ctype 1

이러한 형식은 ANSI C 및 POSIX(LC_CTYPE) 문자 입력 함수를 지원합니다. 이러한 값의 비트 OR은 dwInfoType CT_CTYPE1 설정되면 출력 버퍼의 배열에서 검색됩니다. DBCS 로캘의 경우 형식 특성은 좁은 문자와 와이드 문자 모두에 적용됩니다. 일본어 히라가나 및 가타카나 문자와 간지 이데오프리터 문자는 모두 C1_ALPHA 특성을 갖습니다.

이름 의미
C1_UPPER 0x0001 대문자
C1_LOWER 0x0002 소문자
C1_DIGIT 0x0004 10 진수
C1_SPACE 0x0008 공백 문자
C1_PUNCT 0x0010 문장 부호
C1_CNTRL 0x0020 컨트롤 문자
C1_BLANK 0x0040 빈 문자
C1_XDIGIT 0x0080 16진수
C1_ALPHA 0x0100 모든 언어 문자: 사전순, 실라바리 또는 표기법
C1_DEFINED 0x0200 정의된 문자이지만 다른 C1_* 형식 중 하나가 아닙니다.
 

다음 문자 형식은 기본 형식에서 상수 또는 계산 가능하며 이 함수에서 지원될 필요가 없습니다.

묘사
영숫자 사전순 문자 및 숫자(C1_ALPHA 및 C1_DIGIT)
인쇄용 그래픽 문자 및 공백(C1_CNTRL 제외한 모든 C1_* 형식)
 

Ctype 2

이러한 형식은 유니코드 텍스트의 적절한 레이아웃을 지원합니다. DBCS 로캘의 경우 문자 형식은 좁은 문자와 와이드 문자 모두에 적용됩니다. 방향 특성은 유니코드로 표준화된 양방향 레이아웃 알고리즘이 정확한 결과를 생성하도록 할당됩니다. 이러한 형식은 상호 배타적입니다. 이러한 특성 사용에 대한 자세한 내용은 유니코드 표준참조하세요.

이름 의미
강하다
C2_LEFTTORIGHT 0x0001 왼쪽에서 오른쪽으로
C2_RIGHTTOLEFT 0x0002 오른쪽에서 왼쪽으로
약한
C2_EUROPENUMBER 0x0003 유럽 숫자, 유럽 숫자
C2_EUROPESEPARATOR 0x0004 유럽 숫자 구분 기호
C2_EUROPETERMINATOR 0x0005 유럽 숫자 종결자
C2_ARABICNUMBER 0x0006 아랍어 번호
C2_COMMONSEPARATOR 0x0007 일반 숫자 구분 기호
중립의
C2_BLOCKSEPARATOR 0x0008 블록 구분 기호
C2_SEGMENTSEPARATOR 0x0009 세그먼트 구분 기호
C2_WHITESPACE 0x000A 공백
C2_OTHERNEUTRAL 0x000B 기타 중립
해당 없음
C2_NOTAPPLICABLE 0x0000 암시적 방향성 없음(예: 컨트롤 코드)
 

Ctype 3

이러한 형식은 일반 텍스트 처리 또는 표준 C 라이브러리 함수에 필요한 POSIX 형식에 대한 확장의 자리 표시자입니다. 이러한 값의 비트 OR은 dwInfoType CT_CTYPE3 설정된 경우 검색됩니다. DBCS 로캘의 경우 Ctype 3 특성은 좁은 문자와 와이드 문자 모두에 적용됩니다. 일본어 히라가나 및 가타카나 문자와 간지 이데오프리터 문자는 모두 C3_ALPHA 특성을 갖습니다.

이름 의미
C3_NONSPACING 0x0001 간격이 없는 표시
C3_DIACRITIC 0x0002 비경선 표시
C3_VOWELMARK 0x0004 모음 비스페이스 표시
C3_SYMBOL 0x0008 상징
C3_KATAKANA 0x0010 가타카나 문자
C3_HIRAGANA 0x0020 히라가나 문자
C3_HALFWIDTH 0x0040 반자(좁은) 문자
C3_FULLWIDTH 0x0080 전체 너비(와이드) 문자
C3_IDEOGRAPH 0x0100 표기법 문자
C3_KASHIDA 0x0200 아랍어 카시다 문자
C3_LEXICAL 0x0400 단어의 일부로 계산되는 문장 부호(카시다, 하이픈, 여성/남성 서수 표시기, 등호 등)
C3_ALPHA 0x8000 모든 언어 문자(사전순, 실라바리 및 표기법)
C3_HIGHSURROGATE 0x0800 Windows Vista: 상위 서로게이트 코드 단위
C3_LOWSURROGATE 0x1000 Windows Vista: 낮은 서로게이트 코드 단위
해당 없음
C3_NOTAPPLICABLE 0x0000 해당 없음
 

C3_HIGHSURROGATE 및 C3_LOWSURROGATE 완전성을 위해서만 나열되며 이 함수에 제공되지 않아야 합니다. 유니코드와만 관련이 있습니다.

Windows 8부터: GetStringTypeW Stringapiset.h에 선언됩니다. Windows 8 이전에는 Winnls.h에서 선언되었습니다.

요구 사항

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

참고 항목

GetStringTypeA

GetStringTypeEx

국가 언어 지원

국가 언어 지원 함수