Функция UrlUnescapeW (shlwapi.h)
Преобразует escape-последовательности обратно в обычные символы.
Синтаксис
LWSTDAPI UrlUnescapeW(
[in, out] PWSTR pszUrl,
[out, optional] PWSTR pszUnescaped,
[in, out, optional] DWORD *pcchUnescaped,
DWORD dwFlags
);
Параметры
[in, out] pszUrl
Тип: PTSTR
Указатель на строку, завершаемую значением NULL, с URL-адресом. Если dwFlags задано значение URL_UNESCAPE_INPLACE, преобразованная строка возвращается через этот параметр.
[out, optional] pszUnescaped
Тип: PTSTR
Указатель на буфер, который получит строку, завершающую значение NULL, которая содержит незаключенные версии pszURL. Если URL_UNESCAPE_INPLACE задан в dwFlags, этот параметр игнорируется.
[in, out, optional] pcchUnescaped
Тип: DWORD*
Число символов в буфере, на которое указывает pszUnescaped. При записи значение pcchUnescaped указывает размер буфера. Если функция возвращает код успешного выполнения и флаг URL_UNESCAPE_INPLACE не задан, значение, которое pcchUnescaped указывает на число символов, записанных в этот буфер, не подсчитывая завершающий символ NULL. Если возвращается код ошибки E_POINTER, буфер был слишком маленьким, и значение, к которому pcchUnescaped точек задано требуемое количество символов, которые буфер должен содержать. Если возвращаются другие ошибки, значение, к которому pcchUnescaped точек не определено.
dwFlags
Тип: DWORD
Флаги, управляющие тем, какие символы не отображаются. Это может быть сочетание следующих флагов.
URL_DONT_UNESCAPE_EXTRA_INFO
Не преобразуйте # или ? символы или любые символы, следующие за ними в строке.
URL_UNESCAPE_AS_UTF8
в Windows 8. Декодируйте URL-адреса, закодированные с помощью флага URL_ESCAPE_AS_UTF8.
URL_UNESCAPE_INPLACE
Используйте pszURL для возврата преобразованной строки вместо pszUnescaped.
Возвращаемое значение
Тип: HRESULT
Возвращает S_OK в случае успешного выполнения. Если флаг URL_UNESCAPE_INPLACE не задан, значение, указываемое pcchUnescaped, будет задано число символов в выходном буфере, на которое указывает pszUnescaped. Возвращает E_POINTER, если флаг URL_UNESCAPE_INPLACE не задан, а выходной буфер слишком мал. Параметр pcchUnescaped будет иметь требуемый размер буфера. В противном случае возвращает стандартное значение ошибки.
Замечания
Escape-последовательность имеет форму "%xy".
Входные строки не могут быть длиннее INTERNET_MAX_URL_LENGTH.
Заметка
Заголовок shlwapi.h определяет UrlUnescape как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 2000 Профессиональный, Windows XP [только классические приложения] |
минимальный поддерживаемый сервер | Windows 2000 Server [только классические приложения] |
целевая платформа | Виндоус |
заголовка | shlwapi.h |
библиотеки |
Shlwapi.lib |
DLL | Shlwapi.dll (версия 5.0 или более поздняя версия) |