Delen via


Klasse CAtlFileMappingBase

Opmerking

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

Deze klasse vertegenwoordigt een geheugentoewijzingsbestand.

Belangrijk

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

Syntaxis

class CAtlFileMappingBase

Leden

Openbare constructors

Naam Description
CAtlFileMappingBase::CAtlFileMappingBase De constructor.
CAtlFileMappingBase::~CAtlFileMappingBase De destructor.

Openbare methoden

Naam Description
CAtlFileMappingBase::CopyFrom Roep deze methode aan om te kopiëren vanuit een object voor bestandstoewijzing.
CAtlFileMappingBase::GetData Roep deze methode aan om de gegevens op te halen uit een object voor bestandstoewijzing.
CAtlFileMappingBase::GetHandle Roep deze methode aan om de bestandsingang te retourneren.
CAtlFileMappingBase::GetMappingSize Roep deze methode aan om de toewijzingsgrootte op te halen uit een bestandstoewijzingsobject.
CAtlFileMappingBase::MapFile Roep deze methode aan om een object voor bestandstoewijzing te maken.
CAtlFileMappingBase::MapSharedMem Roep deze methode aan om een object voor bestandstoewijzing te maken dat volledige toegang tot alle processen toestaat.
CAtlFileMappingBase::OpenMapping Roep deze methode aan om een ingang te retourneren aan het object voor bestandstoewijzing.
CAtlFileMappingBase::Unmap Roep deze methode aan om de toewijzing van een object voor bestandstoewijzing ongedaan te maken.

Openbare operators

Naam Description
CAtlFileMappingBase::operator = Hiermee stelt u het huidige object voor bestandstoewijzing in op een ander object voor bestandstoewijzing.

Opmerkingen

Bestandstoewijzing is de koppeling van de inhoud van een bestand met een deel van de virtuele adresruimte van een proces. Deze klasse biedt methoden voor het maken van bestandstoewijzingsobjecten waarmee programma's eenvoudig gegevens kunnen openen en delen.

Zie Bestandstoewijzing in de Windows SDK voor meer informatie.

Requirements

Header: atlfile.h

CAtlFileMappingBase::CAtlFileMappingBase

De constructor.

CAtlFileMappingBase(CAtlFileMappingBase& orig);
CAtlFileMappingBase() throw();

Parameterwaarden

Orig
Het oorspronkelijke object voor bestandstoewijzing dat moet worden gekopieerd om het nieuwe object te maken.

Opmerkingen

Hiermee maakt u een nieuw object voor bestandstoewijzing, optioneel met behulp van een bestaand object. Het is nog steeds nodig om CAtlFileMappingBase::MapFile aan te roepen om het object voor bestandstoewijzing voor een bepaald bestand te openen of te maken.

Example

int OpenMyFileMap()
{
   // Create the file-mapping object.
   CAtlFileMappingBase myFileMap;

   // Create a file.
   CAtlFile myFile;
   myFile.Create(_T("myMapTestFile"),
      GENERIC_READ|GENERIC_WRITE|STANDARD_RIGHTS_ALL,
      FILE_SHARE_READ|FILE_SHARE_WRITE,
      OPEN_ALWAYS);

   // The file handle.
   HANDLE hFile = (HANDLE)myFile;

   // Test the file has opened successfully.
   ATLASSERT(hFile != INVALID_HANDLE_VALUE);

   // Open the file for file-mapping.
   // Must give a size as the file is zero by default.
   if (myFileMap.MapFile(hFile,
      1024,
      0,
      PAGE_READWRITE,
      FILE_MAP_READ) != S_OK)
   {
      CloseHandle(hFile);
      return 0;
   }

   // Confirm the size of the mapping file.
   ATLASSERT(myFileMap.GetMappingSize() == 1024);

   // Now the file-mapping object is open, a second
   // process could access the filemap object to exchange
   // data.

   return 0;
}

CAtlFileMappingBase::~CAtlFileMappingBase

