Teilen über


CInternetSession-Klasse

Erstellt und initialisiert einzelne oder mehrere gleichzeitige Internetsitzungen und beschreibt ggf. die Verbindung mit einem Proxyserver.

Syntax

class CInternetSession : public CObject

Member

Öffentliche Konstruktoren

Name Beschreibung
CInternetSession::CInternetSession Erstellt ein CInternetSession-Objekt.

Öffentliche Methoden

Name Beschreibung
CInternetSession::Close Beendet die Internetverbindung, wenn die Internetsitzung beendet wird.
CInternetSession::EnableStatusCallback Richtet eine Statusrückrufroutine ein.
CInternetSession::GetContext Beendet die Internetverbindung, wenn die Internetsitzung beendet wird.
CInternetSession::GetCookie Gibt Cookies für die angegebene URL und alle übergeordneten URLs zurück.
CInternetSession::GetCookieLength Ruft die Variable ab, die die Länge des im Puffer gespeicherten Cookies angibt.
CInternetSession::GetFtpConnection Öffnet eine FTP-Sitzung mit einem Server. Meldet eine Benutzerin bzw. einen Benutzer an.
CInternetSession::GetGopherConnection Öffnet einen Gopher-Server für eine Anwendung, die versucht, eine Verbindung herzustellen.
CInternetSession::GetHttpConnection Öffnet einen HTTP-Server für eine Anwendung, die versucht, eine Verbindung herzustellen.
CInternetSession::OnStatusCallback Aktualisiert den Status eines Vorgangs, wenn der Statusrückruf aktiviert ist.
CInternetSession::OpenURL Analysiert und öffnet eine URL.
CInternetSession::SetCookie Legt ein Cookie für die angegebene URL fest.
CInternetSession::SetOption Legt Optionen für die Internetsitzung fest.

Öffentliche Operatoren

Name Beschreibung
CInternetSession::operator HINTERNET Ein Handle für die aktuelle Internetsitzung.

Hinweise

Wenn Ihre Internetverbindung für die Dauer einer Anwendung beibehalten werden muss, können Sie ein CInternetSession-Member der Klasse CWinApp erstellen.

Nachdem Sie eine Internetsitzung eingerichtet haben, können Sie OpenURL aufrufen. CInternetSession analysiert dann die URL für Sie durch Aufrufen der globalen Funktion AfxParseURL. Unabhängig vom Protokolltyp interpretiert CInternetSession die URL und verwaltet sie für Sie. Sie kann Anforderungen für lokale Dateien verarbeiten, die mit der URL-Ressource „file://“ identifiziert wurden. OpenURL gibt einen Zeiger auf ein CStdioFile-Objekt zurück, wenn der übergebene Name eine lokale Datei ist.

Wenn Sie eine URL auf einem Internetserver mithilfe von OpenURL öffnen, können Sie Informationen von der Website lesen. Wenn Sie dienstspezifische Aktionen (z. B. HTTP, FTP oder Gopher) für Dateien auf einem Server ausführen möchten, müssen Sie die entsprechende Verbindung mit diesem Server herstellen. Verwenden Sie eine der folgenden Memberfunktionen, um eine bestimmte Art von Verbindung direkt mit einem bestimmten Dienst zu öffnen:

SetOption ermöglicht ihnen, die Abfrageoptionen Ihrer Sitzung festzulegen, z. B. Timeoutwerte, Anzahl der Wiederholungen usw.

Die CInternetSession-Memberfunktionen SetCookie, GetCookie und GetCookieLength ermöglichen die Verwaltung einer Win32-Cookie-Datenbank, in der Server und Skripte Statusinformationen über die Client-Arbeitsstation speichern.

Weitere Informationen zu grundlegenden Internetprogrammieraufgaben finden Sie im Artikel Erste Schritte mit dem Internet: WinInet. Allgemeine Informationen zur Verwendung der MFC-Klassen WinInet finden Sie im Artikel Internetprogrammierung mit WinInet.

Hinweis

