Sdílet prostřednictvím


CAtlFileMappingBase – třída

Tato třída představuje soubor mapovaný v paměti.

Důležité

Tuto třídu a její členy nelze použít v aplikacích, které se spouští v prostředí Windows Runtime.

Syntaxe

class CAtlFileMappingBase

Členové

Veřejné konstruktory

Název Popis
CAtlFileMappingBase::CAtlFileMappingBase Konstruktor
CAtlFileMappingBase::~CAtlFileMappingBase Destruktor.

Veřejné metody

Název Popis
CAtlFileMappingBase::CopyFrom Voláním této metody zkopírujte z objektu mapování souborů.
CAtlFileMappingBase::GetData Voláním této metody získáte data z objektu mapování souboru.
CAtlFileMappingBase::GetHandle Voláním této metody vrátíte popisovač souboru.
CAtlFileMappingBase::GetMappingSize Voláním této metody získáte velikost mapování z objektu mapování souboru.
CAtlFileMappingBase::MapFile Voláním této metody vytvořte objekt mapování souborů.
CAtlFileMappingBase::MapSharedMem Voláním této metody vytvoříte objekt mapování souborů, který umožňuje úplný přístup ke všem procesům.
CAtlFileMappingBase::OpenMapping Voláním této metody vrátíte popisovač objektu mapování souboru.
CAtlFileMappingBase::Unmap Voláním této metody zrušíte mapování objektu mapování souborů.

Veřejné operátory

Název Popis
CAtlFileMappingBase::operator = Nastaví aktuální objekt mapování souborů na jiný objekt mapování souborů.

Poznámky

Mapování souborů je přidružení obsahu souboru k části virtuálního adresního prostoru procesu. Tato třída poskytuje metody pro vytváření objektů mapování souborů, které umožňují programům snadný přístup k datům a jejich sdílení.

Další informace naleznete v tématu Mapování souborů v sadě Windows SDK.

Požadavky

Hlavička: atlfile.h

CAtlFileMappingBase::CAtlFileMappingBase

Konstruktor

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

Parametry

Orig.
Původní objekt mapování souborů, který chcete zkopírovat a vytvořit nový objekt.

Poznámky

Vytvoří nový objekt mapování souborů, volitelně pomocí existujícího objektu. Stále je nutné volat CAtlFileMappingBase::MapFile k otevření nebo vytvoření objektu mapování souboru pro konkrétní soubor.

Příklad

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

Destruktor.

~CAtlFileMappingBase() throw();

Poznámky

Uvolní všechny prostředky přidělené třídou a volá CAtlFileMappingBase::Unmap metoda.

CAtlFileMappingBase::CopyFrom

Voláním této metody zkopírujte z objektu mapování souborů.

HRESULT CopyFrom(CAtlFileMappingBase& orig) throw();

Parametry

Orig.
Původní objekt mapování souboru, ze který se má kopírovat.

Návratová hodnota

Vrátí S_OK při úspěchu nebo chybu HRESULT při selhání.

CAtlFileMappingBase::GetData

Voláním této metody získáte data z objektu mapování souboru.

void* GetData() const throw();

Návratová hodnota

Vrátí ukazatel na data.

CAtlFileMappingBase::GetHandle

Voláním této metody vrátíte popisovač objektu mapování souboru.

HANDLE GetHandle() throw ();

Návratová hodnota

Vrátí popisovač objektu mapování souborů.

CAtlFileMappingBase::GetMappingSize

Voláním této metody získáte velikost mapování z objektu mapování souboru.

SIZE_T GetMappingSize() throw();

Návratová hodnota

Vrátí velikost mapování.

Příklad

Podívejte se na příklad pro CAtlFileMappingBase::CAtlFileMappingBase.

CAtlFileMappingBase::MapFile

Voláním této metody otevřete nebo vytvořte objekt mapování souborů pro zadaný soubor.

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

Parametry

hFile
Popisovač souboru, ze kterého chcete vytvořit objekt mapování. hFile musí být platný a nelze ho nastavit na INVALID_HANDLE_VALUE.

nMappingSize
Velikost mapování. Pokud 0, maximální velikost objektu mapování souboru se rovná aktuální velikosti souboru identifikovaného hFile .

