Функция 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) |