CInternetSession
クラス
単一のインターネット セッションまたは複数の同時インターネット セッションを作成し、初期化します。必要な場合は、プロキシ サーバーへの接続も記述します。
構文
class CInternetSession : public CObject
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
CInternetSession::CInternetSession |
CInternetSession オブジェクトを構築します。 |
パブリック メソッド
名前 | 説明 |
---|---|
CInternetSession::Close |
インターネット セッションが終了したときにインターネット接続を閉じます。 |
CInternetSession::EnableStatusCallback |
状態コールバック ルーチンを確立します。 |
CInternetSession::GetContext |
インターネット セッションが終了したときにインターネット接続を閉じます。 |
CInternetSession::GetCookie |
指定した URL とそのすべての親 URL の Cookie を返します。 |
CInternetSession::GetCookieLength |
バッファーに格納されている Cookie の長さを指定する変数を取得します。 |
CInternetSession::GetFtpConnection |
サーバーとの FTP セッションを開きます。 ユーザーにログオンします。 |
CInternetSession::GetGopherConnection |
接続を開こうとしているアプリケーションの gopher サーバーを開きます。 |
CInternetSession::GetHttpConnection |
接続を開こうとしているアプリケーションの HTTP サーバーを開きます。 |
CInternetSession::OnStatusCallback |
状態コールバックが有効になっている場合に、操作の状態を更新します。 |
CInternetSession::OpenURL |
URL を解析して開きます。 |
CInternetSession::SetCookie |
指定した URL の Cookie を設定します。 |
CInternetSession::SetOption |
インターネット セッションのオプションを設定します。 |
パブリック演算子
名前 | 説明 |
---|---|
CInternetSession::operator HINTERNET |
現在のインターネット セッションへのハンドル。 |
解説
アプリケーションの期間中にインターネット接続を維持する必要がある場合は、クラス CWinApp
の CInternetSession
メンバーを作成できます。
インターネット セッションを確立したら、OpenURL
を呼び出すことができます。 その後、CInternetSession
では、グローバル関数 AfxParseURL
を呼び出すことで自動的に URL が解析されます。 そのプロトコルの種類に関係なく、CInternetSession
では、URL が解釈されて自動的に管理されます。 URL リソース "file://" で識別されたローカル ファイルの要求を処理できます。 OpenURL
では、渡す名前がローカル ファイルの場合、CStdioFile
オブジェクトへのポインターが返されます。
OpenURL
を使用してインターネット サーバー上の URL を開くと、サイトから情報を読み取ることができます。 サーバー上にあるファイルに対してサービス固有の (HTTP、FTP、gopher など) アクションを実行する場合は、そのサーバーとの適切な接続を確立する必要があります。 特定のサービスへの特定の種類の接続を直接開くには、次のいずれかのメンバー関数を使用します。
GetGopherConnection
では、gopher サービスへの接続を開きます。GetHttpConnection
では、HTTP サービスへの接続を開きます。GetFtpConnection
では、FTP サービスへの接続を開きます。
SetOption
では、タイムアウト値、再試行回数など、セッションのクエリ オプションを設定できます。
CInternetSession
メンバー関数 SetCookie
、GetCookie
、および GetCookieLength
では、Win32 Cookie データベースを管理する手段が提供されます。これにより、サーバーとスクリプトではクライアント ワークステーションに関する状態情報が保持されます。
基本的なインターネット プログラミング タスクの詳細については、インターネットの最初の手順: WinInet
に関する記事を参照してください。 MFC WinInet
クラスの使用に関する一般的な情報については、WinInet
を使用したインターネット プログラミングに関する記事を参照してください。
Note
CInternetSession
では、サポートされていないサービスの種類に対して AfxThrowNotSupportedException
がスローされます。 現在サポートされているサービスの種類は、FTP、HTTP、gopher、および file のみです。
継承階層
CObject
CInternetSession
要件
ヘッダー: afxinet.h
CInternetSession::CInternetSession
このメンバー関数は、CInternetSession
オブジェクトの作成時に呼び出されます。
CInternetSession(
LPCTSTR pstrAgent = NULL,
DWORD_PTR dwContext = 1,
DWORD dwAccessType = PRE_CONFIG_INTERNET_ACCESS,
LPCTSTR pstrProxyName = NULL,
LPCTSTR pstrProxyBypass = NULL,
DWORD dwFlags = 0);
パラメーター
pstrAgent
インターネット関数 ("Microsoft Internet Browser" など) を呼び出すアプリケーションまたはエンティティの名前を識別する文字列へのポインター。 pstrAgent
が NULL
(既定値) の場合、フレームワークではグローバル関数 AfxGetAppName
が呼び出されます。これにより、アプリケーションの名前を含む null で終わる文字列が返されます。 一部のプロトコルでは、この文字列を使用して、サーバーに対するアプリケーションが識別されます。
dwContext
操作のコンテキスト識別子。 dwContext
では、CInternetSession::OnStatusCallback
によって返される操作の状態情報が識別されます。 既定値は 1 に設定されています。しかし、操作の特定のコンテキスト ID を明示的に割り当てることができます。 オブジェクトとその作業は、そのコンテキスト ID に関連付けられます。
dwAccessType
必要なアクセスの種類。 有効な値を以下に示します。そのうちの 1 つだけを指定できます。
INTERNET_OPEN_TYPE_PRECONFIG
レジストリの構成済み設定を使用して接続します。 このアクセスの種類は既定として設定されます。 TIS プロキシ経由で接続するには、dwAccessType
をこの値に設定します。その後、レジストリを適切に設定します。INTERNET_OPEN_TYPE_DIRECT
インターネットに直接接続します。INTERNET_OPEN_TYPE_PROXY
CERN プロキシ経由で接続します。
さまざまな種類のプロキシでの接続については、「典型的な FTP クライアント アプリケーションでの手順」を参照してください。
pstrProxyName
dwAccessType
が INTERNET_OPEN_TYPE_PROXY
として設定されている場合の優先 CERN プロキシの名前。 既定値は、NULL
です。
pstrProxyBypass
サーバー アドレスの省略可能なリストを含む文字列へのポインター。 これらのアドレスは、プロキシ アクセスを使用するときにバイパスされる場合があります。 NULL
値を指定すると、レジストリからバイパス リストが読み取られます。 このパラメーターは、dwAccessType
が INTERNET_OPEN_TYPE_PROXY
に設定されている場合にのみ意味があります。
dwFlags
さまざまなキャッシュ オプションを示します。 既定値は 0 に設定されています。 使用できる値は次のとおりです。
INTERNET_FLAG_DONT_CACHE
ローカルや任意のゲートウェイ サーバーにデータをキャッシュしません。INTERNET_FLAG_OFFLINE
ダウンロード操作は、永続キャッシュを介してのみ満たされます。 項目がキャッシュに存在しない場合は、適切なエラー コードが返されます。 このフラグは、ビットごとの "or" (|
) 演算子と組み合わせることができます。
解説
CInternetSession
は、アプリケーションによって呼び出される最初のインターネット関数です。 内部データ構造を初期化し、アプリケーションからの今後の呼び出しに備えます。
インターネット接続を開けなかった場合、CInternetSession
では AfxThrowInternetException
がスローされます。
例
CFtpFileFind
の例を参照してください。
CInternetSession::Close
アプリケーションで CInternetSession
オブジェクトを使い終わったら、このメンバー関数を呼び出します。
virtual void Close();
例
CFtpFileFind
の例を参照してください。
CInternetSession::EnableStatusCallback
状態コールバックを有効にするには、このメンバー関数を呼び出します。
BOOL EnableStatusCallback(BOOL bEnable = TRUE);
パラメーター
bEnable
コールバックを有効にするか無効にするかを指定します。 既定値は、TRUE
です。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。 呼び出しが失敗した場合は、スローされた CInternetException
オブジェクトを調べることで、エラーの原因を特定します。
解説
状態コールバックを処理するときに、アプリケーションのステータス バーに、操作の進行状況に関する状態 (名前を解決しています、サーバーに接続していますなど) を指定できます。 長期的な操作中は特に操作の状態を表示することをお勧めします。
コールバックは要求の処理中に発生するため、アプリケーションでは、ネットワークへのデータ スループットの低下を防ぐためにコールバックにはできるだけ少ない時間を費やす必要があります。 たとえば、コールバックにダイアログ ボックスを配置すると、サーバーで要求を終了する処理が長くなる場合があります。
コールバックが保留中である限り、状態コールバックを削除することはできません。
操作を非同期的に処理するには、独自のスレッドを作成するか、MFC なしで WinInet 関数を使用する必要があります。
CInternetSession::GetContext
このメンバー関数を呼び出して、特定のアプリケーション セッションのコンテキスト値を取得します。
DWORD_PTR GetContext() const;
戻り値
アプリケーション定義コンテキスト識別子。
解説
OnStatusCallback
では、GetContext
によって返されたコンテキスト ID を使用して、特定のアプリケーションの状態を報告します。 たとえば、ユーザーがインターネット要求をアクティブ化し、状態情報が返される場合、状態コールバックではコンテキスト ID を使用して、その特定の要求の状態が報告されます。 ユーザーが 2 つの別のインターネット要求をアクティブ化し、両方で状態情報が返される場合、OnStatusCallback
ではコンテキスト識別子を使用して、対応する要求に関する状態が返されます。 その結果、コンテキスト識別子はすべての状態コールバック操作に使用され、セッションが終了するまでセッションに関連付けられます。
非同期操作の詳細については、インターネットの最初の手順: WinInet に関する記事を参照してください。
CInternetSession::GetCookie
このメンバー関数では、Windows SDK で説明されているように、Win32 関数 InternetGetCookie
の動作が実装されます。
static BOOL GetCookie(
LPCTSTR pstrUrl,
LPCTSTR pstrCookieName,
LPTSTR pstrCookieData,
DWORD dwBufLen);
static BOOL GetCookie(
LPCTSTR pstrUrl,
LPCTSTR pstrCookieName,
CString& strCookieData);
パラメーター
pstrUrl
URL を含む文字列へのポインター。
pstrCookieName
指定された URL に対して取得する Cookie の名前を含む文字列へのポインター。
pstrCookieData
最初のオーバーロードでは、Cookie データを受け取るバッファーのアドレスを含む文字列へのポインター。 この値は、NULL
の場合もあります。 2 番目のオーバーロードでは、Cookie データを受け取る CString
オブジェクトへの参照。
dwBufLen
pstrCookieData
バッファーのサイズを指定する変数。 関数が成功すると、バッファーは pstrCookieData
バッファーにコピーされたデータの量を受け取ります。 pstrCookieData
が NULL
の場合、このパラメーターでは、すべての Cookie データをコピーするために必要なバッファーのサイズを指定する値を受け取ります。
戻り値
成功した場合は TRUE
を返し、それ以外の場合は FALSE
を返します。 呼び出しが失敗した場合は、Win32 関数 GetLastError
を呼び出してエラーの原因を特定します。 次のエラー値が適用されます。
ERROR_NO_MORE_ITEMS
指定された URL とそのすべての親の Cookie はありません。ERROR_INSUFFICIENT_BUFFER
dwBufLen
に渡された値では、すべての Cookie データをコピーするには不十分です。dwBufLen
で返される値は、すべてのデータを取得するために必要なバッファーのサイズです。
解説
2 番目のオーバーロードでは、MFC によって、指定された CString
オブジェクトに Cookie データが取得されます。
CInternetSession::GetCookieLength
このメンバー関数を呼び出して、バッファーに格納されている Cookie の長さを取得します。
static DWORD GetCookieLength(
LPCTSTR pstrUrl,
LPCTSTR pstrCookieName);
パラメーター
pstrUrl
URL を含む文字列へのポインター
pstrCookieName
Cookie の名前を含む文字列へのポインター。
戻り値
バッファーに格納されている Cookie の長さを示す DWORD
値。 pstrCookieName
によって示される名前の Cookie が存在しない場合は 0。
解説
この値は GetCookie
によって使用されます。
CInternetSession::GetFtpConnection
このメンバー関数を呼び出して FTP 接続を確立し、CFtpConnection
オブジェクトへのポインターを取得します。
CFtpConnection* GetFtpConnection(
LPCTSTR pstrServer,
LPCTSTR pstrUserName = NULL,
LPCTSTR pstrPassword = NULL,
INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER,
BOOL bPassive = FALSE);
パラメーター
pstrServer
FTP サーバー名を含む文字列へのポインター。
pstrUserName
ログインするユーザーの名前を指定する null で終わる文字列へのポインター。 NULL
の場合、既定値は anonymous です。
pstrPassword
ログインに使用するパスワードを指定する null で終わる文字列へのポインター。 pstrPassword
と pstrUserName
の両方が NULL
の場合、既定の匿名パスワードはユーザーのメール名です。 pstrPassword
が NULL
(または空の文字列) であっても、pstrUserName
が NULL
でない場合は、空白のパスワードが使用されます。 次の表では、pstrUserName
と pstrPassword
の 4 つの使用できる設定の動作について説明します。
pstrUserName |
pstrPassword |
FTP サーバーに送信されたユーザー名 | FTP サーバーに送信されたパスワード |
---|---|---|---|
NULL または " " |
NULL または " " |
"anonymous" |
ユーザーのメール名 |
NULL 以外の文字列 |
NULL または " " |
pstrUserName |
|
NULL |
NULL 以外の文字列 |
ERROR | ERROR |
NULL 以外の文字列 |
NULL 以外の文字列 |
pstrUserName |
pstrPassword |
nPort
サーバーで使用する TCP/IP ポートを識別する番号。
bPassive
この FTP セッションのパッシブまたはアクティブ モードを指定します。 TRUE
に設定すると、Win32 API dwFlag
が INTERNET_FLAG_PASSIVE
に設定されます。
戻り値
CFtpConnection
オブジェクトを指すポインターです。 呼び出しが失敗した場合は、スローされた CInternetException
オブジェクトを調べることで、エラーの原因を特定します。
解説
GetFtpConnection
では、FTP サーバーに接続し、CFTPConnection
オブジェクトへのポインターを作成して返します。 サーバーで特定の操作は実行されません。 たとえば、ファイルの読み取りまたは書き込みを行う場合、これらの操作を個別の手順として実行する必要があります。 ファイルの検索、ファイルの開き方、ファイルへの読み取りまたは書き込みについては、「CFtpConnection
クラス」と「CFtpFileFind
クラス」を参照してください。 一般的な FTP 接続タスクを実行する手順については、WinInet を使用したインターネット プログラミングに関する記事を参照してください。
例
CFtpFileFind
の例を参照してください。
CInternetSession::GetGopherConnection
このメンバー関数を呼び出して新しい gopher 接続を確立し、CGopherConnection
オブジェクトへのポインターを取得します。
CGopherConnection* GetGopherConnection(
LPCTSTR pstrServer,
LPCTSTR pstrUserName = NULL,
LPCTSTR pstrPassword = NULL,
INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER);
パラメーター
pstrServer
gopher サーバー名を含む文字列へのポインター。
pstrUserName
ユーザー名を含む文字列へのポインター。
pstrPassword
アクセス パスワードを含む文字列へのポインター。
nPort
サーバーで使用する TCP/IP ポートを識別する番号。
戻り値
CGopherConnection
オブジェクトを指すポインターです。 呼び出しが失敗した場合は、スローされた CInternetException
オブジェクトを調べることで、エラーの原因を特定します。
解説
GetGopherConnection
では、gopher サーバーに接続し、CGopherConnection
オブジェクトへのポインターを作成して返します。 サーバーで特定の操作は実行されません。 たとえば、データの読み取りまたは書き込みを行う場合は、これらの操作を個別の手順として実行する必要があります。 ファイルの検索、ファイルの開き方、ファイルへの読み取りまたは書き込みについては、「CGopherConnection
クラス」、「CGopherFile
クラス」、および「CGopherFileFind
クラス」を参照してください。 FTP サイトの参照については、メンバー関数 OpenURL
に関する記述を参照してください。 一般的な gopher 接続タスクを実行する手順については、WinInet を使用したインターネット プログラミングに関する記事を参照してください。
CInternetSession::GetHttpConnection
このメンバー関数を呼び出して HTTP 接続を確立し、CHttpConnection
オブジェクトへのポインターを取得します。
CHttpConnection* GetHttpConnection(
LPCTSTR pstrServer,
INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER,
LPCTSTR pstrUserName = NULL,
LPCTSTR pstrPassword = NULL);
CHttpConnection* GetHttpConnection(
LPCTSTR pstrServer,
DWORD dwFlags,
INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER,
LPCTSTR pstrUserName = NULL,
LPCTSTR pstrPassword = NULL);
パラメーター
pstrServer
HTTP サーバー名を含む文字列へのポインター。
nPort
サーバーで使用する TCP/IP ポートを識別する番号。
pstrUserName
ユーザー名を含む文字列へのポインター。
pstrPassword
アクセス パスワードを含む文字列へのポインター。
dwflags
INTERNET_FLAG_*
フラグの任意の組み合わせ。 dwFlags
値の説明については、「CHttpConnection::OpenRequest
」の「解説」セクションの表を参照してください。
戻り値
CHttpConnection
オブジェクトを指すポインターです。 呼び出しが失敗した場合は、スローされた CInternetException
オブジェクトを調べることで、エラーの原因を特定します。
解説
GetHttpConnection
では、HTTP サーバーに接続し、CHttpConnection
オブジェクトへのポインターを作成して返します。 サーバーで特定の操作は実行されません。 たとえば、HTTP ヘッダーに対してクエリを実行する場合は、個別の手順としてこの操作を実行する必要があります。 HTTP サーバーへの接続を使用して実行できる操作については、「CHttpConnection
クラス」と「CHttpFile
クラス」を参照してください。 HTTP サイトの参照については、メンバー関数 OpenURL
に関する記述を参照してください。 一般的な HTTP 接続タスクを実行する手順については、WinInet を使用したインターネット プログラミングに関する記事を参照してください。
CInternetSession::OnStatusCallback
このメンバー関数は、状態コールバックが有効で操作が保留中のときに状態を更新するためにフレームワークによって呼び出されます。
virtual void OnStatusCallback(
DWORD_PTR dwContext,
DWORD dwInternetStatus,
LPVOID lpvStatusInformation,
DWORD dwStatusInformationLength);
パラメーター
dwContext
アプリケーションによって提供されるコンテキスト値。
dwInternetStatus
コールバックが行われている理由を示す状態コード。 使用可能な値の表については、「解説」を参照してください。
lpvStatusInformation
このコールバックに関連する情報を含むバッファーへのポインター。
dwStatusInformationLength
lpvStatusInformation
のサイズ。
解説
状態コールバックを利用するには、まず EnableStatusCallback
を呼び出す必要があります。
dwInternetStatus
パラメーターは、実行されている操作を示し、lpvStatusInformation
の内容を決定します。 dwStatusInformationLength
は、lpvStatusInformation
に含まれるデータの長さを示します。 dwInternetStatus
の以下の状態値は、次のように定義されます。
Value | 意味 |
---|---|
INTERNET_STATUS_RESOLVING_NAME |
lpvStatusInformation に含まれる名前の IP アドレスを検索しています。 |
INTERNET_STATUS_NAME_RESOLVED |
lpvStatusInformation に含まれる名前の IP アドレスが正常に見つかりました。 |
INTERNET_STATUS_CONNECTING_TO_SERVER |
lpvStatusInformation が指すソケット アドレス (SOCKADDR ) に接続しています。 |
INTERNET_STATUS_CONNECTED_TO_SERVER |
lpvStatusInformation が指すソケット アドレス ( SOCKADDR ) に正常に接続されました。 |
INTERNET_STATUS_SENDING_REQUEST |
サーバーに情報要求を送信しています。 lpvStatusInformation パラメーターが NULL です。 |
INTERNET_STATUS_REQUEST_SENT |
サーバーに情報要求が正常に送信されました。 lpvStatusInformation パラメーターが NULL です。 |
INTERNET_STATUS_RECEIVING_RESPONSE |
サーバーが要求に応答するのを待機しています。 lpvStatusInformation パラメーターが NULL です。 |
INTERNET_STATUS_RESPONSE_RECEIVED |
サーバーからの応答が正常に受信されました。 lpvStatusInformation パラメーターが NULL です。 |
INTERNET_STATUS_CLOSING_CONNECTION |
サーバーへの接続を閉じています。 lpvStatusInformation パラメーターが NULL です。 |
INTERNET_STATUS_CONNECTION_CLOSED |
サーバーへの接続が正常に閉じられました。 lpvStatusInformation パラメーターが NULL です。 |
INTERNET_STATUS_HANDLE_CREATED |
Win32 API 関数 InternetConnect で新しいハンドルが作成されたことを示すために使用されます。 これにより、接続に時間がかかりすぎる場合に、アプリケーションは別のスレッドから Win32 関数 InternetCloseHandle を呼び出すことができます。 これらの関数の詳細については、Windows SDK を参照してください。 |
INTERNET_STATUS_HANDLE_CLOSING |
このハンドル値が正常に終了しました。 |
状態コールバック ルーチンが実行される前に何らかのアクションを要求するには、このメンバー関数をオーバーライドします。
Note
状態コールバックにはスレッド状態の保護が必要です。 共有ライブラリで MFC を使用している場合は、オーバーライドの先頭に次の行を追加します。
AFX_MANAGE_STATE(AfxGetAppModuleState());
非同期操作の詳細については、インターネットの最初の手順: WinInet に関する記事を参照してください。
CInternetSession::OpenURL
このメンバー関数を呼び出して、指定した要求を HTTP サーバーに送信し、クライアントが要求と共に送信する追加の RFC822、MIME、または HTTP ヘッダーを指定できるようにします。
CStdioFile* OpenURL(
LPCTSTR pstrURL,
DWORD_PTR dwContext = 1,
DWORD dwFlags = INTERNET_FLAG_TRANSFER_ASCII,
LPCTSTR pstrHeaders = NULL,
DWORD dwHeadersLength = 0);
パラメーター
pstrURL
読み取りを開始する URL の名前へのポインター。 file:
、ftp:
、gopher:
、または http:
で始まる URL のみがサポートされます。 pstrURL
が NULL
の場合にアサートします。
dwContext
コールバックで返されたハンドルと共に渡されるアプリケーション定義の値。
dwFlags
この接続の処理方法を説明するフラグ。 有効なフラグの詳細については、「解説」を参照してください。 有効なフラグは次のとおりです。
INTERNET_FLAG_TRANSFER_ASCII
既定値。 ファイルを ASCII テキストとして転送します。INTERNET_FLAG_TRANSFER_BINARY
ファイルをバイナリ ファイルとして転送します。INTERNET_FLAG_RELOAD
ローカルにキャッシュされている場合でも、ネットワークからデータを取得します。INTERNET_FLAG_DONT_CACHE
ローカルや任意のゲートウェイにデータをキャッシュしません。INTERNET_FLAG_SECURE
このフラグは、HTTP 要求にのみ適用されます。 Secure Sockets Layer または PCT を使用して、ネットワーク上のセキュリティで保護されたトランザクションを要求します。INTERNET_OPEN_FLAG_USE_EXISTING_CONNECT
可能な場合は、接続要求ごとに新しいセッションを作成するのではなく、OpenUrl
によって生成された新しい要求に対してサーバーへの既存の接続を再利用します。INTERNET_FLAG_PASSIVE
FTP サイトに使用されます。 パッシブ FTP セマンティクスを使用します。OpenURL
のCInternetConnection
で使用されます。
pstrHeaders
HTTP サーバーに送信されるヘッダーを含む文字列へのポインター。
dwHeadersLength
追加ヘッダーの長さ (文字数)。 これが -1L
で、pstrHeaders
が NULL
でない場合、pstrHeaders
は 0 で終わると見なされ、長さが計算されます。
戻り値
種類が FTP、GOPHER、HTTP、および FILE のインターネット サービスのみのファイル ハンドルを返します。 解析が失敗した場合に NULL
を返します。
OpenURL
で返されるポインターは、pstrURL
のサービスの種類によって異なります。 以下の表に、OpenURL
で返すことができるポインターを示します。
URL の種類 | 返品 |
---|---|
file:// |
CStdioFile* |
http:// |
CHttpFile* |
gopher:// |
CGopherFile* |
ftp:// |
CInternetFile* |
解説
パラメーター dwFlags
には、INTERNET_FLAG_TRANSFER_ASCII
または INTERNET_FLAG_TRANSFER_BINARY
を含める必要がありますが、両方を含める必要はありません。 残りのフラグは、ビットごとの "or" (|
) 演算子と組み合わせることができます。
Win32 関数 InternetOpenURL
をラップする OpenURL
では、インターネット サーバーからのデータのダウンロード、取得、読み取りのみが許可されます。 OpenURL
では、リモートの場所でのファイル操作は許可されないため、CInternetConnection
オブジェクトは必要ありません。
ファイルへの書き込みなど、接続固有の (つまり、プロトコル固有の) 関数を使用するには、セッションを開き、特定の種類の接続を開き、その接続を使って目的のモードでファイルを開く必要があります。 接続固有の関数の詳細については、CInternetConnection
を参照してください。
CInternetSession::operator HINTERNET
この演算子を使用して、現在のインターネット セッションの Windows ハンドルを取得します。
operator HINTERNET() const;
CInternetSession::SetCookie
指定した URL の Cookie を設定します。
static BOOL SetCookie(
LPCTSTR pstrUrl,
LPCTSTR pstrCookieName,
LPCTSTR pstrCookieData);
パラメーター
pstrUrl
Cookie を設定する URL を指定する null で終わる文字列へのポインター。
pstrCookieName
Cookie の名前を含む文字列へのポインター。
pstrCookieData
URL に関連付ける実際の文字列データを含む文字列へのポインター。
戻り値
成功した場合は TRUE
を返し、それ以外の場合は FALSE
を返します。 特定のエラー コードを取得するには、GetLastError
を呼び出します。
解説
このメンバー関数では、Windows SDK で説明されているように、Win32 メッセージ InternetSetCookie
の動作が実装されます。
CInternetSession::SetOption
このメンバー関数を呼び出して、インターネット セッションのオプションを設定します。
BOOL SetOption(
DWORD dwOption,
LPVOID lpBuffer,
DWORD dwBufferLength,
DWORD dwFlags = 0);
BOOL SetOption(
DWORD dwOption,
DWORD dwValue,
DWORD dwFlags = 0);
パラメーター
dwOption
設定するインターネット オプション。 使用可能なオプションのリストについては、Windows SDK の「オプション フラグ」を参照してください。
lpBuffer
オプション設定を含むバッファー。
dwBufferLength
lpBuffer
の長さまたは dwValue
のサイズ。
dwValue
オプション設定を含む DWORD
。
dwFlags
さまざまなキャッシュ オプションを示します。 既定値は 0 に設定されています。 使用できる値は次のとおりです。
INTERNET_FLAG_DONT_CACHE
ローカルや任意のゲートウェイ サーバーにデータをキャッシュしません。INTERNET_FLAG_OFFLINE
ダウンロード操作は、永続キャッシュを介してのみ満たされます。 項目がキャッシュに存在しない場合は、適切なエラー コードが返されます。 このフラグは、ビットごとの "or" (|
) 演算子と組み合わせることができます。
戻り値
操作が成功した場合は、TRUE
の値が返されます。 エラーが発生した場合は、FALSE
の値が返されます。 呼び出しが失敗した場合、Win32 関数 GetLastError
を呼び出してエラーの原因を特定できます。
関連項目
CObject
クラス
階層図
CInternetConnection
クラス
CHttpConnection
クラス
CFtpConnection
クラス
CGopherConnection
クラス