CInternetSession クラスCInternetSession Class

単一のインターネット セッションまたは複数の同時インターネット セッションを作成し、初期化します。必要な場合は、プロキシ サーバーへの接続も記述します。Creates and initializes a single or several simultaneous Internet sessions and, if necessary, describes your connection to a proxy server.

構文Syntax

class CInternetSession : public CObject

メンバーMembers

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

名前Name 説明Description
次のサービスを実行します。CInternetSession::CInternetSession CInternetSession オブジェクトを構築します。Constructs a CInternetSession object.

パブリック メソッドPublic Methods

名前Name 説明Description
インターネットセッション::閉じるCInternetSession::Close インターネット セッションが終了すると、インターネット接続を閉じます。Closes the Internet connection when the Internet session is terminated.
を有効にします。CInternetSession::EnableStatusCallback ステータス コールバック ルーチンを確立します。Establishes a status callback routine.
次のコンテキストを取得します。CInternetSession::GetContext インターネット セッションが終了すると、インターネット接続を閉じます。Closes the Internet connection when the Internet session is terminated.
インターネットセッション::ゲットクッキーCInternetSession::GetCookie 指定した URL とそのすべての親 URL の Cookie を返します。Returns cookies for the specified URL and all its parent URLs.
をクリックします。CInternetSession::GetCookieLength バッファーに格納されている Cookie の長さを指定する変数を取得します。Retrieves the variable specifying the length of the cookie stored in the buffer.
インターネットセッション::ゲットFtp接続CInternetSession::GetFtpConnection サーバーとの FTP セッションを開きます。Opens an FTP session with a server. ユーザーにログオンします。Logs on the user.
インターネットセッション::ゲットゴファーコネクションCInternetSession::GetGopherConnection 接続を開こうとしているアプリケーションの gopher サーバーを開きます。Opens a gopher server for an application that is trying to open a connection.
インターネットセッション::取得Http接続CInternetSession::GetHttpConnection 接続を開こうとしているアプリケーションの HTTP サーバーを開きます。Opens an HTTP server for an application that is trying to open a connection.
を設定します。CInternetSession::OnStatusCallback 状態のコールバックが有効な場合に、操作の状態を更新します。Updates the status of an operation when status callback is enabled.
インターネットセッション::オープンURLCInternetSession::OpenURL URL を解析して開きます。Parses and opens a URL.
を設定します。CInternetSession::SetCookie 指定した URL のクッキーを設定します。Sets a cookie for the specified URL.
インターネットセッション::セットオプションCInternetSession::SetOption インターネット セッションのオプションを設定します。Sets options for the Internet session.

パブリック演算子Public Operators

名前Name 説明Description
インターネットセッション::オペレーターHインターネットCInternetSession::operator HINTERNET 現在のインターネット セッションへのハンドル。A handle to the current Internet session.

解説Remarks

アプリケーションの存続期間にインターネット接続を維持する必要がある場合は、 CInternetSession CWinAppクラスのメンバーを作成できます。If your Internet connection must be maintained for the duration of an application, you can create a CInternetSession member of the class CWinApp.

インターネット セッションを確立したら、OpenURLを呼び出すことができます。Once you have established an Internet session, you can call OpenURL. CInternetSession次に、グローバル関数AfxParseURLを呼び出して URL を解析します。CInternetSession then parses the URL for you by calling the global function AfxParseURL. プロトコルの種類に関係なくCInternetSession、URL を解釈して管理します。Regardless of its protocol type, CInternetSession interprets the URL and manages it for you. URL リソース 「file://」 で識別されるローカルファイルの要求を処理できます。It can handle requests for local files identified with the URL resource "file://". OpenURL渡した名前がローカルファイルの場合は、CStdioFileオブジェクトへのポインタを返します。OpenURL will return a pointer to a CStdioFile object if the name you pass it is a local file.

を使用してOpenURLインターネット サーバー上の URL を開くと、サイトから情報を読み取ることができます。If you open a URL on an Internet server using OpenURL, you can read information from the site. サーバー上にあるファイルに対してサービス固有のアクション (HTTP、FTP、gopher など) を実行する場合は、そのサーバーとの適切な接続を確立する必要があります。If you want to perform service-specific (for example, HTTP, FTP, or gopher) actions on files located on a server, you must establish the appropriate connection with that server. 特定のサービスに対して特定の種類の接続を直接開くには、次のいずれかのメンバー関数を使用します。To open a particular kind of connection directly to a particular service, use one of the following member functions:

SetOptionを使用すると、タイムアウト値や再試行回数などのセッションのクエリ オプションを設定できます。SetOption allows you to set the query options of your session, such as time-out values, number of retries, and so on.

CInternetSessionメンバー関数SetCookie 、GetCookie、およびGetCookieLengthは、サーバーとスクリプトがクライアント ワークステーションに関する状態情報を保持する Win32 クッキー データベースを管理する手段を提供します。CInternetSession member functions SetCookie, GetCookie, and GetCookieLength provide the means to manage a Win32 cookie database, through which servers and scripts maintain state information about the client workstation.

インターネット プログラミングの基本的な作業の詳細については、「インターネットの最初の手順 : WinInet」を参照してください。For more information about basic Internet programming tasks, see the article Internet First Steps: WinInet. MFC WinInet クラスの使用方法の一般的な情報については、「WinInet を使用したインターネット プログラミング」を参照してください。For general information about using the MFC WinInet classes, see the article Internet Programming with WinInet.

注意

