ATL HTTP ユーティリティ関数

これらの関数は、URL の操作をサポートします。

関数 説明
AtlCanonicalizeUrl URL を正規化します。これには、安全でない文字や空白をエスケープ シーケンスに変換する処理が含まれます。
AtlCombineUrl ベース URL と相対 URL を結合して 1 つの正規 URL にします。
AtlEscapeUrl すべての安全でない文字をエスケープ シーケンスに変換します。
AtlGetDefaultUrlPort 特定のインターネット プロトコルまたはスキームに関連付けられた既定のポート番号を取得します。
AtlIsUnsafeUrlChar 文字が URL で安全に使用できるかどうかを判断します。
AtlUnescapeUrl エスケープされた文字を元の値に変換します。
RGBToHtml COLORREF の値を、そのカラー値に対応する HTML テキストに変換します。
SystemTimeToHttpDate システム時刻を HTTP ヘッダーで使用できる形式の文字列に変換します。

要件

ヘッダー: atlutil.h

AtlCanonicalizeUrl

URL を標準形式に変換します。安全でない文字や空白をエスケープ シーケンスに変換する処理などが含まれます。

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

パラメーター

szUrl
正規化される URL。

szCanonicalized
正規化された URL を受け取る、呼び出し元によって割り当てられたバッファー。

pdwMaxLength
szCanonicalized の長さ (文字数) を含む変数を指すポインター。 関数が成功した場合、この変数は、バッファーに書き込まれた文字数 (終了 nulll 文字を含む) を受け取ります。 関数が失敗した場合、変数は、必要な長さ (終了 null 文字の領域を含む) をバイト数で受け取ります。

dwFlags
この関数の動作を制御する ATL_URL フラグ。

  • ATL_URL_BROWSER_MODE: "#" または "" の後の文字をエンコードまたはデコードせず、"?" の後の末尾の空白を削除しません。 この値を指定しない場合、URL 全体がエンコードされ、末尾の空白は削除されます。

  • ATL_URL _DECODE: URL を解析する前に、すべての %XX シーケンス (エスケープ シーケンスを含む) を文字に変換します。

  • ATL_URL _ENCODE_PERCENT: 検出されたすべてのパーセント記号をエンコードします。 既定では、パーセント記号はエンコードされません。

  • ATL_URL _ENCODE_SPACES_ONLY: スペースのみをエンコードします。

  • ATL_URL_ESCAPE: すべてのエスケープ シーケンス (%XX) を対応する文字に変換します。

  • ATL_URL_NO_ENCODE: 安全でない文字をエスケープ シーケンスに変換しません。

  • ATL_URL_NO_META: メタ シーケンス ("." や ".." など) を URL から削除しません。

戻り値

成功した場合は TRUE、失敗した場合は FALSE を返します。

解説

現在のバージョンの InternetCanonicalizeUrl と同様に動作しますが、WinInet または Internet Explorer をインストールする必要はありません。

AtlCombineUrl

ベース URL と相対 URL を結合して、1 つの標準形式の 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 の長さ (文字数) を含む変数を指すポインター。 関数が成功した場合、この変数は、バッファーに書き込まれた文字数 (終了 nulll 文字を含む) を受け取ります。 関数が失敗した場合、変数は、必要な長さ (終了 null 文字の領域を含む) をバイト数で受け取ります。

dwFlags
この関数の動作を制御するフラグ。 AtlCanonicalizeUrl を参照してください。

戻り値

成功した場合は TRUE、失敗した場合は FALSE を返します。

解説

現在のバージョンの InternetCombineUrl と同様に動作しますが、WinInet または Internet Explorer をインストールする必要はありません。

AtlEscapeUrl

すべての安全でない文字をエスケープ シーケンスに変換します。

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 は、バッファーに書き込まれた文字数 (終了 nulll 文字を含む) を受け取ります。 関数が失敗した場合、変数は、必要な長さ (終了 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_NUMBER。

AtlIsUnsafeUrlChar

URL で使用しても安全な文字かどうかを判断します。

inline BOOL AtlIsUnsafeUrlChar(char chIn) throw();

パラメーター

chIn
安全性をテストされる文字。

戻り値

入力文字が安全でない場合は TRUE、それ以外の場合は FALSE を返します。

解説

URL で使用すべきではない文字は、この関数を使用してテストすることができ、AtlCanonicalizeUrl を使用して変換できます。

AtlUnescapeUrl

エスケープされた文字を元の値に変換します。

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 変数を指すポインター。 関数が成功した場合、この変数は、バッファーに書き込まれた文字数 (終了 nulll 文字を含む) を受け取ります。 関数が失敗した場合、変数は、必要な長さ (終了 null 文字の領域を含む) をバイト数で受け取ります。

dwMaxLength
バッファー lpszStringOut のサイズ。

戻り値

成功した場合は TRUE、失敗した場合は FALSE を返します。

解説

AtlEscapeUrl によって適用される変換プロセスを反転させます。

RGBToHtml

COLORREF の値を、そのカラー値に対応する HTML テキストに変換します。

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

パラメーター

color
RGB カラー値。

pbOut
HTML カラー値のテキストを受け取る、呼び出し元によって割り当てられたバッファー。 バッファーには、null 終端文字の領域を含む少なくとも 8 文字の領域が必要です。

nBuffer
バッファーのバイト単位のサイズ (null 終端文字の領域を含む)。

戻り値

成功した場合は TRUE、失敗した場合は FALSE を返します。

解説

HTML カラー値は、ポンド記号とその後に続く 6 桁の 16 進値 (赤、緑、青の各色の構成要素に 2 桁を使用) です (たとえば、#FFFFFF は白です)。

SystemTimeToHttpDate

システム時刻を HTTP ヘッダーで使用できる形式の文字列に変換します。

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

パラメーター

st
HTTP 形式の文字列として取得されるシステム時刻。

strTime
RFC 2616 (https://www.ietf.org/rfc/rfc2616.txt) および RFC 1123 (https://www.ietf.org/rfc/rfc1123.txt) で定義されている HTTP 日時を受け取る文字列変数への参照。

関連項目

概念
ATL COM デスクトップ コンポーネント
InternetCanonicalizeUrl