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 の値によって設定されます。 このパラメーターには、次の値のいずれかを指定できます。
値 | 意味 |
---|---|
|
FTP サーバーの既定のポート (ポート 21) を使用します。 |
|
Gopher サーバーの既定のポート (ポート 70) を使用します。 メモ Windows XP および Windows Server 2003 R2 以前のみ。
|
|
HTTP サーバーの既定のポート (ポート 80) を使用します。 |
|
セキュリティで保護されたハイパーテキスト転送プロトコル (HTTPS) サーバー (ポート 443) の既定のポートを使用します。 |
|
SOCKS ファイアウォール サーバーの既定のポート (ポート 1080) を使用します。 |
|
dwService で指定されたサービスの既定のポートを使用します。 |
[in] lpszUserName
ログオンするユーザーの名前を指定する null で終わる文字列へのポインター。 このパラメーターが NULL の場合、関数は適切な既定値を使用します。 FTP プロトコルの場合、既定値は "匿名" です。
[in] lpszPassword
ログオンに使用するパスワードを含む null で終わる文字列へのポインター。 lpszPassword と lpszUsername の両方が NULL の場合、関数は既定の "匿名" パスワードを使用します。 FTP の場合、既定のパスワードはユーザーのメール名です。 lpszPassword が NULL で、lpszUsername が NULL でない場合、関数は空白のパスワードを使用します。
[in] dwService
アクセスするサービスの種類。 このパラメーターには、次の値のいずれかを指定できます。
値 | 意味 |
---|---|
|
FTP サービス。 |
|
Gopher サービス。 メモ Windows XP および Windows Server 2003 R2 以前のみ。
|
|
HTTP サービス。 |
[in] dwFlags
使用されるサービスに固有のオプション。 状況
dwService がINTERNET_SERVICE_FTP INTERNET_FLAG_PASSIVE 、アプリケーションでパッシブ FTP セマンティクスが使用されます。
[in] dwContext
コールバックで返されるハンドルのアプリケーション コンテキストを識別するために使用されるアプリケーション定義値を含む変数へのポインター。
戻り値
接続が成功した場合はセッションへの有効なハンドルを返し、それ以外の場合は NULL を 返します。 拡張エラー情報を取得するには、 GetLastError を呼び出します。 アプリケーションでは、 InternetGetLastResponseInfo を使用して、サービスへのアクセスが拒否された理由を判断することもできます。
注釈
次の表では、 lpszUsername と lpszPassword の 4 つの設定の動作について説明します。
lpszUsername | lpszPassword | FTP サーバーに送信されたユーザー名 | FTP サーバーに送信されたパスワード |
---|---|---|---|
NULL | NULL | "匿名" | ユーザーの電子メール名 |
NULL 以外の文字列 | NULL | lpszUsername | "" |
NULL | NULL 以外の文字列 | ERROR | ERROR |
NULL 以外の文字列 | NULL 以外の文字列 | lpszUsername | lpszPassword |
FTP サイトの場合、 InternetConnect は実際にはサーバーとの接続を確立します。それ以外の場合、アプリケーションが特定のトランザクションを要求するまで、実際の接続は確立されません。
効率を最大限に高めるために、HTTP プロトコルを使用するアプリケーションでは 、InternetConnect の呼び出しを最小限に抑え、ユーザーが要求するすべてのトランザクションに対してこの関数を呼び出さないようにする必要があります。 これを実現する 1 つの方法は、 InternetConnect から返されるハンドルの小さなキャッシュを保持することです。ユーザーが以前にアクセスしたサーバーに対して要求を行った場合、そのセッション ハンドルは引き続き使用できます。
呼び出し元のアプリケーションが InternetConnect によって返される HINTERNET ハンドルの使用を終了したら、InternetCloseHandle 関数を使用して閉じる必要があります。
メモ要求が非同期モードで送信された場合 (InternetOpen の dwFlags パラメーターはINTERNET_FLAG_ASYNCを指定します)、dwContext パラメーターが 0 (INTERNET_NO_CALLBACK) の場合、接続ハンドルで InternetSetStatusCallback で設定されたコールバック関数は呼び出されませんが、呼び出しは非同期モードで実行されます。
InternetConnect の使用例については、次のトピックを参照してください。
WinINet API の他のすべての側面と同様に、この関数を DllMain またはグローバル オブジェクトのコンストラクターとデストラクター内から安全に呼び出すことはできません。
注意
wininet.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして InternetConnect を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | wininet.h |
Library | Wininet.lib |
[DLL] | Wininet.dll |