CInternetSessionサポートされていないサービスの種類に対してAfxThrowNotSupportedExceptionをスローします。CInternetSession will throw an AfxThrowNotSupportedException for unsupported service types. FTP、HTTP、gopher、およびファイルのサービスタイプのみが現在サポートされています。Only the following service types are currently supported: FTP, HTTP, gopher, and file.

継承階層Inheritance Hierarchy

CObjectCObject
    CInternetSession    CInternetSession

必要条件Requirements

ヘッダー: afxinet.hHeader: afxinet.h

次のサービスを実行します。CInternetSession::CInternetSession

このメンバー関数は、オブジェクトがCInternetSession作成されるときに呼び出されます。This member function is called when a CInternetSession object is created.

CInternetSession(
    LPCTSTR pstrAgent = NULL,
    DWORD_PTR dwContext = 1,
    DWORD dwAccessType = PRE_CONFIG_INTERNET_ACCESS,
    LPCTSTR pstrProxyName = NULL,
    LPCTSTR pstrProxyBypass = NULL,
    DWORD dwFlags = 0);

パラメーターParameters

をクリックします。pstrAgent
インターネット関数を呼び出しているアプリケーションまたはエンティティの名前を識別する文字列へのポインター (たとえば、"Microsoft インターネット ブラウザー" )。A pointer to a string that identifies the name of the application or entity calling the Internet functions (for example, "Microsoft Internet Browser"). pstrAgentが NULL (既定値) の場合、フレームワークはグローバル関数AfxGetAppNameを呼び出し、アプリケーション名を含む null で終わる文字列を返します。If pstrAgent is NULL (the default), the framework calls the global function AfxGetAppName, which returns a null-terminated string containing an application's name. 一部のプロトコルでは、この文字列を使用して、サーバーに対するアプリケーションを識別します。Some protocols use this string to identify your application to the server.

dw コンテキストdwContext
操作のコンテキスト識別子。The context identifier for the operation. dwContext、CInternetSession::OnStatusCallbackによって返される操作の状態情報を識別します。dwContext identifies the operation's status information returned by CInternetSession::OnStatusCallback. デフォルトは 1 に設定されています。ただし、操作に対して特定のコンテキスト ID を明示的に割り当てることができます。The default is set to 1; however, you can explicitly assign a specific context ID for the operation. オブジェクトとオブジェクトが行うすべての作業は、そのコンテキスト ID に関連付けられます。The object and any work it does will be associated with that context ID.

アクセスタイプdwAccessType
必要なアクセスの種類。The type of access required. 次の有効な値は、いずれか 1 つだけ指定できます。The following are valid values, exactly one of which may be supplied:

  • INTERNET_OPEN_TYPE_PRECONFIG レジストリで構成済みの設定を使用して接続します。INTERNET_OPEN_TYPE_PRECONFIG Connect using preconfigured settings in the registry. このアクセスタイプはデフォルトとして設定されます。This access type is set as the default. TIS プロキシ経由で接続するには 、dwAccessTypeをこの値に設定します。その後、レジストリを適切に設定します。To connect through a TIS proxy, set dwAccessType to this value; you then set the registry appropriately.

  • INTERNET_OPEN_TYPE_DIRECT インターネットに直接接続します。INTERNET_OPEN_TYPE_DIRECT Connect directly to Internet.

  • INTERNET_OPEN_TYPE_PROXY CERN プロキシ経由で接続します。INTERNET_OPEN_TYPE_PROXY Connect through a CERN proxy.

さまざまな種類のプロキシとの接続については、「標準 FTPクライアント アプリケーションの手順」を参照してください。For information on connecting with different types of proxies, see Steps in a Typical FTP Client Application.

プロキシ名pstrProxyName
dwAccessTypeがINTERNET_OPEN_TYPE_PROXYとして設定されている場合は、優先 CERN プロキシの名前。The name of the preferred CERN proxy if dwAccessType is set as INTERNET_OPEN_TYPE_PROXY. 既定値は NULL です。The default is NULL.

プロキシ バイパスpstrProxyBypass
オプションのサーバー アドレスの一覧を含む文字列へのポインター。A pointer to a string containing an optional list of server addresses. プロキシ アクセスを使用する場合、これらのアドレスはバイパスされる可能性があります。These addresses may be bypassed when using proxy access. NULL 値が指定されている場合、バイパス リストはレジストリから読み取られます。If a NULL value is supplied, the bypass list will be read from the registry. このパラメーターは 、dwAccessTypeが INTERNET_OPEN_TYPE_PROXY に設定されている場合にのみ意味があります。This parameter is meaningful only if dwAccessType is set to INTERNET_OPEN_TYPE_PROXY.

dwFlagsdwFlags
さまざまなキャッシュ オプションを示します。Indicates various caching options. デフォルトは 0 に設定されています。The default is set to 0. 指定できる値は次のとおりです。The possible values include:

  • INTERNET_FLAG_DONT_CACHE ローカルまたはゲートウェイ サーバーにデータをキャッシュしません。INTERNET_FLAG_DONT_CACHE Do not cache the data, either locally or in any gateway servers.

  • INTERNET_FLAG_OFFLINE ダウンロード操作は、永続キャッシュを介してのみ実行されます。INTERNET_FLAG_OFFLINE Download operations are satisfied through the persistent cache only. アイテムがキャッシュに存在しない場合は、適切なエラー コードが返されます。If the item does not exist in the cache, an appropriate error code is returned. このフラグは、ビットごとのOR ( |) 演算子と組み合わせられます。This flag may be combined with the bitwise OR ( |) operator.

解説Remarks