nOffset
Posun souboru, kde má začít mapování. Hodnota posunu musí být násobkem členitosti přidělení paměti systému.

dwMappingProtection
Ochrana požadovaná pro zobrazení souborů při mapování souboru. Viz flProtect v CreateFileMapping v sadě Windows SDK.

dwViewDesiredAccess
Určuje typ přístupu k zobrazení souborů, a proto ochranu stránek mapovaných souborem. Viz dwDesiredAccess v MapViewOfFileEx v sadě Windows SDK.

Návratová hodnota

Vrátí S_OK při úspěchu nebo chybu HRESULT při selhání.

Poznámky

Po vytvoření objektu mapování souboru nesmí velikost souboru překročit velikost objektu mapování souboru; pokud ano, nebude k dispozici pro sdílení veškerý obsah souboru. Další podrobnosti naleznete v tématu CreateFileMapping a MapViewOfFileEx v sadě Windows SDK.

Příklad

Podívejte se na příklad pro CAtlFileMappingBase::CAtlFileMappingBase.

CAtlFileMappingBase::MapSharedMem

Voláním této metody vytvoříte objekt mapování souborů, který umožňuje úplný přístup ke všem procesům.

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

Parametry

nMappingSize
Velikost mapování. Pokud 0, maximální velikost objektu mapování souboru se rovná aktuální velikosti objektu mapování souboru identifikované szName.

szName
Název objektu mapování.

pbAlready Exist
Odkazuje na hodnotu BOOL, která je nastavena na HODNOTU TRUE, pokud objekt mapování již existoval.

Lpsa
Ukazatel na SECURITY_ATTRIBUTES strukturu, která určuje, zda vrácený popisovač lze dědit podřízenými procesy. Viz lpAttributes v CreateFileMapping v sadě Windows SDK.

dwMappingProtection
Ochrana požadovaná pro zobrazení souborů při mapování souboru. Viz flProtect v CreateFileMapping sadě Windows SDK.

dwViewDesiredAccess
Určuje typ přístupu k zobrazení souborů, a proto ochranu stránek mapovaných souborem. Viz dwDesiredAccess v MapViewOfFileEx v sadě Windows SDK.

Návratová hodnota

Vrátí S_OK při úspěchu nebo chybu HRESULT při selhání.

Poznámky

MapShareMem umožňuje sdílení existujícího objektu mapování souborů vytvořeného aplikací CreateFileMapping mezi procesy.

CAtlFileMappingBase::OpenMapping

Voláním této metody otevřete pojmenovaný objekt mapování souborů pro zadaný soubor.

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

Parametry

szName
Název objektu mapování. Pokud je otevřený popisovač objektu mapování souboru podle tohoto názvu a popisovač zabezpečení objektu mapování není v konfliktu s parametrem dwViewDesiredAccess , operace otevření proběhne úspěšně.

nMappingSize
Velikost mapování. Pokud 0, maximální velikost objektu mapování souboru se rovná aktuální velikosti objektu mapování souboru identifikované szName.

nOffset
Posun souboru, kde má začít mapování. Hodnota posunu musí být násobkem členitosti přidělení paměti systému.

dwViewDesiredAccess
Určuje typ přístupu k zobrazení souborů, a proto ochranu stránek mapovaných souborem. Viz dwDesiredAccess v MapViewOfFileEx v sadě Windows SDK.

Návratová hodnota

Vrátí S_OK při úspěchu nebo chybu HRESULT při selhání.

Poznámky

V sestaveních ladění dojde k chybě kontrolního výrazu, pokud jsou vstupní parametry neplatné.

CAtlFileMappingBase::operator =

Nastaví aktuální objekt mapování souborů na jiný objekt mapování souborů.

CAtlFileMappingBase& operator=(CAtlFileMappingBase& orig);

Parametry

Orig.
Aktuální objekt mapování souborů.

Návratová hodnota

Vrátí odkaz na aktuální objekt.

CAtlFileMappingBase::Unmap

Voláním této metody zrušíte mapování objektu mapování souborů.

HRESULT Unmap() throw();

Návratová hodnota

Vrátí S_OK při úspěchu nebo chybu HRESULT při selhání.

Poznámky

Další podrobnosti najdete v tématu UnmapViewOfFile v sadě Windows SDK.

Viz také

CAtlFileMapping – třída
Přehled třídy