CUrl クラス

このクラスは、URL を表します。 これを使用することにより、既存の URL 文字列を解析する場合でも、文字列を最初から作成する場合でも、URL の各要素を他の要素とは独立して操作できます。

重要

このクラスとそのメンバーは、Windows ランタイムで実行するアプリケーションで使用することはできません。

構文

class CUrl

メンバー

パブリック コンストラクター

名前 説明
CUrl::CUrl コンストラクター。
CUrl::~CUrl デストラクター。

パブリック メソッド

名前 説明
CUrl::Canonicalize URL 文字列を正規形式に変換するには、このメソッドを呼び出します。
CUrl::Clear すべての URL フィールドをクリアするには、このメソッドを呼び出します。
CUrl::CrackUrl URL をデコードして解析するには、このメソッドを呼び出します。
CUrl::CreateUrl URL を作成するには、このメソッドを呼び出します。
CUrl::GetExtraInfo URL から追加情報 (text や # text など) を取得するには、このメソッドを呼び出します。
CUrl::GetExtraInfoLength URL から取得する追加情報 (text や # text など) の長さを取得するには、このメソッドを呼び出します。
CUrl::GetHostName URL からホスト名を取得するには、このメソッドを呼び出します。
CUrl::GetHostNameLength ホスト名の長さを取得するには、このメソッドを呼び出します。
CUrl::GetPassword URL からパスワードを取得するには、このメソッドを呼び出します。
CUrl::GetPasswordLength パスワードの長さを取得するには、このメソッドを呼び出します。
CUrl::GetPortNumber ATL_URL_PORT に関するポート番号を取得するには、このメソッドを呼び出します。
CUrl::GetScheme URL スキームを取得するには、このメソッドを呼び出します。
CUrl::GetSchemeName URL スキーム名を取得するには、このメソッドを呼び出します。
CUrl::GetSchemeNameLength URL スキーム名の長さを取得するには、このメソッドを呼び出します。
CUrl::GetUrlLength URL の長さを取得するには、このメソッドを呼び出します。
CUrl::GetUrlPath URL パスを取得するには、このメソッドを呼び出します。
CUrl::GetUrlPathLength URL パスの長さを取得するには、このメソッドを呼び出します。
CUrl::GetUserName URL からユーザー名を取得するには、このメソッドを呼び出します。
CUrl::GetUserNameLength ユーザー名の長さを取得するには、このメソッドを呼び出します。
CUrl::SetExtraInfo URL の追加情報 (text や # text など) を設定するには、このメソッドを呼び出します。
CUrl::SetHostName ホスト名を設定するには、このメソッドを呼び出します。
CUrl::SetPassword パスワードを設定するには、このメソッドを呼び出します。
CUrl::SetPortNumber ATL_URL_PORT に関するポート番号を設定するには、このメソッドを呼び出します。
CUrl::SetScheme URL スキームを設定するには、このメソッドを呼び出します。
CUrl::SetSchemeName URL スキーム名を設定するには、このメソッドを呼び出します。
CUrl::SetUrlPath URL パスを設定するには、このメソッドを呼び出します。
CUrl::SetUserName URL 名を設定するには、このメソッドを呼び出します。

パブリック演算子

名前 説明
CUrl::operator = 指定された CUrl オブジェクトを現在の CUrl オブジェクトに割り当てます。

解説

CUrl を使用することにより、パスやポート番号などの URL のフィールドを操作できます。 CUrl では、次の形式の URL が認識されます。

<Scheme>://<UserName>:<Password>@<HostName>:<PortNumber>/<UrlPath><ExtraInfo>

(一部のフィールドは省略可能です)。たとえば、次の URL を考えてみましょう。

http://someone:secret@www.microsoft.com:80/visualc/stuff.htm#contents

CUrl::CrackUrl によって次のように解析されます。

  • Scheme: "http" または ATL_URL_SCHEME_HTTP

  • UserName: "someone"

  • Password: "secret"

  • HostName: "www.microsoft.com"

  • PortNumber: 80

  • UrlPath: "visualc/stuff.htm"

  • ExtraInfo: "#contents"

(たとえば) UrlPath フィールドを操作するには、GetUrlPathGetUrlPathLengthSetUrlPath を使用します。 CreateUrl を使用して、完全な URL 文字列を作成します。

必要条件

ヘッダー: atlutil.h

CUrl::Canonicalize

URL 文字列を正規形式に変換するには、このメソッドを呼び出します。

inline BOOL Canonicalize(DWORD dwFlags = 0) throw();

パラメーター

dwFlags
正規化を制御するフラグ。 フラグが指定されていない場合 (dwFlags = 0)、メソッドによって、すべての安全でない文字およびメタ シーケンス (\、\ ..、\... など) はエスケープ シーケンスに変換されます。 dwFlags には、次のいずれかの値を指定できます。

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

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

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

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

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

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

戻り値

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

解説

正規形式に変換するには、安全でない文字とスペースをエスケープ シーケンスに変換する必要があります。

CUrl::Clear

すべての URL フィールドをクリアするには、このメソッドを呼び出します。

inline void Clear() throw();

CUrl::CrackUrl

URL をデコードして解析するには、このメソッドを呼び出します。

BOOL CrackUrl(LPCTSTR lpszUrl, DWORD dwFlags = 0) throw();

パラメーター

lpszUrl
URL。

dwFlags
解析後、lpszUrl 内のすべてのエスケープ文字を実際の値に変換するには、ATL_URL_DECODE または ATL_URL_ESCAPE を指定します (Visual C++ 2005 より以前は、ATL_URL_DECODE によって、解析前にすべてのエスケープ文字が変換されていました)。

戻り値

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

CUrl::CreateUrl

このメソッドは、CUrl オブジェクトのコンポーネント フィールドから URL 文字列を作成します。

inline BOOL CreateUrl(
    LPTSTR lpszUrl,
    DWORD* pdwMaxLength,
    DWORD dwFlags = 0) const throw();

パラメーター

lpszUrl
完全な URL 文字列を保持する文字列バッファ。

pdwMaxLength
lpszUrl 文字列バッファの最大長。

dwFlags
lpszUrl 内のすべてのエスケープ文字を実際の値に変換するには、ATL_URL_ESCAPE を指定します。

戻り値

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

解説

このメソッドは、次の形式を使用して完全な URL 文字列を作成するために、個々のフィールドを追加します。

<scheme>://<user>:<pass>@<domain>:<port><path><extra>

このメソッドを呼び出すと、pdwMaxLength パラメーターには、最初、lpszUrl パラメーターによって参照される文字列バッファの最大長が含まれている必要があります。 pdwMaxLength パラメーターの値は、URL 文字列の実際の長さで更新されます。

このサンプルは、CUrl オブジェクトの作成とその URL 文字列の取得を示します

CUrl url;

// Set the CUrl contents
url.CrackUrl(_T("http://someone:secret@www.microsoft.com:8080/visualc/stuff.htm#contents"));

// Obtain the length of the URL string and allocate a buffer to 
// hold its contents
DWORD dwUrlLen = url.GetUrlLength() + 1;
TCHAR* szUrl = new TCHAR[dwUrlLen];

// Retrieve the contents of the CUrl object
url.CreateUrl(szUrl, &dwUrlLen, 0L);

// Cleanup
delete[] szUrl;   

CUrl::CUrl

コンストラクター。

CUrl() throw();
CUrl(const CUrl& urlThat) throw();

パラメーター

urlThat
URL を作成するためにコピーする CUrl オブジェクト。

CUrl::~CUrl

デストラクター。

~CUrl() throw();

CUrl::GetExtraInfo

URL から追加情報 (text や # text など) を取得するには、このメソッドを呼び出します。

inline LPCTSTR GetExtraInfo() const throw();

戻り値

追加情報を含む文字列を返します。

CUrl::GetExtraInfoLength

URL から取得する追加情報 (text や # text など) の長さを取得するには、このメソッドを呼び出します。

inline DWORD GetExtraInfoLength() const throw();

戻り値

追加情報を含む文字列の長さを返します。

CUrl::GetHostName

URL からホスト名を取得するには、このメソッドを呼び出します。

inline LPCTSTR GetHostName() const throw();

戻り値

ホスト名を返します。

CUrl::GetHostNameLength

ホスト名の長さを取得するには、このメソッドを呼び出します。

inline DWORD GetHostNameLength() const throw();

戻り値

ホスト名の長さを返します。

CUrl::GetPassword

URL からパスワードを取得するには、このメソッドを呼び出します。

inline LPCTSTR GetPassword() const throw();

戻り値

パスワードを返します。

CUrl::GetPasswordLength

パスワードの長さを取得するには、このメソッドを呼び出します。

inline DWORD GetPasswordLength() const throw();

戻り値

パスワードの長さを返します。

CUrl::GetPortNumber

ポート番号を取得するには、このメソッドを呼び出します。

inline ATL_URL_PORT GetPortNumber() const throw();

戻り値

ポート番号を返します。

CUrl::GetScheme

URL スキームを取得するには、このメソッドを呼び出します。

inline ATL_URL_SCHEME GetScheme() const throw();

戻り値

URL のスキームを説明する ATL_URL_SCHEME 値を返します。

CUrl::GetSchemeName

URL スキーム名を取得するには、このメソッドを呼び出します。

inline LPCTSTR GetSchemeName() const throw();

戻り値

URL スキーム名 ("http"、"ftp" など) を返します。

CUrl::GetSchemeNameLength

URL スキーム名の長さを取得するには、このメソッドを呼び出します。

inline DWORD GetSchemeNameLength() const throw();

戻り値

URL スキーム名の長さを返します。

CUrl::GetUrlLength

URL の長さを取得するには、このメソッドを呼び出します。

inline DWORD GetUrlLength() const throw();

戻り値

URL の長さを返します。

CUrl::GetUrlPath

URL パスを取得するには、このメソッドを呼び出します。

inline LPCTSTR GetUrlPath() const throw();

戻り値

URL パスを返します。

CUrl::GetUrlPathLength

URL パスの長さを取得するには、このメソッドを呼び出します。

inline DWORD GetUrlPathLength() const throw();

戻り値

URL パスの長さを返します。

CUrl::GetUserName

URL からユーザー名を取得するには、このメソッドを呼び出します。

inline LPCTSTR GetUserName() const throw();

戻り値

ユーザー名を返します。

CUrl::GetUserNameLength

ユーザー名の長さを取得するには、このメソッドを呼び出します。

inline DWORD GetUserNameLength() const throw();

戻り値

ユーザー名の長さを返します。

CUrl::operator =

指定された CUrl オブジェクトを現在の CUrl オブジェクトに割り当てます。

CUrl& operator= (const CUrl& urlThat) throw();

パラメーター

urlThat
現在のオブジェクトにコピーする CUrl オブジェクト。

戻り値

現在のオブジェクトへの参照を返します。

CUrl::SetExtraInfo

URL の追加情報 (text や # text など) を設定するには、このメソッドを呼び出します。

inline BOOL SetExtraInfo(LPCTSTR lpszInfo) throw();

パラメーター

lpszInfo
URL に含める追加情報が含まれている文字列。

戻り値

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

CUrl::SetHostName

ホスト名を設定するには、このメソッドを呼び出します。

inline BOOL SetHostName(LPCTSTR lpszHost) throw();

パラメーター

lpszHost
ホスト名です。

戻り値

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

CUrl::SetPassword

パスワードを設定するには、このメソッドを呼び出します。

inline BOOL SetPassword(LPCTSTR lpszPass) throw();

パラメーター

lpszPass
パスワード。

戻り値

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

CUrl::SetPortNumber

ポート番号を設定するには、このメソッドを呼び出します。

inline BOOL SetPortNumber(ATL_URL_PORT nPrt) throw();

パラメーター

nPrt
ポート番号。

戻り値

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

CUrl::SetScheme

URL スキームを設定するには、このメソッドを呼び出します。

inline BOOL SetScheme(ATL_URL_SCHEME nScheme) throw();

パラメーター

nScheme
スキームの ATL_URL_SCHEME 値の 1 つ。

戻り値

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

解説

スキームを名前でも設定できます (「CUrl::SetSchemeName」を参照)。

CUrl::SetSchemeName

URL スキーム名を設定するには、このメソッドを呼び出します。

inline BOOL SetSchemeName(LPCTSTR lpszSchm) throw();

パラメーター

lpszSchm
URL スキーム名。

戻り値

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

解説

ATL_URL_SCHEME 定数を使用してスキームを設定することもできます (「CUrl::SetScheme」を参照)。

CUrl::SetUrlPath

URL パスを設定するには、このメソッドを呼び出します。

inline BOOL SetUrlPath(LPCTSTR lpszPath) throw();

パラメーター

lpszPath
URL パス。

戻り値

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

CUrl::SetUserName

URL 名を設定するには、このメソッドを呼び出します。

inline BOOL SetUserName(LPCTSTR lpszUser) throw();

パラメーター

lpszUser
ユーザー名。

戻り値

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

関連項目

クラス