CInternetSession löst einen AfxThrowNotSupportedException-Fehler für nicht unterstützte Diensttypen aus. Derzeit werden nur die folgenden Diensttypen unterstützt: FTP, HTTP, Gopher und Datei.

Vererbungshierarchie

CObject
CInternetSession

Anforderungen

Header: afxinet.h

CInternetSession::CInternetSession

Diese Memberfunktion wird aufgerufen, wenn ein CInternetSession-Objekt erstellt wird.

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

Parameter

pstrAgent
Ein Zeiger auf eine Zeichenfolge, die den Namen der Anwendung oder Entität identifiziert, die die Internetfunktionen aufruft (z. B. „Microsoft Internet Browser“). Wenn pstrAgent NULL (der Standardwert), ruft das Framework die globale Funktion AfxGetAppName auf, die eine null-beendete Zeichenfolge zurückgibt, die den Namen einer Anwendung enthält. Einige Protokolle verwenden diese Zeichenfolge, um Ihre Anwendung auf dem Server zu identifizieren.

dwContext
Der Kontextbezeichner für den -Vorgang. dwContext identifiziert die Statusinformationen des Vorgangs, die von CInternetSession::OnStatusCallback zurückgegeben werden. Der Standardwert ist auf 1 festgelegt; Sie können jedoch explizit eine bestimmte Kontext-ID für den Vorgang zuweisen. Das Objekt und alle Arbeiten, die es ausführt, werden mit dieser Kontext-ID verknüpft.

dwAccessType
Der erforderliche Zugriffstyp. Es folgen gültige Werte, von denen genau einer angegeben werden kann:

  • INTERNET_OPEN_TYPE_PRECONFIG Stellen Sie eine Verbindung mit vorkonfigurierten Einstellungen in der Registrierung her. Dieser Zugriffstyp wird als Standard festgelegt. Um eine Verbindung über einen TIS-Proxy herzustellen, legen Sie dwAccessType auf diesen Wert fest. Anschließend legen Sie die Registrierung entsprechend fest.

  • INTERNET_OPEN_TYPE_DIRECT Stellen Sie eine direkte Verbindung mit dem Internet her.

  • INTERNET_OPEN_TYPE_PROXY Stellen Sie eine Verbindung über einen CERN-Proxy her.

Informationen zum Herstellen einer Verbindung mit verschiedenen Proxytypen finden Sie in Schritte in einer typischen FTP-Clientanwendung.

pstrProxyName
Der Name des bevorzugten CERN-Proxys, wenn dwAccessType als INTERNET_OPEN_TYPE_PROXY festgelegt ist. Der Standardwert ist NULL.

pstrProxyBypass
Ein Zeiger auf eine Zeichenfolge, die eine optionale Liste von Serveradressen enthält. Diese Adressen können bei Verwendung des Proxyzugriffs umgangen werden. Wenn ein NULL-Wert angegeben wird, wird die Umgehungsliste aus der Registrierung gelesen. Dieser Parameter ist nur dann sinnvoll, wenn dwAccessType auf INTERNET_OPEN_TYPE_PROXY festgelegt ist.

dwFlags
Gibt verschiedene Zwischenspeicherungsoptionen an. Die Standardeinstellung ist 0. Mögliche Werte sind:

  • INTERNET_FLAG_DONT_CACHE Speichern Sie die Daten weder lokal noch auf Gatewayservern zwischen.

  • INTERNET_FLAG_OFFLINE Vorgänge zum Herunterladen werden nur über den persistenten Cache abgewickelt. Wenn das Element im Cache nicht vorhanden ist, wird ein entsprechender Fehlercode zurückgegeben. Dieses Flag kann mit dem bitweisen Operator „or“ (|) kombiniert werden.

Hinweise

CInternetSession ist die erste Internetfunktion, die von einer Anwendung aufgerufen wird. Sie initialisiert interne Datenstrukturen und bereitet zukünftige Aufrufe der Anwendung vor.

Wenn keine Internetverbindung geöffnet werden kann, löst CInternetSession eine AfxThrowInternetException aus.