CInternetSessionは、アプリケーションによって呼び出される最初のインターネット関数です。CInternetSession is the first Internet function called by an application. 内部データ構造体を初期化し、アプリケーションからの今後の呼び出しに備えます。It initializes internal data structures and prepares for future calls from the application.

インターネット接続を開くことができればCInternetSession、AfxThrowインターネット例外をスローします。If no Internet connection can be opened, CInternetSession throws an AfxThrowInternetException.

Example

「CFtp ファイルの検索」の例を参照してください。See the example for CFtpFileFind.

インターネットセッション::閉じるCInternetSession::Close

アプリケーションがオブジェクトの使用を終了したら、このメンバーCInternetSession関数を呼び出します。Call this member function when your application has finished using the CInternetSession object.

virtual void Close();

Example

「CFtp ファイルの検索」の例を参照してください。See the example for CFtpFileFind.

を有効にします。CInternetSession::EnableStatusCallback

ステータス コールバックを有効にするには、このメンバー関数を呼び出します。Call this member function to enable status callback.

BOOL EnableStatusCallback(BOOL bEnable = TRUE);

パラメーターParameters

b 有効にするbEnable
コールバックを有効にするか無効にするかを指定します。Specifies whether callback is enabled or disabled. デフォルトは TRUE です。The default is TRUE.

戻り値Return Value

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。Nonzero if successful; otherwise 0. 呼び出しが失敗した場合は、スローされたCInternetExceptionオブジェクトを調べることによって、失敗の原因を特定します。If the call fails, determine the cause of the failure by examining the thrown CInternetException object.

解説Remarks

ステータス コールバックを処理する場合、アプリケーションのステータス バーに、操作の進行状況 (名前の解決、サーバーへの接続など) のステータスを指定できます。When handling status callback, you can provide status about the progress of the operation (such as resolving name, connecting to server, and so on) in the status bar of the application. 長時間の操作では、操作状況の表示が特に望ましい。Displaying operation status is especially desirable during a long-term operation.

要求の処理中にコールバックが発生するため、アプリケーションは、ネットワークへのデータ スループットの低下を防ぐために、コールバックにできるだけ時間を費やす必要があります。Because callbacks occur during the request's processing, the application should spend as little time as possible in the callback to prevent degradation of data throughput to the network. たとえば、コールバックにダイアログ ボックスを配置すると、サーバーが要求を終了するような時間がかかる場合があります。For example, putting up a dialog box in a callback may be such a lengthy operation that the server terminates the request.

いずれかのコールバックが保留中である限り、ステータス コールバックは削除できません。The status callback cannot be removed as long as any callbacks are pending.

非同期的に操作を処理するには、独自のスレッドを作成するか、MFC を使用せずに WinInet 関数を使用する必要があります。To handle any operations asynchronously, you must either create your own thread or use the WinInet functions without MFC.

次のコンテキストを取得します。CInternetSession::GetContext

特定のアプリケーション セッションのコンテキスト値を取得します。Call this member function to get the context value for a particular application session.

DWORD_PTR GetContext() const;

戻り値Return Value

アプリケーション定義のコンテキスト識別子。The application-defined context Identifier.

解説Remarks

OnStatusCallbackは、返されるコンテキストGetContextID を使用して、特定のアプリケーションの状態を報告します。OnStatusCallback uses the context ID returned by GetContext to report the status of a particular application. たとえば、ステータス情報を返すインターネット要求をユーザーがアクティブにした場合、ステータス コールバックはコンテキスト ID を使用して、特定の要求のステータスを報告します。For example, when a user activates an Internet request that involves returning status information, the status callback uses the context ID to report status on that particular request. ユーザーが、両方ともステータス情報を返す 2 つの個別のOnStatusCallbackインターネット要求をアクティブにした場合は、コンテキスト識別子を使用して、対応する要求に関する状態を返します。If the user activates two separate Internet requests that both involve returning status information, OnStatusCallback uses the context identifiers to return status about their corresponding requests. したがって、コンテキスト識別子はすべてのステータス コールバック操作に使用され、セッションが終了するまでセッションに関連付けられます。Consequently, the context identifier is used for all status callback operations, and it is associated with the session until the session is ended.

非同期操作の詳細については、「インターネットの最初の手順: WinInet」を参照してください。For more information about asynchronous operations, see the article Internet First Steps: WinInet.

インターネットセッション::ゲットクッキーCInternetSession::GetCookie

このメンバー関数は、Windows SDK で説明されているように、Win32 関数動作を実装します。This member function implements the behavior of the Win32 function InternetGetCookie, as described in the Windows SDK.

static BOOL GetCookie(
    LPCTSTR pstrUrl,
    LPCTSTR pstrCookieName,
    LPTSTR pstrCookieData,
    DWORD dwBufLen);

static BOOL GetCookie(
    LPCTSTR pstrUrl,
    LPCTSTR pstrCookieName,
    CString& strCookieData);

パラメーターParameters

をクリックします。pstrUrl
URL を含む文字列へのポインター。A pointer to a string containing the URL.

クッキー名pstrCookieName
指定した URL に対して取得する Cookie の名前を含む文字列へのポインター。A pointer to a string containing the name of the cookie to get for the specified URL.

データpstrCookieData
最初のオーバーロードでは、Cookie データを受け取るバッファーのアドレスを含む文字列へのポインター。In the first overload, a pointer to a string containing the address of the buffer that receives the cookie data. この値は NULL にできます。This value can be NULL. 2 番目のオーバーロードでは、Cookie データを受け取るCStringオブジェクトへの参照。In the second overload, a reference to a CString object to receive the cookie data.

