Функция DownlevelGetLocaleScripts

Предоставляет список сценариев для указанного языкового стандарта.

Примечание.

Эта функция используется только приложениями, работающими в операционных системах до Windows Vista. Для его использования требуется пакет скачивания. Приложения, которые работают только в Windows Vista и более поздних версиях, должны вызывать GetLocaleInfo с параметром LCType, равным LOCALE_SSCRIPTS.

 

Синтаксис

int DownlevelGetLocaleScripts(
  _In_  LPCWSTR lpLocaleName,
  _Out_ LPWSTR  lpScripts,
  _In_  int     cchScripts
);

Параметры

lpLocaleName [in]

Указатель на имя языкового стандарта, завершаемого значением NULL.

lpScripts [out]

Указатель на буфер, в котором эта функция извлекает строку, завершающую значение NULL, представляющую список скриптов, используя нотацию 4 символов, используемую в ISO 15924. Каждое имя скрипта состоит из четырех латинских символов, а имена извлекаются в алфавитном порядке. За каждым из них, включая последний, следует точка с запятой.

Кроме того, этот параметр может содержать значение NULL , если для cchScripts задано значение 0. В этом случае функция возвращает требуемый размер буфера скрипта.

cchScripts [in]

Размер в символах для буфера скрипта, указанного lpScripts.

Кроме того, приложение может задать для этого параметра значение 0. В этом случае функция извлекает значение NULL в lpScripts и возвращает необходимый размер буфера скрипта.

Возвращаемое значение

Возвращает количество символов, извлеченных в буфере скрипта, включая завершающий символ NULL. Если функция завершается успешно и значение cchScripts равно 0, возвращаемое значение является обязательным размером в символах, включая завершающий символ NULL, для буфера скрипта.

Эта функция возвращает значение 0, если она не выполнена. Чтобы получить расширенные сведения об ошибке, приложение может вызвать GetLastError, который может возвращать один из следующих кодов ошибок:

  • ERROR_BADDB. Функция не могла получить доступ к данным. Эта ситуация обычно не должна возникать и обычно указывает на плохую установку, проблему диска или подобные.
  • ERROR_INSUFFICIENT_BUFFER. Предоставленный размер буфера был недостаточно велик или неправильно задан значение NULL.
  • ERROR_INVALID_PARAMETER. Любое из значений параметров было недопустимым.

Замечания

Эта функция полезна в рамках стратегии устранения проблем безопасности, связанных с международными доменными именами (IDN).

Ниже приведены некоторые примеры входных и выходных данных для этой функции, предполагая достаточный размер буфера:

Локаль lpLocaleName lpScripts
Английский (США) ru-ru Латн;
Хинди (Индия) hi-IN Дева;
Японский (Япония) ja-JP Хани; Hira; Кана;

 

Список не содержит латинский скрипт, если он не является важной частью системы записи, используемой для языкового стандарта. Однако латинские символы часто используются в контексте языковых стандартов, для которых они не являются собственными, как для внешнего бизнес-имени. В приведенном выше примере для Хинди в Индии извлекается единственный скрипт "Deva" (для Devanagari), хотя латинские символы также могут отображаться в тексте Хинди. Функция DownlevelVerifyScripts имеет специальный флаг для решения этого дела.

Требуемый файл заголовка и DLL входят в скачивание API устранения рисков с помощью Microsoft Internationalized Domain Name (IDN) (API устранения рисков) из archive.org.

Requirements

Требование Значение
Минимальная версия клиента
Windows XP [только классические приложения]
Минимальная версия сервера
Windows Server 2003 [только классические приложения]
Распространяемые компоненты
API устранения рисков в Windows XP (SP2 или более поздней версии), Windows Server 2003 (SP1 или более поздней версии), Windows Server 2003 (SP1 или более поздней версии) или Windows Vista
Верхний колонтитул
Idndl.h
DLL-библиотеки
Idndl.dll

См. также

Поддержка национального языка

Функции поддержки национальных языков

Обработка международных доменных имен (IDN)

DownlevelGetStringScripts

DownlevelVerifyScripts

GetLocaleInfo