Beispiel

Ein Beispiel hierfür finden Sie unter CFtpFileFind.

CInternetSession::Close

Rufen Sie diese Memberfunktion auf, wenn die Anwendung die Verwendung des CInternetSession-Objekts beendet hat.

virtual void Close();

Beispiel

Ein Beispiel hierfür finden Sie unter CFtpFileFind.

CInternetSession::EnableStatusCallback

Rufen Sie diese Memberfunktion auf, um den Status-Callback zu aktivieren.

BOOL EnableStatusCallback(BOOL bEnable = TRUE);

Parameter

bEnable
Gibt an, ob der Callback aktiviert oder deaktiviert ist. Der Standardwert ist TRUE.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null). Wenn der Aufruf fehlschlägt, bestimmen Sie die Ursache des Fehlers, indem Sie das ausgelöste CInternetException-Objekt untersuchen.

Hinweise

Wenn Sie den Status-Callback verwenden, können Sie den Fortschritt des Vorgangs (z. B. Namensauflösung, Verbindung zum Server usw.) in der Statusleiste der Anwendung anzeigen. Die Anzeige des Vorgangsstatus ist vor allem während eines langfristigen Vorgangs wünschenswert.

Da Callbacks während der Verarbeitung der Anforderung auftreten, sollte die Anwendung so wenig Zeit wie möglich im Callback verbringen, um eine Beeinträchtigung des Datendurchsatzes im Netzwerk zu vermeiden. So kann z. B. das Einrichten eines Dialogfelds in einem Callback ein so langwieriger Vorgang sein, dass der Server die Anforderung abbricht.

Der Status-Callback kann nicht entfernt werden, solange irgendwelche Callbacks ausstehen.

Um Vorgänge asynchron zu bearbeiten, müssen Sie entweder einen eigenen Thread erstellen oder die WinInet-Funktionen ohne MFC verwenden.

CInternetSession::GetContext

Rufen Sie diese Memberfunktion auf, um den Kontextwert für eine bestimmte Anwendungssitzung zu erhalten.

DWORD_PTR GetContext() const;

Rückgabewert

Der von der Anwendung definierte Kontextbezeichner.

Hinweise

OnStatusCallback verwendet die von GetContext zurückgegebene Kontext-ID, um den Status einer bestimmten Anwendung zu melden. Wenn eine Benutzerin oder ein Benutzer zum Beispiel eine Internet-Anforderung aktiviert, die die Rückgabe von Statusinformationen beinhaltet, verwendet der Status-Callback die Kontext-ID, um den Status dieser bestimmten Anforderung zu melden. Wenn die Benutzerin oder der Benutzer zwei separate Internet-Anforderungen aktiviert, die beide die Rückgabe von Statusinformationen beinhalten, verwendet OnStatusCallback die Kontextkennungen, um den Status der entsprechenden Anforderungen zurückzugeben. Folglich wird die Kontextkennung für alle Status-Callback-Vorgänge verwendet und ist mit der Sitzung verbunden, bis diese beendet wird.

Weitere Informationen über asynchrone Vorgänge finden Sie in dem Artikel Erste Schritte mit dem Internet: WinInet.

CInternetSession::GetCookie

Diese Memberfunktion implementiert das Verhalten der Win32-Funktion InternetGetCookie, wie im Windows SDK beschrieben.

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

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

Parameter

pstrUrl
Ein Zeiger auf eine Zeichenfolge, die die URL enthält.

pstrCookieName
Ein Zeiger auf eine Zeichenfolge, die den Namen des Cookies enthält, der für die angegebene URL abgerufen werden soll.

pstrCookieData
In der ersten Überladung zeigt ein Zeiger auf eine Zeichenfolge, die die Adresse des Puffers enthält, der die Cookiedaten empfängt. Dieser Wert kann NULL sein. In der zweiten Überladung wird ein Verweis auf ein CString-Objekt zum Empfangen der Cookiedaten verwendet.