ドブビューレンdwBufLen
バッファーのサイズを指定する変数。The variable specifying the size of the pstrCookieData buffer. 関数が成功すると、バッファーは 、pstrCookieDataバッファーにコピーされたデータの量を受け取ります。If the function succeeds, the buffer receives the amount of data copied to the pstrCookieData buffer. pstrCookieDataが NULL の場合、このパラメーターは、すべての Cookie データをコピーするために必要なバッファーのサイズを指定する値を受け取ります。If pstrCookieData is NULL, this parameter receives a value that specifies the size of the buffer necessary to copy all the cookie data.

戻り値Return Value

成功した場合は TRUE を返し、そうでない場合は FALSE を返します。Returns TRUE if successful, or FALSE otherwise. 呼び出しが失敗した場合は、Win32 関数GetLastErrorを呼び出してエラーの原因を特定します。If the call fails, call the Win32 function GetLastError to determine the cause of the error. 次のエラー値が適用されます。The following error values apply:

  • ERROR_NO_MORE_ITEMS 指定した URL とそのすべての親に対するクッキーはありません。ERROR_NO_MORE_ITEMS There is no cookie for the specified URL and all its parents.

  • ERROR_INSUFFICIENT_BUFFER dwBufLenで渡された値は、すべてのクッキー データをコピーするのに十分ではありません。ERROR_INSUFFICIENT_BUFFER The value passed in dwBufLen is insufficient to copy all the cookie data. dwBufLenで返される値は、すべてのデータを取得するために必要なバッファーのサイズです。The value returned in dwBufLen is the size of the buffer necessary to get all the data.

解説Remarks

2 番目のオーバーロードでは、MFC は、指定されたCStringオブジェクトに Cookie データを取得します。In the second overload, MFC retrieves the cookie data into the supplied CString object.

をクリックします。CInternetSession::GetCookieLength

バッファーに格納されている Cookie の長さを取得します。Call this member function to get the length of the cookie stored in the buffer.

static DWORD GetCookieLength(
    LPCTSTR pstrUrl,
    LPCTSTR pstrCookieName);

パラメーターParameters

をクリックします。pstrUrl
URL を含む文字列へのポインターA pointer to a string containing the URL

クッキー名pstrCookieName
Cookie の名前を含む文字列へのポインター。A pointer to a string containing the name of the cookie.

戻り値Return Value

バッファに格納されている Cookie の長さを示す DWORD 値。A DWORD value indicating the length of the cookie, stored in the buffer. pstrCookieNameで示された名前のクッキーが存在しない場合は 0。Zero if no cookie with the name indicated by pstrCookieName exists.

解説Remarks

この値はGetCookieによって使用されます。This value is used by GetCookie.

インターネットセッション::ゲットFtp接続CInternetSession::GetFtpConnection

FTP 接続を確立し、オブジェクトへのポインターを取得するには、このCFtpConnectionメンバー関数を呼び出します。Call this member function to establish an FTP connection and get a pointer to a CFtpConnection object.

CFtpConnection* GetFtpConnection(
    LPCTSTR pstrServer,
    LPCTSTR pstrUserName = NULL,
    LPCTSTR pstrPassword = NULL,
    INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER,
    BOOL bPassive = FALSE);

パラメーターParameters

を行うpstrServer
FTP サーバー名を含む文字列へのポインター。A pointer to a string containing the FTP server name.

ユーザー名pstrUserName
ログインするユーザーの名前を指定する、NULL で終わる文字列へのポインター。Pointer to a null-terminated string that specifies the name of the user to log in. NULL の場合、デフォルトは匿名です。If NULL, the default is anonymous.

パスワードpstrPassword
ログインに使用するパスワードを指定する、null で終わる文字列へのポインター。A pointer to a null-terminated string that specifies the password to use to log in. pstrPasswordpstrUserNameの両方が NULL の場合、既定の匿名パスワードはユーザーの電子メール名です。If both pstrPassword and pstrUserName are NULL, the default anonymous password is the user's email name. pstrPasswordが NULL (または空の文字列) で 、pstrUserNameが NULL でない場合は、空白のパスワードが使用されます。If pstrPassword is NULL (or an empty string) but pstrUserName is not NULL, a blank password is used. 次の表は、4 つの設定のpstrUserNamepstrPasswordの動作を示しています。The following table describes the behavior for the four possible settings of pstrUserName and pstrPassword:

ユーザー名pstrUserName パスワードpstrPassword FTP サーバーに送信されたユーザー名Username sent to FTP server FTP サーバーに送信されるパスワードPassword sent to FTP server
NULL または " "NULL or " " NULL または " "NULL or " " 「匿名」"anonymous" ユーザーの電子メール名User's email name
NULL 以外の文字列Non-NULL String NULL または " "NULL or " " ユーザー名pstrUserName " "" "
NULLNULL NULL 以外の文字列Non-NULL String ERRORERROR ERRORERROR
NULL 以外の文字列Non-NULL String NULL 以外の文字列Non-NULL String ユーザー名pstrUserName パスワードpstrPassword

nポートnPort
サーバーで使用する TCP/IP ポートを識別する番号。A number that identifies the TCP/IP port to use on the server.

bパッシブbPassive
この FTP セッションのパッシブ モードまたはアクティブ モードを指定します。Specifies passive or active mode for this FTP session. TRUE に設定すると、Win32 APIdwFlagがINTERNET_FLAG_PASSIVEに設定されます。If set to TRUE, it sets the Win32 API dwFlag to INTERNET_FLAG_PASSIVE.

