InternetConnectA 関数 (wininet.h)

特定のサイトのファイル転送プロトコル (FTP) または HTTP セッションを開きます。

構文

HINTERNET InternetConnectA(
  [in] HINTERNET     hInternet,
  [in] LPCSTR        lpszServerName,
  [in] INTERNET_PORT nServerPort,
  [in] LPCSTR        lpszUserName,
  [in] LPCSTR        lpszPassword,
  [in] DWORD         dwService,
  [in] DWORD         dwFlags,
  [in] DWORD_PTR     dwContext
);

パラメーター

[in] hInternet

InternetOpen の前回の呼び出しによって返されたハンドル。

[in] lpszServerName

インターネット サーバーのホスト名を指定する null で終わる文字列へのポインター。 または、文字列にサイトの IP 番号を ASCII ドット 10 進形式 (11.0.1.45 など) で含めることもできます。

[in] nServerPort

サーバー上の伝送制御プロトコル/インターネット プロトコル (TCP/IP) ポート。 これらのフラグは、使用されるポートのみを設定します。 サービスは dwService の値によって設定されます。 このパラメーターには、次の値のいずれかを指定できます。

意味
INTERNET_DEFAULT_FTP_PORT
FTP サーバーの既定のポート (ポート 21) を使用します。
INTERNET_DEFAULT_GOPHER_PORT
Gopher サーバーの既定のポート (ポート 70) を使用します。
メモ Windows XP および Windows Server 2003 R2 以前のみ。
 
INTERNET_DEFAULT_HTTP_PORT
HTTP サーバーの既定のポート (ポート 80) を使用します。
INTERNET_DEFAULT_HTTPS_PORT
セキュリティで保護されたハイパーテキスト転送プロトコル (HTTPS) サーバーの既定のポート (ポート 443) を使用します。
INTERNET_DEFAULT_SOCKS_PORT
SOCKS ファイアウォール サーバーの既定のポート (ポート 1080) を使用します。
INTERNET_INVALID_PORT_NUMBER
dwService で指定されたサービスの既定のポートを使用します。

[in] lpszUserName

ログオンするユーザーの名前を指定する null で終わる文字列へのポインター。 このパラメーターが NULL の場合、関数は適切な既定値を使用します。 FTP プロトコルの場合、既定値は "anonymous" です。

[in] lpszPassword

ログオンに使用するパスワードを含む null で終わる文字列へのポインター。 lpszPasswordlpszUsername の両方が NULL の場合、関数は既定の "匿名" パスワードを使用します。 FTP の場合、既定のパスワードはユーザーの電子メール名です。 lpszPasswordNULL で、lpszUsernameNULL でない場合、この関数は空のパスワードを使用します。

[in] dwService

アクセスするサービスの種類。 このパラメーターには、次の値のいずれかを指定できます。

意味
INTERNET_SERVICE_FTP
FTP サービス。
INTERNET_SERVICE_GOPHER
Gopher サービス。
メモ Windows XP および Windows Server 2003 R2 以前のみ。
 
INTERNET_SERVICE_HTTP
HTTP サービス。

[in] dwFlags

使用されるサービスに固有のオプション。 If
dwService がINTERNET_SERVICE_FTP INTERNET_FLAG_PASSIVE 、アプリケーションはパッシブ FTP セマンティクスを使用します。

[in] dwContext

コールバックで返されるハンドルのアプリケーション コンテキストを識別するために使用されるアプリケーション定義値を含む変数へのポインター。

戻り値

接続が成功した場合はセッションへの有効なハンドルを返し、それ以外の場合は NULL を 返します。 拡張エラー情報を取得するには、 GetLastError を呼び出します。 アプリケーションでは、 InternetGetLastResponseInfo を使用して、サービスへのアクセスが拒否された理由を判断することもできます。

注釈

次の表では、 lpszUsernamelpszPassword の 4 つの設定の動作について説明します。

lpszUsername lpszPassword FTP サーバーに送信されたユーザー名 FTP サーバーに送信されたパスワード
NULL NULL "anonymous" ユーザーの電子メール名
NULL 以外の文字列 NULL lpszUsername ""
NULL NULL 以外の文字列 ERROR ERROR
NULL 以外の文字列 NULL 以外の文字列 lpszUsername lpszPassword
 

FTP サイトの場合、 InternetConnect は実際にはサーバーとの接続を確立します。それ以外の場合、アプリケーションが特定のトランザクションを要求するまで、実際の接続は確立されません。

効率を最大限に高めるために、HTTP プロトコルを使用するアプリケーションでは 、InternetConnect への呼び出しを最小限に抑え、ユーザーが要求するすべてのトランザクションに対してこの関数を呼び出さないようにする必要があります。 これを実現する 1 つの方法は、 InternetConnect から返されるハンドルの小さなキャッシュを保持することです。ユーザーが以前にアクセスしたサーバーに対して要求を行った場合、そのセッション ハンドルは引き続き使用できます。

呼び出し元のアプリケーションが InternetConnect によって返される HINTERNET ハンドルの使用を終了したら、InternetCloseHandle 関数を使用して閉じる必要があります。

メモ要求が非同期モードで送信された場合 (InternetOpendwFlags パラメーターはINTERNET_FLAG_ASYNCを指定します)、dwContext パラメーターが 0 (INTERNET_NO_CALLBACK) の場合、接続ハンドルで InternetSetStatusCallback を使用して設定されたコールバック関数は呼び出されませんが、呼び出しは非同期モードで実行されます。

InternetConnect の使用例については、次のトピックを参照してください。

WinINet API の他のすべての側面と同様に、この関数を DllMain またはグローバル オブジェクトのコンストラクターとデストラクター内から安全に呼び出すことはできません。

メモ WinINet では、サーバーの実装はサポートされていません。 また、サービスから使用しないでください。 サーバーの実装またはサービスの場合は、 Microsoft Windows HTTP サービス (WinHTTP) を使用します。
 

注意

wininet.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして InternetConnect を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと混在させると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー wininet.h
Library Wininet.lib
[DLL] Wininet.dll

こちらもご覧ください

インターネット機能の有効化

WinINet 関数