De destructor.

~CAtlFileMappingBase() throw();

Opmerkingen

Hiermee worden alle resources vrijgemaakt die door de klasse zijn toegewezen en worden de CAtlFileMappingBase::Unmap-methode aangeroepen.

CAtlFileMappingBase::CopyFrom

Roep deze methode aan om te kopiëren vanuit een object voor bestandstoewijzing.

HRESULT CopyFrom(CAtlFileMappingBase& orig) throw();

Parameterwaarden

Orig
Het oorspronkelijke object voor bestandstoewijzing waaruit moet worden gekopieerd.

Retourwaarde

Retourneert S_OK bij succes of een fout HRESULT bij fout.

CAtlFileMappingBase::GetData

Roep deze methode aan om de gegevens op te halen uit een object voor bestandstoewijzing.

void* GetData() const throw();

Retourwaarde

Retourneert een aanwijzer naar de gegevens.

CAtlFileMappingBase::GetHandle

Roep deze methode aan om een ingang te retourneren aan het object voor bestandstoewijzing.

HANDLE GetHandle() throw ();

Retourwaarde

Retourneert een ingang naar het object voor bestandstoewijzing.

CAtlFileMappingBase::GetMappingSize

Roep deze methode aan om de toewijzingsgrootte op te halen uit een bestandstoewijzingsobject.

SIZE_T GetMappingSize() throw();

Retourwaarde

Retourneert de toewijzingsgrootte.

Example

Zie het voorbeeld voor CAtlFileMappingBase::CAtlFileMappingBase.

CAtlFileMappingBase::MapFile

Roep deze methode aan om een bestandtoewijzingsobject voor het opgegeven bestand te openen of te maken.

HRESULT MapFile(
    HANDLE hFile,
    SIZE_T nMappingSize = 0,
    ULONGLONG nOffset = 0,
    DWORD dwMappingProtection = PAGE_READONLY,
    DWORD dwViewDesiredAccess = FILE_MAP_READ) throw();

Parameterwaarden

hFile
Greep naar het bestand van waaruit een toewijzingsobject moet worden gemaakt. hFile moet geldig zijn en kan niet worden ingesteld op INVALID_HANDLE_VALUE.

nMappingSize
De toewijzingsgrootte. Als 0, is de maximale grootte van het object voor bestandstoewijzing gelijk aan de huidige grootte van het bestand dat is geïdentificeerd door hFile.

nOffset
De bestandsverschil waar de toewijzing moet beginnen. De offsetwaarde moet een veelvoud van de granulariteit van de geheugentoewijzing van het systeem zijn.

dwMappingProtection
De gewenste beveiliging voor de bestandsweergave wanneer het bestand is toegewezen. Zie flProtect in CreateFileMapping in de Windows SDK.

dwViewDesiredAccess
Hiermee geeft u het type toegang tot de bestandsweergave en daarom de beveiliging van de pagina's die door het bestand zijn toegewezen. Zie dwDesiredAccess in MapViewOfFileEx in de Windows SDK.

Retourwaarde

Retourneert S_OK bij succes of een fout HRESULT bij fout.

Opmerkingen

Nadat een bestandstoewijzingsobject is gemaakt, mag de grootte van het bestand niet groter zijn dan de grootte van het object voor bestandstoewijzing; Als dit het geval is, is niet alle inhoud van het bestand beschikbaar voor delen. Zie CreateFileMapping en MapViewOfFileEx in de Windows SDK voor meer informatie.

Example

Zie het voorbeeld voor CAtlFileMappingBase::CAtlFileMappingBase.

CAtlFileMappingBase::MapSharedMem

Roep deze methode aan om een object voor bestandstoewijzing te maken dat volledige toegang tot alle processen toestaat.

HRESULT MapSharedMem(
    SIZE_T nMappingSize,
    LPCTSTR szName,
    BOOL* pbAlreadyExisted = NULL,
    LPSECURITY_ATTRIBUTES lpsa = NULL,
    DWORD dwMappingProtection = PAGE_READWRITE,
    DWORD dwViewDesiredAccess = FILE_MAP_ALL_ACCESS) throw();

