Share via


CAtlFile-klasse

Opmerking

De ATL (Active Template Library) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Deze klasse biedt een thin wrapper rond de Windows-API voor bestandsafhandeling.

Belangrijk

Deze klasse en de bijbehorende leden kunnen niet worden gebruikt in toepassingen die worden uitgevoerd in Windows Runtime.

Syntaxis

class CAtlFile : public CHandle

Leden

Openbare constructors

Naam Description
CAtlFile::CAtlFile De constructor.

Openbare methoden

Naam Description
CAtlFile::Maken Roep deze methode aan om een bestand te maken of te openen.
CAtlFile::Flush Roep deze methode aan om de buffers voor het bestand te wissen en ervoor te zorgen dat alle gebufferde gegevens naar het bestand worden geschreven.
CAtlFile::GetOverlappedResult Roep deze methode aan om de resultaten van een overlappende bewerking op het bestand op te halen.
CAtlFile::GetPosition Roep deze methode aan om de positie van de huidige bestandsaanwijzer op te halen uit het bestand.
CAtlFile::GetSize Roep deze methode aan om de grootte op te halen in bytes van het bestand.
CAtlFile::LockRange Roep deze methode aan om een regio in het bestand te vergrendelen om te voorkomen dat andere processen er toegang toe hebben.
CAtlFile::Read Roep deze methode aan om gegevens uit een bestand te lezen vanaf de positie die wordt aangegeven door de bestandsaanwijzer.
CAtlFile::Seek Roep deze methode aan om de bestandswijzer van het bestand te verplaatsen.
CAtlFile::SetSize Roep deze methode aan om de grootte van het bestand in te stellen.
CAtlFile::UnlockRange Roep deze methode aan om een regio van het bestand te ontgrendelen.
CAtlFile::Schrijven Roep deze methode aan om gegevens naar het bestand te schrijven vanaf de positie die wordt aangegeven door de bestandsaanwijzer.

Beveiligde gegevensleden

Naam Description
CAtlFile::m_pTM Aanwijzer naar CAtlTransactionManager object

Opmerkingen

Gebruik deze klasse wanneer bestandsafhandelingsbehoeften relatief eenvoudig zijn, maar meer abstractie dan de Windows-API vereist is, zonder MFC-afhankelijkheden op te geven.

Overnamehiƫrarchie

CHandle

CAtlFile

Requirements

Header: atlfile.h

CAtlFile::CAtlFile

De constructor.

CAtlFile() throw();
CAtlFile(CAtlTransactionManager* pTM = NULL) throw();
CAtlFile(CAtlFile& file) throw();
explicit CAtlFile(HANDLE hFile) throw();

Parameterwaarden

bestand
Het bestandsobject.

hFile
De bestandsgreep.

pTM-
Aanwijzer naar CAtlTransactionManager-object

Opmerkingen

De kopieerconstructor draagt het eigendom van de bestandsgreep van het oorspronkelijke CAtlFile object over naar het zojuist samengestelde object.

CAtlFile::Maken

Roep deze methode aan om een bestand te maken of te openen.

HRESULT Create(
    LPCTSTR szFilename,
    DWORD dwDesiredAccess,
    DWORD dwShareMode,
    DWORD dwCreationDisposition,
    DWORD dwFlagsAndAttributes = FILE_ATTRIBUTE_NORMAL,
    LPSECURITY_ATTRIBUTES lpsa = NULL,
    HANDLE hTemplateFile = NULL) throw();

Parameterwaarden

szFilename
De bestandsnaam.

dwDesiredAccess
De gewenste toegang. Zie dwDesiredAccess in CreateFile in de Windows SDK.

dwShareMode
De deelmodus. Zie dwShareMode in CreateFile.

dwCreationDisposition
De verwijdering van het maken. Zie dwCreationDisposition in CreateFile.

dwFlagsAndAttributes
De vlaggen en kenmerken. Zie dwFlagsAndAttributes in CreateFile.

lpsa
De beveiligingskenmerken. Zie lpSecurityAttributes in CreateFile.

hTemplateFile
Het sjabloonbestand. Zie hTemplateFile in CreateFile.

Retourwaarde

