Функция IdnToNameprepUnicode (winnls.h)

Преобразует международное доменное имя (IDN) или другую интернационализированную метку в форму NamePrep, заданную рабочей группой сети RFC 3491, но не выполняет дополнительное преобразование в Punycode. Дополнительные сведения и ссылки на соответствующие проекты стандартов см. в разделе Обработка международных доменных имен (IDN).

Синтаксис

int IdnToNameprepUnicode(
  [in]            DWORD   dwFlags,
  [in]            LPCWSTR lpUnicodeCharStr,
  [in]            int     cchUnicodeChar,
  [out, optional] LPWSTR  lpNameprepCharStr,
  [in]            int     cchNameprepChar
);

Параметры

[in] dwFlags

Флаги, указывающие параметры преобразования. Подробные определения см. в параметре dwFlagsidnToAscii.

[in] lpUnicodeCharStr

Указатель на строку Юникода, представляющую IDN или другую международную метку.

[in] cchUnicodeChar

Количество символов Юникода во входной строке Юникода, указанной lpUnicodeCharStr.

[out, optional] lpNameprepCharStr

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

[in] cchNameprepChar

Размер буфера в символах, указанный lpNameprepCharStr. Приложение может задать для размера значение 0, чтобы получить значение NULL в lpNameprepCharStr , а функция возвращает требуемый размер буфера.

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

Возвращает количество символов, полученных в lpNameprepCharStr в случае успешного выполнения. Полученная строка завершается null, только если входная строка Юникода заканчивается null.

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

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

  • ERROR_INSUFFICIENT_BUFFER. Указанный размер буфера был недостаточно велик или неправильно задано значение NULL.
  • ERROR_INVALID_FLAGS. Значения, предоставленные для флагов, были недопустимыми.
  • ERROR_INVALID_NAME. Для функции было предоставлено недопустимое имя. Обратите внимание, что этот код ошибки перехватывает все синтаксические ошибки.
  • ERROR_INVALID_PARAMETER. Любое из значений параметров было недопустимым.
  • ERROR_NO_UNICODE_TRANSLATION. В строке обнаружен недопустимый Юникод.

Комментарии

См. примечания для IdnToAscii.

Примеры

NLS. Пример преобразования международного доменного имени (IDN) демонстрирует использование этой функции.

Требования

   
Минимальная версия клиента Windows Vista [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header winnls.h (включая Windows.h)
Библиотека Normaliz.lib
DLL Normaliz.dll
Распространяемые компоненты API-интерфейсы устранения международных доменных имен (IDN) в Windows XP с пакетом обновления 2 (SP2) или Windows Server 2003 с пакетом обновления 1 (SP1)

См. также раздел

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

IdnToAscii

IdnToUnicode

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

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