戻り値Return Value

オブジェクトへのポインター。A pointer to a CFtpConnection object. 呼び出しが失敗した場合は、スローされたCInternetExceptionオブジェクトを調べることによって、失敗の原因を特定します。If the call fails, determine the cause of the failure by examining the thrown CInternetException object.

解説Remarks

GetFtpConnectionは、FTP サーバーに接続し、CFTPConnectionオブジェクトへのポインターを作成して返します。GetFtpConnection connects to an FTP server, and creates and returns a pointer to a CFTPConnection object. サーバー上で特定の操作を実行しません。It does not perform any specific operation on the server. たとえば、ファイルの読み取りまたは書き込みを行う場合は、これらの操作を別の手順として実行する必要があります。If you intend to read or write to files, for example, you must perform those operations as separate steps. ファイルの検索、ファイルのオープン、ファイルの読み取りまたは書き込みの詳細については、CFtpConnectionクラスとCFtpFileFindを参照してください。See the classes CFtpConnection and CFtpFileFind for information about searching for files, opening files, and reading or writing to files. 一般的な FTP 接続タスクの実行手順については、WinInet を使用したインターネット プログラミングの記事を参照してください。See the article Internet Programming with WinInet for steps in performing common FTP connection tasks.

Example

「CFtp ファイルの検索」の例を参照してください。See the example for CFtpFileFind.

インターネットセッション::ゲットゴファーコネクションCInternetSession::GetGopherConnection

新しい gopher 接続を確立し、オブジェクトへのポインターを取得するにはCGopherConnection、このメンバー関数を呼び出します。Call this member function to establish a new gopher connection and get a pointer to a CGopherConnection object.

CGopherConnection* GetGopherConnection(
    LPCTSTR pstrServer,
    LPCTSTR pstrUserName = NULL,
    LPCTSTR pstrPassword = NULL,
    INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER);

パラメーターParameters

を行うpstrServer
gopher サーバー名を含む文字列へのポインター。A pointer to a string containing the gopher server name.

ユーザー名pstrUserName
ユーザー名を含む文字列へのポインター。A pointer to a string containing the user name.

パスワードpstrPassword
アクセス パスワードを含む文字列へのポインター。A pointer to a string containing the access password.

nポートnPort
サーバーで使用する TCP/IP ポートを識別する番号。A number that identifies the TCP/IP port to use on the server.

戻り値Return Value

オブジェクトへのポインター。A pointer to a CGopherConnection object. 呼び出しが失敗した場合は、スローされたCInternetExceptionオブジェクトを調べることによって、失敗の原因を特定します。If the call fails, determine the cause of the failure by examining the thrown CInternetException object.

解説Remarks

GetGopherConnectionが gopher サーバーに接続し、CGopherConnectionオブジェクトへのポインターを作成して返します。GetGopherConnection connects to a gopher server, and creates and returns a pointer to a CGopherConnection object. サーバー上で特定の操作を実行しません。It does not perform any specific operation on the server. たとえば、データの読み取りまたは書き込みを行う場合は、これらの操作を別の手順として実行する必要があります。If you intend to read or write data, for example, you must perform those operations as separate steps. ファイルの検索、ファイルのオープン、ファイルの読み取りまたは書き込みの詳細については、CGopherConnectionクラス、CGopherFile、およびCGopherFileFindを参照してください。See the classes CGopherConnection, CGopherFile, and CGopherFileFind for information about searching for files, opening files, and reading or writing to files. FTP サイトの参照については、メンバー関数OpenURLを参照してください。For information about browsing an FTP site, see the member function OpenURL. 一般的な gopher 接続タスクの実行手順については、WinInet を使用したインターネット プログラミングの記事を参照してください。See the article Internet Programming with WinInet for steps in performing common gopher connection tasks.

インターネットセッション::取得Http接続CInternetSession::GetHttpConnection

HTTP 接続を確立し、オブジェクトへのポインターを取得するには、このCHttpConnectionメンバー関数を呼び出します。Call this member function to establish an HTTP connection and get a pointer to a CHttpConnection object.

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);

パラメーターParameters

を行うpstrServer
HTTP サーバー名を含む文字列へのポインター。A pointer to a string containing the HTTP server name.

nポートnPort
サーバーで使用する TCP/IP ポートを識別する番号。A number that identifies the TCP/IP port to use on the server.

ユーザー名pstrUserName
ユーザー名を含む文字列へのポインター。A pointer to a string containing the user name.

パスワードpstrPassword
アクセス パスワードを含む文字列へのポインター。A pointer to a string containing the access password.

Dwflagsdwflags
フラグのINTERNET_FLAG_*任意の組み合わせ。Any combination of the INTERNET_FLAG_* flags. dwFlags値の説明については、CHttpConnection::OpenRequest解説セクションの表を参照してください。See the table in the Remarks section of CHttpConnection::OpenRequest for a description of dwFlags values.

戻り値Return Value

オブジェクトへのポインター。A pointer to a CHttpConnection object. 呼び出しが失敗した場合は、スローされたCInternetExceptionオブジェクトを調べることによって、失敗の原因を特定します。If the call fails, determine the cause of the failure by examining the thrown CInternetException object.

解説Remarks