Retourneert S_OK bij succes of een fout HRESULT bij fout.

Opmerkingen

Roept CreateFile aan om het bestand te maken of te openen.

CAtlFile::Flush

Roep deze methode aan om de buffers voor het bestand te wissen en ervoor te zorgen dat alle gebufferde gegevens naar het bestand worden geschreven.

HRESULT Flush() throw();

Retourwaarde

Retourneert S_OK bij succes of een fout HRESULT bij fout.

Opmerkingen

Roept FlushFileBuffers aan om gebufferde gegevens naar het bestand te spoelen.

CAtlFile::GetOverlappedResult

Roep deze methode aan om de resultaten van een overlappende bewerking op het bestand op te halen.

HRESULT GetOverlappedResult(
    LPOVERLAPPED pOverlapped,
    DWORD& dwBytesTransferred,
    BOOL bWait) throw();

Parameterwaarden

pOverlapped
De overlappende structuur. Zie lpOverlapped in GetOverlappedResult in de Windows SDK.

dwBytesTransferred
De overgedragen bytes. Zie lpNumberOfBytesTransferred in GetOverlappedResult.

bWait
De wachtoptie. Zie bWait in GetOverlappedResult.

Retourwaarde

Retourneert S_OK bij succes of een fout HRESULT bij fout.

Opmerkingen

Roept GetOverlappedResult aan om de resultaten van een overlappende bewerking op het bestand op te halen.

CAtlFile::GetPosition

Roep deze methode aan om de positie van de huidige bestandsaanwijzer op te halen.

HRESULT GetPosition(ULONGLONG& nPos) const throw();

Parameterwaarden


De positie in bytes.

Retourwaarde

Retourneert S_OK bij succes of een fout HRESULT bij fout.

Opmerkingen

Roept SetFilePointer aan om de positie van de huidige bestandsaanwijzer op te halen.

CAtlFile::GetSize

Roep deze methode aan om de grootte op te halen in bytes van het bestand.

HRESULT GetSize(ULONGLONG& nLen) const throw();

Parameterwaarden

nLen
Het aantal bytes in het bestand.

Retourwaarde

Retourneert S_OK bij succes of een fout HRESULT bij fout.

Opmerkingen

Roept GetFileSize aan om de grootte in bytes van het bestand op te halen.

CAtlFile::LockRange

Roep deze methode aan om een regio in het bestand te vergrendelen om te voorkomen dat andere processen er toegang toe hebben.

HRESULT LockRange(ULONGLONG nPos, ULONGLONG nCount) throw();

Parameterwaarden


De positie in het bestand waar de vergrendeling moet beginnen.

nCount
De lengte van het bytebereik dat moet worden vergrendeld.

Retourwaarde

Retourneert S_OK bij succes of een fout HRESULT bij fout.

Opmerkingen

Roept LockFile aan om een regio in het bestand te vergrendelen. Het vergrendelen van bytes in een bestand voorkomt toegang tot die bytes door andere processen. U kunt meerdere regio's van een bestand vergrendelen, maar er zijn geen overlappende regio's toegestaan. Wanneer u een regio ontgrendelt met CAtlFile::UnlockRange, moet het bytebereik exact overeenkomen met de regio die eerder is vergrendeld. LockRange voegt geen aangrenzende regio's samen; als twee vergrendelde regio's aangrenzend zijn, moet u elk afzonderlijk ontgrendelen.

CAtlFile::m_pTM

Aanwijzer naar een CAtlTransactionManager-object.

CAtlTransactionManager* m_pTM;

Opmerkingen

CAtlFile::Read

Roep deze methode aan om gegevens uit een bestand te lezen vanaf de positie die wordt aangegeven door de bestandsaanwijzer.

HRESULT Read(
    LPVOID pBuffer,
    DWORD nBufSize) throw();

HRESULT Read(
    LPVOID pBuffer,
    DWORD nBufSize,
    DWORD& nBytesRead) throw();

HRESULT Read(
    LPVOID pBuffer,
    DWORD nBufSize,
    LPOVERLAPPED pOverlapped) throw();

HRESULT Read(
    LPVOID pBuffer,
    DWORD nBufSize,
    LPOVERLAPPED pOverlapped,
    LPOVERLAPPED_COMPLETION_ROUTINE pfnCompletionRoutine) throw();