dwBufLen
Die Variable, die die Größe des pstrCookieData-Puffers angibt. Wenn die Funktion erfolgreich ist, empfängt der Puffer die Datenmenge, die in den pstrCookieData-Puffer kopiert wurde. Wenn pstrCookieData NULL ist, erhält dieser Parameter einen Wert, der die Größe des Puffers angibt, der zum Kopieren aller Cookiedaten erforderlich ist.

Rückgabewert

Gibt bei Erfolg TRUE zurück; andernfalls FALSE. Wenn der Aufruf fehlschlägt, rufen Sie die Win32-Funktion GetLastError auf, um die Ursache des Fehlers zu ermitteln. Die folgenden Fehlerwerte gelten:

  • ERROR_NO_MORE_ITEMS Es gibt kein Cookie für die angegebene URL und alle übergeordneten URLs.

  • ERROR_INSUFFICIENT_BUFFER Der übergebene dwBufLen-Wert reicht nicht aus, um alle Cookiedaten zu kopieren. Der zurückgegebene Wert dwBufLen ist die Größe des Puffers, der zum Abrufen aller Daten erforderlich ist.

Hinweise

In der zweiten Überladung ruft MFC die Cookiedaten in das bereitgestellte CString-Objekt ab.

CInternetSession::GetCookieLength

Rufen Sie diese Memberfunktion auf, um die Länge des im Puffer gespeicherten Cookies abzurufen.

static DWORD GetCookieLength(
    LPCTSTR pstrUrl,
    LPCTSTR pstrCookieName);

Parameter

pstrUrl
Ein Zeiger auf eine Zeichenfolge, die die URL enthält

pstrCookieName
Ein Zeiger auf eine Zeichenfolge, die den Namen des festzulegenden Wert enthält.

Rückgabewert

Ein DWORD-Wert, der die Länge des Cookies angibt, das im Puffer gespeichert ist. Null, wenn kein Cookie mit dem durch pstrCookieName angegebenen Namen existiert.

Hinweise

Dieser Wert wird von GetCookie verwendet.

CInternetSession::GetFtpConnection

Rufen Sie diese Memberfunktion auf, um eine FTP-Verbindung aufzubauen und einen Zeiger auf ein CFtpConnection-Objekt abzurufen.

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

Parameter

pstrServer
Ein Zeiger auf eine Zeichenfolge, die den FTP-Servernamen enthält.

pstrUserName
Zeiger auf eine nullterminierte Zeichenkette, die den Namen der Benutzerin bzw. des Benutzers angibt, die bzw. der sich anmelden soll. Bei NULL ist die Standardeinstellung „Anonymous“.

pstrPassword
Ein Zeiger auf eine nullterminierte Zeichenkette, die das Kennwort für die Anmeldung angibt. Wenn sowohl pstrPassword und pstrUserName NULL ist, ist das standardmäßige anonyme Kennwort der E-Mail-Name der Benutzerin oder des Benutzers. Wenn pstrPassword NULL ist (oder eine leere Zeichenfolge), aber pstrUserName nicht NULL ist, wird ein leeres Kennwort verwendet. Die folgende Tabelle beschreibt das Verhalten für die vier möglichen Einstellungen von pstrUserName und pstrPassword:

pstrUserName pstrPassword An FTP-Server gesendeter Benutzername An FTP-Server gesendetes Kennwort
NULL oder " " NULL oder " " "anonymous" E-Mail-Name der Benutzerin bzw. des Benutzers
Nicht-NULL-Zeichenfolge NULL oder " " pstrUserName " "
NULL Nicht-NULL-Zeichenfolge FEHLER FEHLER
Nicht-NULL-Zeichenfolge Nicht-NULL-Zeichenfolge pstrUserName pstrPassword

nPort
Eine Zahl, die den auf dem Server zu verwendenden TCP/IP-Port angibt.

bPassive
Gibt den passiven oder aktiven Modus für diese FTP-Sitzung an. Wenn TRUE festgelegt ist, wird die Win32-API dwFlag auf INTERNET_FLAG_PASSIVE gesetzt.