GetHttpConnectionは HTTP サーバーに接続し、CHttpConnectionオブジェクトへのポインタを作成して返します。GetHttpConnection connects to an HTTP server, and creates and returns a pointer to a CHttpConnection object. サーバー上で特定の操作を実行しません。It does not perform any specific operation on the server. たとえば、HTTP ヘッダーを照会する場合は、この操作を別の手順として実行する必要があります。If you intend to query an HTTP header, for example, you must perform this operation as a separate step. HTTP サーバーへの接続を使用して実行できる操作については、クラス CHttpConnectionおよびCHttpFileを参照してください。See the classes CHttpConnection and CHttpFile for information about operations you can perform by using a connection to an HTTP server. HTTP サイトの参照については、メンバー関数OpenURLを参照してください。For information about browsing an HTTP site, see the member function OpenURL. 一般的な HTTP 接続タスクの実行手順については、記事「WinInet を使用したインターネット プログラミング」を参照してください。See the article Internet Programming with WinInet for steps in performing common HTTP connection tasks.

を設定します。CInternetSession::OnStatusCallback

このメンバー関数は、ステータス コールバックが有効で、操作が保留されているときに、状態を更新するためにフレームワークによって呼び出されます。This member function is called by the framework to update the status when status callback is enabled and an operation is pending.

virtual void OnStatusCallback(
    DWORD_PTR dwContext,
    DWORD dwInternetStatus,
    LPVOID lpvStatusInformation,
    DWORD dwStatusInformationLength);

パラメーターParameters

dw コンテキストdwContext
アプリケーションによって提供されるコンテキスト値。The context value supplied by the application.

ステータスdwInternetStatus
コールバックが行われる理由を示すステータスコード。A status code which indicates why the callback is being made. 使用可能な値の表については 、「解説」 を参照してください。See Remarks for a table of possible values.

情報lpvStatusInformation
このコールバックに関連する情報を格納しているバッファーへのポインター。A pointer to a buffer containing information pertinent to this callback.

長さdwStatusInformationLength
のサイズですThe size of lpvStatusInformation.

解説Remarks

状態のコールバックを利用するには、まずEnableStatusCallbackを呼び出す必要があります。You must first call EnableStatusCallback to take advantage of status callback.

dwInternetStatusパラメーターは、実行される操作を示し 、lpvStatus 情報の内容を決定します。The dwInternetStatus parameter indicates the operation being performed and determines what the contents of lpvStatusInformation will be. 含まれるデータの長さを示します。dwStatusInformationLength indicates the length of the data included in lpvStatusInformation. dwInternetStatusの以下の状況値は、次のように定義されます。The following status values for dwInternetStatus are defined as follows:

[値]Value 意味Meaning
INTERNET_STATUS_RESOLVING_NAMEINTERNET_STATUS_RESOLVING_NAME に含まれる名前の IP アドレスを検索しますLooking up the IP address of the name contained in lpvStatusInformation.
INTERNET_STATUS_NAME_RESOLVEDINTERNET_STATUS_NAME_RESOLVED lpvStatusInformationに含まれる名前の IP アドレスが正常に見つかりました。Successfully found the IP address of the name contained in lpvStatusInformation.
INTERNET_STATUS_CONNECTING_TO_SERVERINTERNET_STATUS_CONNECTING_TO_SERVER lpvStatusInformationが指すソケット アドレス (SOCKADDR) に接続しています。Connecting to the socket address (SOCKADDR) pointed to by lpvStatusInformation.
INTERNET_STATUS_CONNECTED_TO_SERVERINTERNET_STATUS_CONNECTED_TO_SERVER lpvStatusInformationが指すソケット アドレス (SOCKADDR) に正常に接続されました。Successfully connected to the socket address (SOCKADDR) pointed to by lpvStatusInformation.
INTERNET_STATUS_SENDING_REQUESTINTERNET_STATUS_SENDING_REQUEST サーバーに情報要求を送信します。Sending the information request to the server. パラメーターNULL です。The lpvStatusInformation parameter is NULL.
INTERNET_STATUS_REQUEST_SENTINTERNET_STATUS_ REQUEST_SENT サーバーに情報要求を送信しました。Successfully sent the information request to the server. パラメーターNULL です。The lpvStatusInformation parameter is NULL.
INTERNET_STATUS_RECEIVING_RESPONSEINTERNET_STATUS_RECEIVING_RESPONSE サーバーが要求に応答するのを待機しています。Waiting for the server to respond to a request. パラメーターNULL です。The lpvStatusInformation parameter is NULL.
INTERNET_STATUS_RESPONSE_RECEIVEDINTERNET_STATUS_RESPONSE_RECEIVED サーバーからの応答を正常に受信しました。Successfully received a response from the server. パラメーターNULL です。The lpvStatusInformation parameter is NULL.
INTERNET_STATUS_CLOSING_CONNECTIONINTERNET_STATUS_CLOSING_CONNECTION サーバーへの接続を閉じます。Closing the connection to the server. パラメーターNULL です。The lpvStatusInformation parameter is NULL.
INTERNET_STATUS_CONNECTION_CLOSEDINTERNET_STATUS_CONNECTION_CLOSED サーバーへの接続を正常に閉じました。Successfully closed the connection to the server. パラメーターNULL です。The lpvStatusInformation parameter is NULL.
INTERNET_STATUS_HANDLE_CREATEDINTERNET_STATUS_HANDLE_CREATED Win32 API 関数InternetConnectで使用され、新しいハンドルが作成されたことを示します。Used by the Win32 API function InternetConnect to indicate that it has created the new handle. これにより、アプリケーションは、接続に時間がかかりすぎる場合に、別のスレッドから Win32 関数InternetCloseHandleを呼び出すことができます。This lets the application call the Win32 function InternetCloseHandle from another thread if the connect is taking too long. これらの関数の詳細については、Windows SDK を参照してください。See the Windows SDKfor more information about these functions.
INTERNET_STATUS_HANDLE_CLOSINGINTERNET_STATUS_HANDLE_CLOSING このハンドル値を正常に終了しました。Successfully terminated this handle value.

