Поделиться через


Функция 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 или более поздняя версия)