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


Служебные функции HTTP ATL

Эти функции поддерживают обработку URL-адресов.

Function Description
AtlCanonicalizeUrl Канонизирует URL-адрес, который включает преобразование небезопасных символов и пробелов в escape-последовательности.
AtlCombineUrl Объединяет базовый URL-адрес и относительный URL-адрес в один канонический URL-адрес.
AtlEscapeUrl Преобразует все небезопасные символы в escape-последовательности.
AtlGetDefaultUrlPort Возвращает номер порта по умолчанию, связанный с определенным протоколом или схемой Интернета.
AtlIsUnsafeUrlChar Определяет, является ли символ безопасным для использования в URL-адресе.
AtlUnescapeUrl Преобразует экранированные символы обратно в исходные значения.
RGBToHtml Преобразует значение COLORREF в HTML-текст, соответствующий этому значению цвета.
SystemTimeToHttpDate Вызывайте эту функцию для преобразования системного времени в строку в формате, пригодном для использования в заголовках HTTP.

Требования

Заголовок: atlutil.h

AtlCanonicalizeUrl

Вызывайте эту функцию для приведения URL-адреса к каноническому виду, что включает преобразование небезопасных символов и пробелов в escape-последовательности.

inline BOOL AtlCanonicalizeUrl(
   LPCTSTR szUrl,
   LPTSTR szCanonicalized,
   DWORD* pdwMaxLength,
   DWORD dwFlags = 0) throw();

Параметры

szUrl
Канонизированный URL-адрес.

szCanonicalized
Выделенный вызывающим буфером для получения канонизованного URL-адреса.

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

dwFlags
ATL_URL флаги, управляющие поведением этой функции.

  • ATL_URL_BROWSER_MODE Не кодирует или декодирует символы после "#" или "?", а не удаляет конечный пробел после "?". Если это значение не указано, весь URL-адрес закодирован и удаляется конечный пробел.

  • ATL_URL_DECODE преобразует все последовательности %XX в символы, включая escape-последовательности, перед анализом URL-адреса.

  • ATL_URL_ENCODE_PERCENT кодирует любые знаки процента, возникшие. По умолчанию знаки процента не кодируются.

  • ATL_URL_ENCODE_SPACES_ONLY кодирует только пробелы.

  • ATL_URL_ESCAPE преобразует все escape-последовательности (%XX) в соответствующие символы.

  • ATL_URL_NO_ENCODE не преобразует небезопасные символы в escape-последовательности.

  • ATL_URL_NO_META Не удаляет мета последовательности (например, "." и "..") из URL-адреса.

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

Возвращает значение TRUE при успешном выполнении, false при сбое.

Замечания

Работает как текущая версия InternetCanonicalizeUrl, но не требует установки WinInet или Internet Обозреватель.

AtlCombineUrl

Вызывайте эту функцию для объединения базового и относительного URL-адресов в один канонический URL-адрес.

inline BOOL AtlCombineUrl(
   LPCTSTR szBaseUrl,
   LPCTSTR szRelativeUrl,
   LPTSTR szBuffer,
   DWORD* pdwMaxLength,
   DWORD dwFlags = 0) throw();

Параметры

szBaseUrl
Базовый URL-адрес.

szRelativeUrl
URL-адрес относительно базового URL-адреса.

szBuffer
Выделенный вызывающим буфером для получения канонизованного URL-адреса.

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

dwFlags
Флаги, управляющие поведением этой функции. См . статью AtlCanonicalizeUrl.

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

Возвращает значение TRUE при успешном выполнении, false при сбое.

Замечания

Работает так, как текущая версия InternetCombineUrl, но не требует установки WinInet или Internet Обозреватель.

AtlEscapeUrl

Вызывайте эту функцию для преобразования всех небезопасных символов в escape-последовательности.

inline BOOL AtlEscapeUrl(
   LPCSTR szStringIn,
   LPSTR szStringOut,
   DWORD* pdwStrLen,
   DWORD dwMaxLength,
   DWORD dwFlags = 0) throw();