Rückgabewert

Ein Zeiger auf ein CFtpConnection-Objekt. Wenn der Aufruf fehlschlägt, bestimmen Sie die Ursache des Fehlers, indem Sie das ausgelöste CInternetException-Objekt untersuchen.

Hinweise

GetFtpConnection stellt eine Verbindung mit einem FTP-Server her und erstellt und gibt einen Zeiger auf ein CFTPConnection-Objekt zurück. Es führt keinen bestimmten Vorgang auf dem Server aus. Wenn Sie z. B. Dateien lesen oder schreiben wollen, müssen Sie diese Vorgänge in separaten Schritten durchführen. In den Klassen CFtpConnection und CFtpFileFind finden Sie Informationen zur Suche nach Dateien, zum Öffnen von Dateien und zum Lesen oder Schreiben von Dateien. Im Artikel Internetprogrammierung mit WinInet finden Sie Schritte zur Durchführung gängiger FTP-Verbindungsaufgaben.

Beispiel

Ein Beispiel hierfür finden Sie unter CFtpFileFind.

CInternetSession::GetGopherConnection

Rufen Sie diese Memberfunktion auf, um eine neue Gopherverbindung aufzubauen und einen Zeiger auf ein CGopherConnection-Objekt abzurufen.

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

Parameter

pstrServer
Ein Zeiger auf eine Zeichenfolge, die den Gopher-Servernamen enthält.

pstrUserName
Ein Zeiger auf eine Zeichenfolge, die den Benutzernamen enthält.

pstrPassword
Ein Zeiger auf eine Zeichenfolge, die das Zugriffskennwort enthält.

nPort
Eine Zahl, die den auf dem Server zu verwendenden TCP/IP-Port angibt.

Rückgabewert

Ein Zeiger auf ein CGopherConnection-Objekt. Wenn der Aufruf fehlschlägt, bestimmen Sie die Ursache des Fehlers, indem Sie das ausgelöste CInternetException-Objekt untersuchen.

Hinweise

GetGopherConnection stellt eine Verbindung mit einem Gopher-Server her und erstellt und gibt einen Zeiger auf ein CGopherConnection-Objekt zurück. Es führt keinen bestimmten Vorgang auf dem Server aus. Wenn Sie z. B. Daten lesen oder schreiben wollen, müssen Sie diese Vorgänge in separaten Schritten durchführen. In den Klassen CGopherConnection, CGopherFile und CGopherFileFind finden Sie Informationen zur Suche nach Dateien, zum Öffnen von Dateien und zum Lesen oder Schreiben von Dateien. Informationen zum Durchsuchen einer FTP-Website finden Sie in der Memberfunktion OpenURL. Im Artikel Internetprogrammierung mit WinInet finden Sie Schritte zur Durchführung gängiger Gopher-Verbindungsaufgaben.

CInternetSession::GetHttpConnection

Rufen Sie diese Memberfunktion auf, um eine HTTP-Verbindung aufzubauen und einen Zeiger auf ein CHttpConnection-Objekt abzurufen.

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

Parameter

pstrServer
Ein Zeiger auf eine Zeichenfolge, die den HTTP-Servernamen enthält.

nPort
Eine Zahl, die den auf dem Server zu verwendenden TCP/IP-Port angibt.

pstrUserName
Ein Zeiger auf eine Zeichenfolge, die den Benutzernamen enthält.

pstrPassword
Ein Zeiger auf eine Zeichenfolge, die das Zugriffskennwort enthält.

dwflags
Eine beliebige Kombination aus den INTERNET_FLAG_*-Flags. In der Tabelle im Abschnitt Bemerkungen von CHttpConnection::OpenRequest finden Sie eine Beschreibung der dwFlags-Werte.

Rückgabewert

Ein Zeiger auf ein CHttpConnection-Objekt. Wenn der Aufruf fehlschlägt, bestimmen Sie die Ursache des Fehlers, indem Sie das ausgelöste CInternetException-Objekt untersuchen.

