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.