Parameterwaarden

pBuffer
Wijs de buffer aan waarmee de gegevens worden gelezen uit het bestand.

nBufSize
De buffergrootte in bytes.

nBytesRead
Het aantal gelezen bytes.

pOverlapped
De overlappende structuur. Zie lpOverlapped in ReadFile in de Windows SDK.

pfnCompletionRoutine
De voltooiingsroutine. Zie lpCompletionRoutine in ReadFileEx in de Windows SDK.

Retourwaarde

Retourneert S_OK bij succes of een fout HRESULT bij fout.

Opmerkingen

De eerste drie formulieren roepen ReadFile, de laatste ReadFileEx aan om gegevens uit het bestand te lezen. Gebruik CAtlFile::Seek to move the file pointer.

CAtlFile::Seek

Roep deze methode aan om de bestandswijzer van het bestand te verplaatsen.

HRESULT Seek(
    LONGLONG nOffset,
    DWORD dwFrom = FILE_CURRENT) throw();

Parameterwaarden

nOffset
De verschuiving van het beginpunt dat door dwFrom is opgegeven.

dwFrom
Het beginpunt (FILE_BEGIN, FILE_CURRENT of FILE_END).

Retourwaarde

Retourneert S_OK bij succes of een fout HRESULT bij fout.

Opmerkingen

Roept SetFilePointer aan om de bestandspointer te verplaatsen.

CAtlFile::SetSize

Roep deze methode aan om de grootte van het bestand in te stellen.

HRESULT SetSize(ULONGLONG nNewLen) throw();

Parameterwaarden

nNewLen
De nieuwe lengte van het bestand in bytes.

Retourwaarde

Retourneert S_OK bij succes of een fout HRESULT bij fout.

Opmerkingen

Roept SetFilePointer en SetEndOfFile aan om de grootte van het bestand in te stellen. Bij terugkeer wordt de bestandsaanwijzer aan het einde van het bestand weergegeven.

CAtlFile::UnlockRange

Roep deze methode aan om een regio van het bestand te ontgrendelen.

HRESULT UnlockRange(ULONGLONG nPos, ULONGLONG nCount) throw();

Parameterwaarden


De positie in het bestand waar de ontgrendeling moet beginnen.

nCount
De lengte van het bytebereik dat moet worden ontgrendeld.

Retourwaarde

Retourneert S_OK bij succes of een fout HRESULT bij fout.

Opmerkingen

Roept UnlockFile aan om een regio van het bestand te ontgrendelen.

CAtlFile::Schrijven

Roep deze methode aan om gegevens naar het bestand te schrijven vanaf de positie die wordt aangegeven door de bestandsaanwijzer.

HRESULT Write(
    LPCVOID pBuffer,
    DWORD nBufSize,
    LPOVERLAPPED pOverlapped,
    LPOVERLAPPED_COMPLETION_ROUTINE pfnCompletionRoutine) throw();

HRESULT Write(
    LPCVOID pBuffer,
    DWORD nBufSize,
    DWORD* pnBytesWritten = NULL) throw();

HRESULT Write(
    LPCVOID pBuffer,
    DWORD nBufSize,
    LPOVERLAPPED pOverlapped) throw();

Parameterwaarden

pBuffer
De buffer met de gegevens die naar het bestand moeten worden geschreven.

nBufSize
Het aantal bytes dat moet worden overgedragen vanuit de buffer.

pOverlapped
De overlappende structuur. Zie lpOverlapped in WriteFile in de Windows SDK.

pfnCompletionRoutine
De voltooiingsroutine. Zie lpCompletionRoutine in WriteFileEx in de Windows SDK.

pnBytesWritten
De geschreven bytes.

Retourwaarde

Retourneert S_OK bij succes of een fout HRESULT bij fout.

Opmerkingen

De eerste drie formulieren roepen WriteFile aan, de laatste roept WriteFileEx aan om gegevens naar het bestand te schrijven. Gebruik CAtlFile::Seek to move the file pointer.

Zie ook

Voorbeeld van een selectiekader
Overzicht van klassen
CHandle-klasse