ステータス コールバック ルーチンを実行する前に何らかのアクションを必要とするように、このメンバー関数をオーバーライドします。Override this member function to require some action before a status callback routine is performed.

注意

状態のコールバックにはスレッド状態の保護が必要です。Status callbacks need thread-state protection. 共有ライブラリで MFC を使用している場合は、オーバーライドの先頭に次の行を追加します。If you are using MFC in a shared library, add the following line to the beginning of your override:

AFX_MANAGE_STATE(AfxGetAppModuleState());

非同期操作の詳細については、「インターネットの最初の手順: WinInet」を参照してください。For more information about asynchronous operations, see the article Internet First Steps: WinInet.

インターネットセッション::オープンURLCInternetSession::OpenURL

指定した要求を HTTP サーバーに送信し、クライアントが要求と共に送信する追加の RFC822、MIME、または HTTP ヘッダーを指定できるようにする場合は、このメンバー関数を呼び出します。Call this member function to send the specified request to the HTTP server and allow the client to specify additional RFC822, MIME, or HTTP headers to send along with the request.

CStdioFile* OpenURL(
    LPCTSTR pstrURL,
    DWORD_PTR dwContext = 1,
    DWORD dwFlags = INTERNET_FLAG_TRANSFER_ASCII,
    LPCTSTR pstrHeaders = NULL,
    DWORD dwHeadersLength = 0);

パラメーターParameters

をクリックします。pstrURL
読み取りを開始する URL の名前へのポインター。A pointer to the name of the URL to begin reading. ファイルで始まる URL のみ:、ftp:、gopher:、または http: がサポートされています。Only URLs beginning with file:, ftp:, gopher:, or http: are supported. pstrURLが NULL の場合にアサートします。Asserts if pstrURL is NULL.

dw コンテキストdwContext
コールバックで返されたハンドルで渡されるアプリケーション定義の値。An application-defined value passed with the returned handle in callback.

dwFlagsdwFlags
この接続の処理方法を説明するフラグ。The flags describing how to handle this connection. 有効なフラグの詳細については 、「解説」 を参照してください。See Remarks for more information about the valid flags. 有効なフラグは次のとおりです。The valid flags are:

  • INTERNET_FLAG_TRANSFER_ASCII 既定値。INTERNET_FLAG_TRANSFER_ASCII The default. ファイルを ASCII テキストとして転送します。Transfer the file as ASCII text.

  • INTERNET_FLAG_TRANSFER_BINARY ファイルをバイナリ ファイルとして転送します。INTERNET_FLAG_TRANSFER_BINARY Transfer the file as a binary file.

  • INTERNET_FLAG_RELOAD ローカルにキャッシュされている場合でも、ワイヤからデータを取得します。INTERNET_FLAG_RELOAD Get the data from the wire even if it is locally cached.

  • INTERNET_FLAG_DONT_CACHE ローカルまたはゲートウェイにデータをキャッシュしません。INTERNET_FLAG_DONT_CACHE Do not cache the data, either locally or in any gateways.

  • INTERNET_FLAG_SECURE このフラグは HTTP 要求にのみ適用されます。INTERNET_FLAG_SECURE This flag is applicable to HTTP requests only. セキュア ソケット レイヤまたは PCT を使用して、ネットワーク上のセキュア なトランザクションを要求します。It requests secure transactions on the wire with Secure Sockets Layer or PCT.

  • INTERNET_OPEN_FLAG_USE_EXISTING_CONNECT 可能であれば、接続要求ごとに新しいセッションを作成するのではなく、サーバーへのOpenUrl既存の接続を再利用して、新しい要求を生成します。INTERNET_OPEN_FLAG_USE_EXISTING_CONNECT If possible, reuse the existing connections to the server for new requests generated by OpenUrl instead of creating a new session for each connection request.

  • INTERNET_FLAG_PASSIVE FTP サイトに使用されます。INTERNET_FLAG_PASSIVE Used for an FTP site. パッシブ FTP セマンティクスを使用します。Uses passive FTP semantics. のインターネット接続で使用OpenURLされます。Used with CInternetConnection of OpenURL.

ヘッダーpstrHeaders
HTTP サーバーに送信されるヘッダーを含む文字列へのポインター。A pointer to a string containing the headers to be sent to the HTTP server.

長さを持つdwHeadersLength
追加ヘッダーの長さ (文字数)。The length, in characters, of the additional headers. これが -1L で 、pstrHeader がNULL 以外の場合 、pstrHeadersはゼロで終了したものと見なされ、長さが計算されます。If this is -1L and pstrHeaders is non-NULL, then pstrHeaders is assumed to be zero terminated and the length is calculated.

戻り値Return Value

FTP、GOPHER、HTTP、および FILE タイプのインターネット サービスのみのファイル ハンドルを返します。Returns a file handle for FTP, GOPHER, HTTP, and FILE-type Internet services only. 解析が失敗した場合は NULL を返します。Returns NULL if parsing was unsuccessful.

返されるOpenURLポインターは 、pstrURLのサービスの種類によって異なります。The pointer that OpenURL returns depends on pstrURL's type of service. 次の表は、返すことができるポインタをOpenURL示しています。The table below illustrates the possible pointers OpenURL can return.

URL タイプURL type 戻り値Returns
file:// CStdioFile*
http:// CHttpFile*
gopher:// CGopherFile*
ftp:// CInternetFile*