inline BOOL AtlEscapeUrl(
   LPCWSTR szStringIn,
   LPWSTR szStringOut,
   DWORD* pdwStrLen,
   DWORD dwMaxLength,
   DWORD dwFlags = 0) throw();

Параметры

lpszStringIn
URL-адрес, который необходимо преобразовать.

lpszStringOut
Выделенный вызывающим буфером, в который будет записан преобразованный URL-адрес.

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

dwMaxLength
Размер буфера lpszStringOut.

dwFlags
ATL_URL флаги, управляющие поведением этой функции. Сведения о возможных значениях см. в ATLCanonicalizeUrl .

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

Возвращает значение TRUE при успешном выполнении, false при сбое.

AtlGetDefaultUrlPort

Вызывайте эту функцию для получения номера порта по умолчанию, связанного с определенным интернет-протоколом или схемой.

inline ATL_URL_PORT AtlGetDefaultUrlPort(ATL_URL_SCHEME m_nScheme) throw();

Параметры

m_nScheme
Значение ATL_URL_SCHEME , определяющее схему, для которой требуется получить номер порта.

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

ATL_URL_PORT, связанные с указанной схемой или ATL_URL_INVALID_PORT_NUМБ ER, если схема не распознается.

AtlIsUnsafeUrlChar

Вызывайте эту функцию, чтобы определить, безопасно ли использовать символ в URL-адресе.

inline BOOL AtlIsUnsafeUrlChar(char chIn) throw();

Параметры

Подбородок
Символ для проверки безопасности.

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

Возвращает значение TRUE, если входной символ небезопасн, значение FALSE в противном случае.

Замечания

Символы, которые не следует использовать в URL-адресах, можно протестировать с помощью этой функции и преобразовать с помощью AtlCanonicalizeUrl.

AtlUnescapeUrl

Вызывайте эту функцию для обратного преобразования escape-символов в первоначальные значения.

inline BOOL AtlUnescapeUrl(
   LPCSTR szStringIn,
   LPSTR szStringOut,
   LPDWORD pdwStrLen,
   DWORD dwMaxLength) throw();

inline BOOL AtlUnescapeUrl(
   LPCWSTR szStringIn,
   LPWSTR szStringOut,
   LPDWORD pdwStrLen,
   DWORD dwMaxLength) throw();

Параметры

lpszStringIn
URL-адрес, который необходимо преобразовать.

lpszStringOut
Выделенный вызывающим буфером, в который будет записан преобразованный URL-адрес.

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

dwMaxLength
Размер буфера lpszStringOut.

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

Возвращает значение TRUE при успешном выполнении, false при сбое.

Замечания

Отменяет процесс преобразования, примененный AtlEscapeUrl.

RGBToHtml

Преобразует значение COLORREF в HTML-текст, соответствующий этому значению цвета.

bool inline RGBToHtml(
   COLORREF color,
   LPTSTR pbOut,
   long nBuffer);

Параметры

color
Значение цвета RGB.

pbOut
Выделенный вызывающим буфером для получения текста для значения цвета HTML. Буфер должен содержать не менее 8 символов, включая пробел для конца null.

nBuffer
Размер буфера в байтах (включая пробел для конца null).

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

Возвращает значение TRUE при успешном выполнении, false при сбое.

Замечания

Значение цвета HTML — это знак фунта, за которым следует шестнадцатеричное шестнадцатеричное значение с использованием 2 цифр для каждого из красных, зеленых и синих компонентов цвета (например, #FFFFFF является белым).

SystemTimeToHttpDate

Вызывайте эту функцию для преобразования системного времени в строку в формате, пригодном для использования в заголовках HTTP.

inline void SystemTimeToHttpDate(
   const SYSTEMTIME& st,
   CStringA& strTime);

Параметры

St
Системное время, полученное в виде строки формата HTTP.

strTime
Ссылка на строковую переменную для получения даты HTTP, определенной в RFC 2616 (https://www.ietf.org/rfc/rfc2616.txt) и RFC 1123 (https://www.ietf.org/rfc/rfc1123.txt).

См. также

Основные понятия
Компоненты ATL COM Desktop
InternetCanonicalizeUrl