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 フィールドを操作するには、GetUrlPath、GetUrlPathLength、SetUrlPath を使用します。 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 を返します。