Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Opmerking
De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.
Hiermee verleent u toegang tot bestanden op externe systemen die gebruikmaken van internetprotocollen.
Syntaxis
class CInternetFile : public CStdioFile
Leden
Beveiligde constructors
| Naam | Description |
|---|---|
| CInternetFile::CInternetFile | Maakt een CInternetFile object. |
Openbare methoden
| Naam | Description |
|---|---|
| CInternetFile::Abort | Hiermee sluit u het bestand, waarbij alle waarschuwingen en fouten worden genegeerd. |
| CInternetFile::Close | Hiermee sluit u een CInternetFile en worden de resources vrijgemaakt. |
| CInternetFile::Flush | De inhoud van de schrijfbuffer leegmaken en ervoor zorgen dat de gegevens in het geheugen naar de doelcomputer worden geschreven. |
| CInternetFile::GetLength | Retourneert de grootte van het bestand. |
| CInternetFile::Read | Hiermee wordt het aantal opgegeven bytes gelezen. |
| CInternetFile::ReadString | Leest een stroom tekens. |
| CInternetFile::Seek | Hiermee verplaatst u de aanwijzer in een geopend bestand. |
| CInternetFile::SetReadBufferSize | Hiermee stelt u de grootte van de buffer in waar gegevens worden gelezen. |
| CInternetFile::SetWriteBufferSize | Hiermee stelt u de grootte van de buffer in waar gegevens worden geschreven. |
| CInternetFile::Write | Hiermee schrijft u het aantal opgegeven bytes. |
| CInternetFile::WriteString | Hiermee schrijft u een door null beëindigde tekenreeks naar een bestand. |
Openbare operators
| Naam | Description |
|---|---|
| CInternetFile::operator ACHTERNET | Een cast-operator voor een internethandgreep. |
Beveiligde gegevensleden
| Naam | Description |
|---|---|
| CInternetFile::m_hFile | Een ingang naar een bestand. |
Opmerkingen
Biedt een basisklasse voor de klassen CHttpFile en CGopherFile . U maakt nooit rechtstreeks een CInternetFile object. Maak in plaats daarvan een object van een van de afgeleide klassen door CGopherConnection::OpenFile of CHttpConnection::OpenRequest aan te roepen. U kunt ook een CInternetFile object maken door CFtpConnection::OpenFile aan te roepen.
De CInternetFile lidfuncties Open, LockRangeen UnlockRangeDuplicate zijn niet geïmplementeerd voor CInternetFile. Als u deze functies op een CInternetFile object aanroept, krijgt u een CNotSupportedException.
Zie het artikel Internetprogrammering met WinInet voor meer informatie over het CInternetFile werken met de andere MFC-internetklassen.
Overnamehiërarchie
CInternetFile
Requirements
Koptekst: afxinet.h
CInternetFile::Abort
Hiermee sluit u het bestand dat aan dit object is gekoppeld en is het bestand niet beschikbaar voor lezen of schrijven.
virtual void Abort();
Opmerkingen
Als u het bestand niet hebt gesloten voordat u het object vernietigt, sluit de destructor het voor u.
Bij het afhandelen van uitzonderingen verschilt Abort het op twee belangrijke manieren van Sluiten . Ten eerste genereert de Abort functie geen uitzondering op fouten omdat fouten worden genegeerd. Ten tweede wordt Abort niet assertie uitgevoerd als het bestand niet is geopend of eerder is gesloten.
CInternetFile::CInternetFile
Deze lidfunctie wordt aangeroepen wanneer een CInternetFile object wordt gemaakt.
CInternetFile(
HINTERNET hFile,
LPCTSTR pstrFileName,
CInternetConnection* pConnection,
BOOL bReadMode);
CInternetFile(
HINTERNET hFile,
HINTERNET hSession,
LPCTSTR pstrFileName,
LPCTSTR pstrServer,
DWORD_PTR dwContext,
BOOL bReadMode);
Parameterwaarden
hFile
Een ingang naar een internetbestand.
pstrFileName
Een aanwijzer naar een tekenreeks met de bestandsnaam.
pConnection
Een aanwijzer naar een CInternetConnection-object .
bReadMode
Geeft aan of het bestand het kenmerk Alleen-lezen heeft.
hSession
Een ingang voor een internetsessie.
pstrServer
Een aanwijzer naar een tekenreeks die de naam van de server bevat.
dwContext
De context-id voor het CInternetFile object. Zie WinInet Basics voor meer informatie over de context-id.
Opmerkingen
U maakt nooit rechtstreeks een CInternetFile object. Maak in plaats daarvan een object van een van de afgeleide klassen door CGopherConnection::OpenFile of CHttpConnection::OpenRequest aan te roepen. U kunt ook een CInternetFile object maken door CFtpConnection::OpenFile aan te roepen.
CInternetFile::Close
Hiermee sluit u een CInternetFile en verwijdert u alle resources.
virtual void Close();
Opmerkingen
Als het bestand is geopend voor schrijven, is er een impliciete aanroep naar Flush om ervoor te zorgen dat alle gebufferde gegevens naar de host worden geschreven. U moet bellen Close wanneer u klaar bent met het gebruik van een bestand.
CInternetFile::Flush
Roep deze lidfunctie aan om de inhoud van de schrijfbuffer leeg te maken.
virtual void Flush();
Opmerkingen
Gebruik Flush dit om ervoor te zorgen dat alle gegevens in het geheugen daadwerkelijk naar de doelcomputer zijn geschreven en om uw transactie met de hostmachine te verzekeren is voltooid.
Flush is alleen effectief voor CInternetFile objecten die zijn geopend voor schrijven.
CInternetFile::GetLength
Retourneert de grootte van het bestand.
virtual ULONGLONG GetLength() const;
CInternetFile::m_hFile
Een ingang voor het bestand dat aan dit object is gekoppeld.
HINTERNET m_hFile;
CInternetFile::operator ACHTERNET
Gebruik deze operator om de Windows-ingang voor de huidige internetsessie op te halen.
operator HINTERNET() const;
CInternetFile::Read
Roep deze lidfunctie aan om in het opgegeven geheugen te lezen, te beginnen bij lpvBuf, het opgegeven aantal bytes, nCount.
virtual UINT Read(
void* lpBuf,
UINT nCount);
Parameterwaarden
lpBuf
Een aanwijzer naar een geheugenadres waarnaar bestandsgegevens worden gelezen.
nCount
Het aantal te schrijven bytes.
Retourwaarde
Het aantal bytes dat naar de buffer is overgebracht. De retourwaarde kan kleiner zijn dan nCount als het einde van het bestand is bereikt.
Opmerkingen
De functie retourneert het aantal bytes dat daadwerkelijk is gelezen, een getal dat mogelijk kleiner is dan nCount als het bestand eindigt. Als er een fout optreedt tijdens het lezen van het bestand, genereert de functie een CInternetException-object dat de fout beschrijft. Houd er rekening mee dat het lezen voorbij het einde van het bestand niet wordt beschouwd als een fout en dat er geen uitzondering wordt gegenereerd.
Om ervoor te zorgen dat alle gegevens worden opgehaald, moet een toepassing de CInternetFile::Read methode blijven aanroepen totdat de methode nul retourneert.
CInternetFile::ReadString
Roep deze lidfunctie aan om een stroom tekens te lezen totdat er een nieuw regelteken wordt gevonden.
virtual BOOL ReadString(CString& rString);
virtual LPTSTR ReadString(
LPTSTR pstr,
UINT nMax);
Parameterwaarden
pstr
Een aanwijzer naar een tekenreeks die de regel ontvangt die wordt gelezen.
nMax
Het maximum aantal tekens dat moet worden gelezen.
rString
Een verwijzing naar het CString-object dat de leesregel ontvangt.
Retourwaarde
Een aanwijzer naar de buffer met gewone gegevens die zijn opgehaald uit het CInternetFile-object . Ongeacht het gegevenstype van de buffer die aan deze methode wordt doorgegeven, worden er geen bewerkingen uitgevoerd op de gegevens (bijvoorbeeld conversie naar Unicode), dus u moet de geretourneerde gegevens toewijzen aan de structuur die u verwacht, alsof het void* type is geretourneerd.
NULL als het einde van het bestand is bereikt zonder gegevens te lezen; of, als booleaanse waarde ONWAAR is als het einde van het bestand is bereikt zonder gegevens te lezen.
Opmerkingen
De functie plaatst de resulterende regel in het geheugen waarnaar wordt verwezen door de pstr-parameter . Hiermee worden tekens niet meer gelezen wanneer het maximum aantal tekens wordt bereikt, opgegeven door nMax. De buffer ontvangt altijd een afsluit null-teken.
Als u belt zonder eerst SetReadBufferSize aan te roepenReadString, krijgt u een buffer van 4096 bytes.
CInternetFile::Seek
Roep deze lidfunctie aan om de aanwijzer in een eerder geopend bestand te verplaatsen.
virtual ULONGLONG Seek(
LONGLONG lOffset,
UINT nFrom);
Parameterwaarden
lOffset
Verschuiving in bytes om de aanwijzer voor lezen/schrijven in het bestand te verplaatsen.
nVan
Relatieve verwijzing voor de offset. Moet een van de volgende waarden zijn:
CFile::beginVerplaats de bestandsaanwijzer lOff-bytes vanaf het begin van het bestand.CFile::currentVerplaats de bestandsaanwijzer lOff-bytes van de huidige positie in het bestand.CFile::endVerplaats de bestandspointer lOff-bytes vanaf het einde van het bestand. LOff moet negatief zijn om naar het bestaande bestand te zoeken; positieve waarden zoeken voorbij het einde van het bestand.
Retourwaarde
De nieuwe byte offset vanaf het begin van het bestand als de aangevraagde positie juridisch is; anders is de waarde niet gedefinieerd en wordt er een CInternetException-object gegenereerd.
Opmerkingen
De Seek functie staat willekeurige toegang tot de inhoud van een bestand toe door de aanwijzer een opgegeven hoeveelheid, absoluut of relatief, te verplaatsen. Er worden tijdens het zoeken geen gegevens gelezen.
Op dit moment wordt een aanroep van deze lidfunctie alleen ondersteund voor gegevens die zijn gekoppeld aan CHttpFile objecten. Het wordt niet ondersteund voor FTP- of gopher-aanvragen. Als u een van deze niet-ondersteunde services aanroept Seek , wordt u teruggegeven aan de Win32-foutcode ERROR_INTERNET_INVALID_OPERATION.
Wanneer een bestand wordt geopend, bevindt de bestandsaanwijzer zich op offset 0, het begin van het bestand.
Opmerking
Het gebruik Seek kan leiden tot een impliciete aanroep van Flush.
Example
Zie het voorbeeld voor de basisklasse-implementatie ( CFile::Seek).
CInternetFile::SetReadBufferSize
Roep deze lidfunctie aan om de grootte van de tijdelijke leesbuffer in te stellen die wordt gebruikt door een CInternetFile-afgeleide object.
BOOL SetReadBufferSize(UINT nReadSize);
Parameterwaarden
nReadSize
De gewenste buffergrootte in bytes.
Retourwaarde
Niet-nul indien geslaagd; anders 0. Als de aanroep mislukt, kan de Win32-functie GetLastError worden aangeroepen om de oorzaak van de fout te bepalen.
Opmerkingen
De onderliggende WinInet-API's voeren geen buffering uit, dus kies een buffergrootte waarmee uw toepassing gegevens efficiënt kan lezen, ongeacht de hoeveelheid gegevens die moet worden gelezen. Als elke aanroep naar Lezen normaal gesproken een grote hoeveelheid gegevens omvat (bijvoorbeeld vier of meer kilobytes), hebt u geen buffer nodig. Als u echter aanroept Read om kleine segmenten gegevens te krijgen, of als u ReadString gebruikt om afzonderlijke regels tegelijk te lezen, verbetert een leesbuffer de prestaties van de toepassing.
Standaard biedt een CInternetFile object geen buffering voor lezen. Als u deze lidfunctie aanroept, moet u ervoor zorgen dat het bestand is geopend voor leestoegang.
U kunt de buffergrootte op elk gewenst moment vergroten, maar het verkleinen van de buffer heeft geen effect. Als u ReadString aanroept zonder eerst aan te roepen SetReadBufferSize, krijgt u een buffer van 4096 bytes.
CInternetFile::SetWriteBufferSize
Roep deze lidfunctie aan om de grootte van de tijdelijke schrijfbuffer in te stellen die wordt gebruikt door een CInternetFile-afgeleide object.
BOOL SetWriteBufferSize(UINT nWriteSize);
Parameterwaarden
nWriteSize
De grootte van de buffer in bytes.
Retourwaarde
Niet-nul indien geslaagd; anders 0. Als de aanroep mislukt, kan de Win32-functie GetLastError worden aangeroepen om de oorzaak van de fout te bepalen.
Opmerkingen
De onderliggende WinInet-API's voeren geen buffering uit, dus kies een buffergrootte waarmee uw toepassing efficiënt gegevens kan schrijven, ongeacht de hoeveelheid gegevens die moet worden geschreven. Als elke aanroep naar Schrijven normaal gesproken een grote hoeveelheid gegevens omvat (bijvoorbeeld vier of meer kilobytes tegelijk), hebt u geen buffer nodig. Als u Write echter aanroept om kleine stukken gegevens te schrijven, verbetert een schrijfbuffer de prestaties van uw toepassing.
Standaard biedt een CInternetFile object geen buffering voor schrijven. Als u deze lidfunctie aanroept, moet u ervoor zorgen dat het bestand is geopend voor schrijftoegang. U kunt de grootte van de schrijfbuffer op elk gewenst moment wijzigen, maar dit veroorzaakt een impliciete aanroep naar Leegmaken.
CInternetFile::Write
Roep deze lidfunctie aan om te schrijven naar het opgegeven geheugen, lpvBuf, het opgegeven aantal bytes, nCount.
virtual void Write(
const void* lpBuf,
UINT nCount);
Parameterwaarden
lpBuf
Een aanwijzer naar de eerste byte die moet worden geschreven.
nCount
Hiermee geeft u het aantal bytes dat moet worden geschreven.
Opmerkingen
Als er een fout optreedt tijdens het schrijven van de gegevens, genereert de functie een CInternetException-object waarin de fout wordt beschreven.
CInternetFile::WriteString
Met deze functie wordt een tekenreeks met null-beëindiging naar het bijbehorende bestand geschreven.
virtual void WriteString(LPCTSTR pstr);
Parameterwaarden
pstr
Een aanwijzer naar een tekenreeks die de inhoud bevat die moet worden geschreven.
Opmerkingen
Als er een fout optreedt tijdens het schrijven van de gegevens, genereert de functie een CInternetException-object waarin de fout wordt beschreven.
Zie ook
CStdioFile-klasse
Hiërarchiegrafiek
CInternetConnection-klasse