Parameterwaarden

nMappingSize
De toewijzingsgrootte. Als 0, is de maximale grootte van het object voor bestandstoewijzing gelijk aan de huidige grootte van het object voor bestandstoewijzing dat wordt geïdentificeerd door szName.

szName
De naam van het toewijzingsobject.

pbAlreadyExisted
Verwijst naar een BOOL-waarde die is ingesteld op TRUE als het toewijzingsobject al bestaat.

lpsa
De aanwijzer naar een SECURITY_ATTRIBUTES structuur die bepaalt of de geretourneerde ingang kan worden overgenomen door onderliggende processen. Zie lpAttributes in CreateFileMapping in de Windows SDK.

dwMappingProtection
De gewenste beveiliging voor de bestandsweergave wanneer het bestand is toegewezen. Zie flProtect in CreateFileMapping de Windows SDK.

dwViewDesiredAccess
Hiermee geeft u het type toegang tot de bestandsweergave en daarom de beveiliging van de pagina's die door het bestand zijn toegewezen. Zie dwDesiredAccess in MapViewOfFileEx in de Windows SDK.

Retourwaarde

Retourneert S_OK bij succes of een fout HRESULT bij fout.

Opmerkingen

MapShareMem hiermee kan een bestaand object voor bestandstoewijzing, gemaakt door CreateFileMapping, worden gedeeld tussen processen.

CAtlFileMappingBase::OpenMapping

Roep deze methode aan om een benoemd object voor bestandstoewijzing voor het opgegeven bestand te openen.

HRESULT OpenMapping(
    LPCTSTR szName,
    SIZE_T nMappingSize,
    ULONGLONG nOffset = 0,
    DWORD dwViewDesiredAccess = FILE_MAP_ALL_ACCESS) throw();

Parameterwaarden

szName
De naam van het toewijzingsobject. Als er een open ingang is voor een object voor bestandstoewijzing op deze naam en de beveiligingsdescriptor voor het toewijzingsobject niet conflicteert met de parameter dwViewDesiredAccess , slaagt de open bewerking.

nMappingSize
De toewijzingsgrootte. Als 0, is de maximale grootte van het object voor bestandstoewijzing gelijk aan de huidige grootte van het object voor bestandstoewijzing dat wordt geïdentificeerd door szName.

nOffset
De bestandsverschil waar de toewijzing moet beginnen. De offsetwaarde moet een veelvoud van de granulariteit van de geheugentoewijzing van het systeem zijn.

dwViewDesiredAccess
Hiermee geeft u het type toegang tot de bestandsweergave en daarom de beveiliging van de pagina's die door het bestand zijn toegewezen. Zie dwDesiredAccess in MapViewOfFileEx in de Windows SDK.

Retourwaarde

Retourneert S_OK bij succes of een fout HRESULT bij fout.

Opmerkingen

In builds voor foutopsporing treedt er een assertiefout op als de invoerparameters ongeldig zijn.

CAtlFileMappingBase::operator =

Hiermee stelt u het huidige object voor bestandstoewijzing in op een ander object voor bestandstoewijzing.

CAtlFileMappingBase& operator=(CAtlFileMappingBase& orig);

Parameterwaarden

Orig
Het huidige object voor bestandstoewijzing.

Retourwaarde

Retourneert een verwijzing naar het huidige object.

CAtlFileMappingBase::Unmap

Roep deze methode aan om de toewijzing van een object voor bestandstoewijzing ongedaan te maken.

HRESULT Unmap() throw();

Retourwaarde

Retourneert S_OK bij succes of een fout HRESULT bij fout.

Opmerkingen

Zie UnmapViewOfFile in de Windows SDK voor meer informatie.

Zie ook

CAtlFileMapping-klasse
Overzicht van klassen