Hinweise

GetHttpConnection stellt eine Verbindung mit einem HTTP-Server her und erstellt und gibt einen Zeiger auf ein CHttpConnection-Objekt zurück. Es führt keinen bestimmten Vorgang auf dem Server aus. Wenn Sie z. B. einen HTTP-Header abfragen möchten, müssen Sie diesen Vorgang in einem separaten Schritt durchführen. In den Klassen CHttpConnection und CHttpFile finden Sie Informationen zu Vorgängen, die Sie über eine Verbindung zu einem HTTP-Server durchführen können. Informationen zum Durchsuchen einer HTTP-Website finden Sie in der Memberfunktion OpenURL. Im Artikel Internetprogrammierung mit WinInet finden Sie Schritte zur Durchführung gängiger HTTP-Verbindungsaufgaben.

CInternetSession::OnStatusCallback

Diese Memberfunktion wird vom Framework aufgerufen, um den Status zu aktualisieren, wenn der Status-Callback aktiviert ist und ein Vorgang aussteht.

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

Parameter

dwContext
Der von der Anwendung bereitgestellte Kontextwert.

dwInternetStatus
Ein Statuscode, der angibt, warum der Callback durchgeführt wird. Weitere Informationen finden Sie in den Anmerkungen zu einer Tabelle möglicher Werten.

lpvStatusInformation
Ein Zeiger auf einen Puffer, der Informationen enthält, die für diesen Callback relevant sind.

dwStatusInformationLength
Die Größe des lpvStatusInformation.

Hinweise

Sie müssen zuerst EnableStatusCallback aufrufen, um den Status-Callback zu nutzen.

Der Parameter dwInternetStatus gibt den ausgeführten Vorgang an und bestimmt den Inhalt von lpvStatusInformation. dwStatusInformationLength gibt die Länge der Daten an, die in lpvStatusInformation enthalten sind. Die folgenden Statuswerte für dwInternetStatus sind wie folgt definiert:

Wert Bedeutung
INTERNET_STATUS_RESOLVING_NAME Nachschlagen der IP-Adresse des Namens, der in lpvStatusInformation enthalten ist.
INTERNET_STATUS_NAME_RESOLVED Die IP-Adresse des Namens, der in lpvStatusInformation enthalten ist, wurde erfolgreich gefunden.
INTERNET_STATUS_CONNECTING_TO_SERVER Herstellen einer Verbindung mit der Socketadresse (SOCKADDR), auf die von lpvStatusInformation verwiesen wird.
INTERNET_STATUS_CONNECTED_TO_SERVER Erfolgreich mit der Socketadresse (SOCKADDR) verbunden, auf die von lpvStatusInformation verwiesen wird.
INTERNET_STATUS_SENDING_REQUEST Senden der Informationsanforderung an den Server. Der lpvStatusInformation-Parameter ist NULL.
INTERNET_STATUS_REQUEST_SENT Die Informationsanforderung wurde erfolgreich an den Server gesendet. Der lpvStatusInformation-Parameter ist NULL.
INTERNET_STATUS_RECEIVING_RESPONSE Warten auf die Antwort des Servers auf eine Anforderung. Der lpvStatusInformation-Parameter ist NULL.
INTERNET_STATUS_RESPONSE_RECEIVED Eine Antwort vom Server wurde erfolgreich empfangen. Der lpvStatusInformation-Parameter ist NULL.
INTERNET_STATUS_CLOSING_CONNECTION Beenden der Verbindung mit dem Server. Der lpvStatusInformation-Parameter ist NULL.
INTERNET_STATUS_CONNECTION_CLOSED Die Verbindung mit dem Server wurde erfolgreich beendet. Der lpvStatusInformation-Parameter ist NULL.
INTERNET_STATUS_HANDLE_CREATED Wird von der Win32-API-Funktion InternetConnect verwendet, um anzugeben, dass es das neue Handle erstellt hat. Dadurch kann die Anwendung die Win32-Funktion InternetCloseHandle aus einem anderen Thread aufrufen, wenn der Aufbau der Verbindung zu lang dauert. Weitere Informationen zu diesen Funktionen finden Sie im Windows SDK.
INTERNET_STATUS_HANDLE_CLOSING Dieser Handle-Wert wurde erfolgreich beendet.

