다음을 통해 공유


IsNLSDefinedString 함수(winnls.h)

문자열의 각 문자에 지정된 NLS 기능에 대해 정의된 결과가 있는지 확인합니다.

구문

BOOL IsNLSDefinedString(
  [in] NLS_FUNCTION     Function,
  [in] DWORD            dwFlags,
  [in] LPNLSVERSIONINFO lpVersionInformation,
  [in] LPCWSTR          lpString,
  [in] INT              cchStr
);

매개 변수

[in] Function

쿼리할 NLS 기능입니다. 이 값은 COMPARE_STRING 합니다. SYSNLS_FUNCTION 열거형을 참조하세요.

[in] dwFlags

함수를 정의하는 플래그입니다. 0이어야 합니다.

[in] lpVersionInformation

버전 정보를 포함하는 NLSVERSIONINFO 구조체에 대한 포인터입니다. 일반적으로 GetNLSVersion을 호출하여 정보를 가져옵니다. 함수가 현재 버전을 사용하는 경우 애플리케이션은 이 매개 변수를 NULL 로 설정합니다.

[in] lpString

검사할 UTF-16 문자열에 대한 포인터입니다.

[in] cchStr

lpString으로 표시된 문자열의 UTF-16자 수입니다. 이 개수에는 종료 null 문자가 포함될 수 있습니다. 종료 null 문자가 문자 수에 포함된 경우 종료 null 문자가 항상 정의되므로 검사 동작에 영향을 주지 않습니다.

애플리케이션은 문자열이 null로 종료되었음을 나타내기 위해 -1을 제공해야 합니다. 이 경우 함수 자체는 문자열 길이를 계산합니다.

반환 값

입력 문자열이 유효한 경우에만 성공하면 TRUE 를 반환하고, 그렇지 않으면 FALSE 를 반환합니다. 확장된 오류 정보를 가져오기 위해 애플리케이션은 다음 오류 코드 중 하나를 반환할 수 있는 GetLastError를 호출할 수 있습니다.

  • ERROR_INSUFFICIENT_BUFFER. 제공된 버퍼 크기가 충분히 크지 않거나 NULL로 잘못 설정되었습니다.
  • ERROR_INVALID_FLAGS. 플래그에 제공된 값이 잘못되었습니다.
  • ERROR_INVALID_PARAMETER. 매개 변수 값이 잘못되었습니다.

설명

이 함수는 Active Directory와 같은 애플리케이션이 정의되지 않은 코드 포인트가 있는 문자열을 거부할 수 있도록 정의된 문자열과 정의되지 않은 문자열을 구분합니다. 함수를 사용하면 애플리케이션이 데이터베이스를 다시 인덱싱할 필요성을 최소화할 수 있습니다. 자세한 내용은 애플리케이션에서 정렬 처리를 참조하세요.

예를 들어 Function 이 COMPARE_STRING 설정된 경우 IsNLSDefinedString 은 정의되지 않은 코드 포인트, 정의되지 않은 유니코드 문자를 나타내는 서로게이트 쌍 또는 잘못된 형식의 서로게이트 쌍을 확인합니다. 함수가 특정 문자열에 대해 TRUE 를 반환하는 경우 LCMAP_SORTKEY 설정된 CompareString 또는 LCMapString 에서 검색한 결과는 해당 NLS 버전이 변경되지 않는 한 동일하게 보장됩니다.

요구 사항

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

참고 항목

CompareString

GetNLSVersion

LCMapString

NLSVERSIONINFO

국가 언어 지원

국가 언어 지원 함수

SYSNLS_FUNCTION