InternetConnectW-Funktion (wininet.h)
Öffnet eine FTP- oder HTTP-Sitzung (File Transfer Protocol) für eine bestimmte Website.
Syntax
HINTERNET InternetConnectW(
[in] HINTERNET hInternet,
[in] LPCWSTR lpszServerName,
[in] INTERNET_PORT nServerPort,
[in] LPCWSTR lpszUserName,
[in] LPCWSTR lpszPassword,
[in] DWORD dwService,
[in] DWORD dwFlags,
[in] DWORD_PTR dwContext
);
Parameter
[in] hInternet
Handle, das von einem vorherigen Aufruf von InternetOpen zurückgegeben wurde.
[in] lpszServerName
Zeiger auf eine NULL-endende Zeichenfolge, die den Hostnamen eines Internetservers angibt. Alternativ kann die Zeichenfolge die IP-Nummer der Website im ASCII-Dezimalformat enthalten (z. B. 11.0.1.45).
[in] nServerPort
TCP/IP-Port (Transmission Control Protocol/Internet Protocol) auf dem Server. Diese Flags legen nur den port fest, der verwendet wird. Der Dienst wird durch den Wert von dwService festgelegt. Dieser Parameter kann einen der folgenden Werte annehmen.
Wert | Bedeutung |
---|---|
|
Verwendet den Standardport für FTP-Server (Port 21). |
|
Verwendet den Standardport für Gopher-Server (Port 70). Hinweis Nur Windows XP und Windows Server 2003 R2 und früher.
|
|
Verwendet den Standardport für HTTP-Server (Port 80). |
|
Verwendet den Standardport für HTTPS-Server (Secure Hypertext Transfer Protocol) (Port 443). |
|
Verwendet den Standardport für DIE SOCKS-Firewallserver (Port 1080). |
|
Verwendet den Standardport für den von dwService angegebenen Dienst. |
[in] lpszUserName
Zeiger auf eine NULL-endende Zeichenfolge, die den Namen des Benutzers angibt, der sich anmelden soll. Wenn dieser Parameter NULL ist, verwendet die Funktion einen entsprechenden Standardwert. Für das FTP-Protokoll ist der Standardwert "anonym".
[in] lpszPassword
Zeiger auf eine NULL-endende Zeichenfolge, die das Kennwort enthält, das für die Anmeldung verwendet werden soll. Wenn sowohl lpszPassword als auch lpszUsernameNULL sind, verwendet die Funktion das Standardkennwort "anonym". Im Falle von FTP ist das Standardkennwort der E-Mail-Name des Benutzers. Wenn lpszPasswordNULL ist, aber lpszUsername nicht NULL ist, verwendet die Funktion ein leeres Kennwort.
[in] dwService
Typ des Diensts, auf den zugegriffen werden soll. Dieser Parameter kann einen der folgenden Werte annehmen.
Wert | Bedeutung |
---|---|
|
FTP-Dienst. |
|
Gopher-Dienst. Hinweis Nur Windows XP und Windows Server 2003 R2 und früher.
|
|
HTTP-Dienst. |
[in] dwFlags
Spezifische Optionen für den verwendeten Dienst. Wenn
dwService ist INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE bewirkt, dass die Anwendung passive FTP-Semantik verwendet.
[in] dwContext
Zeiger auf eine Variable, die einen anwendungsdefinierten Wert enthält, der verwendet wird, um den Anwendungskontext für das zurückgegebene Handle in Rückrufen zu identifizieren.
Rückgabewert
Gibt ein gültiges Handle für die Sitzung zurück, wenn die Verbindung erfolgreich hergestellt wurde, oder andernfalls NULL . Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen abzurufen. Eine Anwendung kann auch InternetGetLastResponseInfo verwenden, um zu bestimmen, warum der Zugriff auf den Dienst verweigert wurde.
Hinweise
In der folgenden Tabelle wird das Verhalten für die vier möglichen Einstellungen lpszUsername und lpszPassword beschrieben.
lpszUsername | lpszPassword | An FTP-Server gesendeter Benutzername | An FTP-Server gesendetes Kennwort |
---|---|---|---|
NULL | NULL | "anonym" | E-Mail-Name des Benutzers |
Nicht-NULL-Zeichenfolge | NULL | lpszUsername | "" |
NULL | Nicht-NULL-Zeichenfolge | ERROR | ERROR |
Nicht-NULL-Zeichenfolge | Nicht-NULL-Zeichenfolge | lpszUsername | lpszPassword |
Für FTP-Websites stellt InternetConnect tatsächlich eine Verbindung mit dem Server her. Bei anderen wird die tatsächliche Verbindung erst hergestellt, wenn die Anwendung eine bestimmte Transaktion anfordert.
Um maximale Effizienz zu erzielen, sollten Anwendungen, die die HTTP-Protokolle verwenden, versuchen, Aufrufe von InternetConnect zu minimieren und den Aufruf dieser Funktion für jede vom Benutzer angeforderte Transaktion zu vermeiden. Eine Möglichkeit, dies zu erreichen, besteht darin, einen kleinen Cache von Handles beizubehalten, die von InternetConnect zurückgegeben werden. Wenn der Benutzer eine Anforderung an einen Server sendet, auf den zuvor zugegriffen wurde, ist dieses Sitzungshandle weiterhin verfügbar.
Nachdem die aufrufende Anwendung das von InternetConnect zurückgegebene HINTERNET-Handle verwendet hat, muss sie mit der InternetCloseHandle-Funktion geschlossen werden.
Hinweis Wenn eine Anforderung im asynchronen Modus gesendet wird (der dwFlags-Parameter von InternetOpen gibt INTERNET_FLAG_ASYNC an) und der dwContext-Parameter null (INTERNET_NO_CALLBACK) ist, wird die mit InternetSetStatusCallback für das Verbindungshandle festgelegte Rückruffunktion nicht aufgerufen, der Aufruf wird jedoch weiterhin im asynchronen Modus ausgeführt.
Beispiele für die Verwendung von InternetConnect finden Sie in den folgenden Themen.
Wie alle anderen Aspekte der WinINet-API kann diese Funktion nicht sicher innerhalb von DllMain oder den Konstruktoren und Destruktoren globaler Objekte aufgerufen werden.
Hinweis
Der wininet.h-Header definiert InternetConnect als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht Codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | wininet.h |
Bibliothek | Wininet.lib |
DLL | Wininet.dll |