Setzen Sie diese Memberfunktion außer Kraft, damit eine Aktion erforderlich ist, bevor eine Status-Callbackroutine ausgeführt wird.

Hinweis

Status-Callbacks benötigen Threadzustandsschutz. Wenn Sie MFC in einer freigegebenen Bibliothek verwenden, fügen Sie am Anfang der Außerkraftsetzung die folgende Zeile hinzu:

AFX_MANAGE_STATE(AfxGetAppModuleState());

Weitere Informationen über asynchrone Vorgänge finden Sie in dem Artikel Erste Schritte mit dem Internet: WinInet.

CInternetSession::OpenURL

Rufen Sie diese Memberfunktion auf, um die angegebene Anforderung an den HTTP-Server zu senden und dem Client die Möglichkeit zu geben, zusätzliche RFC822-, MIME- oder HTTP-Header anzugeben, die zusammen mit der Anforderung gesendet werden sollen.

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

Parameter

pstrURL
Ein Zeiger auf den Namen der URL, um mit dem Lesevorgang zu beginnen. Es werden nur URLs unterstützt, die mit file:, ftp:, gopher: oder http: beginnen. Gibt an, ob pstrURL gleich NULL ist.

dwContext
Ein von der Anwendung definierter Wert, der zusammen mit dem zurückgegebenen Handle im Callback übergeben wird.

dwFlags
Die Flags, die beschreiben, wie diese Verbindung verarbeitet wird. Weitere Informationen zu den gültigen Flags finden Sie in den Hinweisen. Gültige Flags sind:

  • INTERNET_FLAG_TRANSFER_ASCII, der Standardwert. Übertragen Sie die Datei als ASCII-Text.

  • INTERNET_FLAG_TRANSFER_BINARY Übertragen Sie die Datei als Binärdatei.

  • INTERNET_FLAG_RELOAD Rufen Sie die Daten aus der Verbindung ab, auch wenn sie lokal zwischengespeichert ist.

  • INTERNET_FLAG_DONT_CACHE Speichern Sie die Daten weder lokal noch in Gateways zwischen.

  • INTERNET_FLAG_SECURE Dieses Flag gilt nur für HTTP-Anforderungen. Es stellt Anforderungen an die Sicherheit von Transaktionen über Kabel mit Secure Sockets Layer oder PCT.

  • INTERNET_OPEN_FLAG_USE_EXISTING_CONNECT Verwenden Sie, wenn möglich, die bestehenden Verbindungen zum Server für neue, von OpenUrl erzeugte Anforderungen wieder, anstatt für jede Anforderung eine neue Sitzung zu erstellen.

  • INTERNET_FLAG_PASSIVE Wird für einen FTP-Standort verwendet. Verwendet passive FTP-Semantik. Wird mit CInternetConnection von OpenURL verwendet.

pstrHeaders
Ein Zeiger auf eine Zeichenfolge, die die Header enthält, die an den HTTP-Server gesendet werden sollen.

dwHeadersLength
Die Länge der zusätzlichen Header in Zeichen. Wenn dies -1L und pstrHeaders nicht NULL ist, wird davon ausgegangen, dass pstrHeaders nullterminiert ist und die Länge berechnet wird.

Rückgabewert

Gibt nur ein Dateihandle für Internetdienste vom Typ FTP, GOPHER, HTTP und FILE zurück. Gibt NULL zurück, wenn die Analyse nicht erfolgreich war.

Der von OpenURL zurückgegebene Zeiger hängt vom Diensttyp von pstrURL ab. In der folgenden Tabelle sind die möglichen Zeiger dargestellt, die von OpenURL zurückgegeben werden können.