解説Remarks

パラメーター dwFlagsには、INTERNET_FLAG_TRANSFER_ASCIIまたはINTERNET_FLAG_TRANSFER_BINARYのどちらかを含める必要がありますが、両方を含める必要があります。The parameter dwFlags must include either INTERNET_FLAG_TRANSFER_ASCII or INTERNET_FLAG_TRANSFER_BINARY, but not both. 残りのフラグはビットごとのOR演算子 ( |) と組み合わせることができます。The remaining flags can be combined with the bitwise OR operator ( |).

OpenURLWin32 関数InternetOpenURLをラップするは、インターネット サーバーからのデータのダウンロード、取得、および読み取りのみが許可されます。OpenURL, which wraps the Win32 function InternetOpenURL, allows only downloading, retrieving, and reading the data from an Internet server. OpenURLリモートの場所でのファイル操作は許可されません。 CInternetConnectionOpenURL allows no file manipulation on a remote location, so it requires no CInternetConnection object.

接続固有の (つまり、プロトコル固有の) 機能 (ファイルへの書き込みなど) を使用するには、セッションを開いて特定の種類の接続を開き、その接続を使用して目的のモードでファイルを開く必要があります。To use connection-specific (that is, protocol-specific) functions, such as writing to a file, you must open a session, then open a particular kind of connection, then use that connection to open a file in the desired mode. 接続CInternetConnection固有の機能の詳細については、「」を参照してください。See CInternetConnection for more information about connection-specific functions.

インターネットセッション::オペレーターHインターネットCInternetSession::operator HINTERNET

この演算子を使用して、現在のインターネット セッションの Windows ハンドルを取得します。Use this operator to get the Windows handle for the current Internet session.

operator HINTERNET() const;

を設定します。CInternetSession::SetCookie

指定した URL のクッキーを設定します。Sets a cookie for the specified URL.

static BOOL SetCookie(
    LPCTSTR pstrUrl,
    LPCTSTR pstrCookieName,
    LPCTSTR pstrCookieData);

パラメーターParameters

をクリックします。pstrUrl
Cookie を設定する URL を指定する、null で終わる文字列へのポインター。A pointer to a null-terminated string that specifies the URL for which the cookie should be set.

クッキー名pstrCookieName
Cookie の名前を含む文字列へのポインター。A pointer to a string containing the name of the cookie.

データpstrCookieData
URL に関連付ける実際の文字列データを含む文字列へのポインター。A pointer to a string containing the actual string data to associate with the URL.

戻り値Return Value

成功した場合は TRUE を返し、そうでない場合は FALSE を返します。Returns TRUE if successful, or FALSE otherwise. 特定のエラー コードを取得するには、GetLastError.To get the specific error code, call GetLastError.

解説Remarks

このメンバー関数は、Windows SDK で説明されているように、Win32 メッセージの動作を実装します。This member function implements the behavior of the Win32 message InternetSetCookie, as described in the Windows SDK.

インターネットセッション::セットオプションCInternetSession::SetOption

インターネット セッションのオプションを設定します。Call this member function to set options for the Internet session.

BOOL SetOption(
    DWORD dwOption,
    LPVOID lpBuffer,
    DWORD dwBufferLength,
    DWORD dwFlags = 0);

BOOL SetOption(
    DWORD dwOption,
    DWORD dwValue,
    DWORD dwFlags = 0);

パラメーターParameters

dw オプションdwOption
設定するインターネット オプション。The Internet option to set. 使用可能なオプションの一覧については、Windows SDK のオプションフラグを参照してください。See Option Flags in the Windows SDKfor a list of the possible options.

バッファバッファlpBuffer
オプション設定を含むバッファー。A buffer that contains the option setting.

長さdwBufferLength
長さまたはdwValueのサイズ。The length of lpBuffer or the size of dwValue.

dwValue
オプション設定を含む DWORD。A DWORD that contains the option setting.

dwFlagsdwFlags
さまざまなキャッシュ オプションを示します。Indicates various caching options. デフォルトは 0 に設定されています。The default is set to 0. 指定できる値は次のとおりです。The possible values include:

  • INTERNET_FLAG_DONT_CACHE ローカルまたはゲートウェイ サーバーにデータをキャッシュしません。INTERNET_FLAG_DONT_CACHE Do not cache the data, either locally or in any gateway servers.

  • INTERNET_FLAG_OFFLINE ダウンロード操作は、永続キャッシュを介してのみ実行されます。INTERNET_FLAG_OFFLINE Download operations are satisfied through the persistent cache only. アイテムがキャッシュに存在しない場合は、適切なエラー コードが返されます。If the item does not exist in the cache, an appropriate error code is returned. このフラグは、ビットごとのOR ( |) 演算子と組み合わせられます。This flag may be combined with the bitwise OR ( |) operator.

戻り値Return Value

操作が成功した場合は、TRUE の値が返されます。If the operation was successful, a value of TRUE is returned. エラーが発生した場合は、値 FALSE が返されます。If an error occurred, a value of FALSE is returned. 呼び出しが失敗した場合は、Win32 関数GetLastErrorが呼び出され、エラーの原因を特定できます。If the call fails, the Win32 function GetLastError may be called to determine the cause of the error.

関連項目See also

CオブジェクトクラスCObject Class
階層グラフHierarchy Chart
CInternetConnection クラスCInternetConnection Class
CHttpConnection クラスCHttpConnection Class
クラスCFtpConnection Class
CGopherConnection クラスCGopherConnection Class