URL-Typ Gibt zurück
file:// CStdioFile*
http:// CHttpFile*
gopher:// CGopherFile*
ftp:// CInternetFile*

Hinweise

Der Parameter dwFlags muss INTERNET_FLAG_TRANSFER_ASCII oder INTERNET_FLAG_TRANSFER_BINARY enthalten, aber nicht beide gleichzeitig. Die verbleibenden Flags können mit dem bitweisen Operator „or“ (|) kombiniert werden.

OpenURL umschließt die Win32-Funktion InternetOpenURL, und ermöglicht nur das Herunterladen, Abrufen und Lesen der Daten von einem Internetserver. OpenURL ermöglicht keine Dateimanipulation an einem Remotespeicherort, sodass kein CInternetConnection-Objekt erforderlich ist.

Um verbindungsspezifische (d.h. protokollspezifische) Funktionen zu verwenden, wie z. B. das Schreiben in eine Datei, müssen Sie eine Sitzung öffnen, dann eine bestimmte Art von Verbindung öffnen und dann diese Verbindung verwenden, um eine Datei im gewünschten Modus zu öffnen. Weitere Informationen zu verbindungsspezifischen Funktionen finden Sie unter CInternetConnection.

CInternetSession::operator HINTERNET

Verwenden Sie diesen Operator, um das Windows-Handle für die aktuelle Internetsitzung abzurufen.

operator HINTERNET() const;

CInternetSession::SetCookie

Legt ein Cookie für die angegebene URL fest.

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

Parameter

pstrUrl
Ein Zeiger auf eine nullterminierte Zeichenfolge, die die URL angibt, für die das Cookie festgelegt werden soll.

pstrCookieName
Ein Zeiger auf eine Zeichenfolge, die den Namen des festzulegenden Wert enthält.

pstrCookieData
Ein Zeiger auf eine Zeichenfolge, die die tatsächlichen Zeichenfolgendaten enthält, die der URL zugeordnet werden sollen.

Rückgabewert

Gibt bei Erfolg TRUE zurück; andernfalls FALSE. Rufen Sie GetLastError auf, um den spezifischen Fehlercode abzurufen.

Hinweise

Diese Memberfunktion implementiert das Verhalten der Win32-Nachricht InternetSetCookie, wie im Windows SDK beschrieben.

CInternetSession::SetOption

Rufen Sie diese Memberfunktion auf, um Optionen für die Internetsitzung festzulegen.

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

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

Parameter

dwOption
Die festzulegende Internetoption. Eine Liste der möglichen Optionen finden Sie unter Options-Flags im Windows SDK.

lpBuffer
Ein Puffer, der die Optionseinstellung enthält.

dwBufferLength
Die Länge von lpBuffer oder die Größe von dwValue.

dwValue
Ein DWORD, das die Optionseinstellung enthält.

dwFlags
Gibt verschiedene Zwischenspeicherungsoptionen an. Die Standardeinstellung ist 0. Mögliche Werte sind:

  • INTERNET_FLAG_DONT_CACHE Speichern Sie die Daten weder lokal noch auf Gatewayservern zwischen.

  • INTERNET_FLAG_OFFLINE Vorgänge zum Herunterladen werden nur über den persistenten Cache abgewickelt. Wenn das Element im Cache nicht vorhanden ist, wird ein entsprechender Fehlercode zurückgegeben. Dieses Flag kann mit dem bitweisen Operator „or“ (|) kombiniert werden.

Rückgabewert

Wenn der Vorgang erfolgreich war, wird ein TRUE-Wert zurückgegeben. Wenn ein Fehler aufgetreten ist, wird ein FALSE-Wert zurückgegeben. Wenn der Aufruf fehlschlägt, kann die Win32-Funktion GetLastError aufgerufen werden, um die Ursache des Fehlers zu ermitteln.

Weitere Informationen

CObject-Klasse
Hierarchiediagramm
CInternetConnection-Klasse
CHttpConnection-Klasse
CFtpConnection-Klasse
CGopherConnection-Klasse