Partager via


CAtlFileMappingBase, classe

Cette classe représente un fichier mappé en mémoire.

Important

Cette classe et ses membres ne peuvent pas être utilisés dans les applications qui s’exécutent dans Windows Runtime.

Syntaxe

class CAtlFileMappingBase

Membres

Constructeurs publics

Nom Description
CAtlFileMappingBase ::CAtlFileMappingBase Constructeur .
CAtlFileMappingBase ::~CAtlFileMappingBase Destructeur.

Méthodes publiques

Nom Description
CAtlFileMappingBase ::CopyFrom Appelez cette méthode pour copier à partir d’un objet de mappage de fichiers.
CAtlFileMappingBase ::GetData Appelez cette méthode pour obtenir les données à partir d’un objet de mappage de fichiers.
CAtlFileMappingBase ::GetHandle Appelez cette méthode pour retourner le handle de fichier.
CAtlFileMappingBase ::GetMappingSize Appelez cette méthode pour obtenir la taille de mappage à partir d’un objet de mappage de fichiers.
CAtlFileMappingBase ::MapFile Appelez cette méthode pour créer un objet de mappage de fichiers.
CAtlFileMappingBase ::MapSharedMem Appelez cette méthode pour créer un objet de mappage de fichiers qui permet un accès total à tous les processus.
CAtlFileMappingBase ::OpenMapping Appelez cette méthode pour retourner un handle à l’objet de mappage de fichiers.
CAtlFileMappingBase ::Unmap Appelez cette méthode pour annuler le mappage d’un objet de mappage de fichiers.

Opérateurs publics

Nom Description
CAtlFileMappingBase ::operator = Définit l’objet de mappage de fichiers actuel sur un autre objet de mappage de fichiers.

Notes

Le mappage de fichiers est l’association du contenu d’un fichier à une partie de l’espace d’adressage virtuel d’un processus. Cette classe fournit des méthodes pour créer des objets de mappage de fichiers qui permettent aux programmes d’accéder et de partager facilement des données.

Pour plus d’informations, consultez Mappage de fichiers dans le Kit de développement logiciel (SDK) Windows.

Spécifications

En-tête : atlfile.h

CAtlFileMappingBase ::CAtlFileMappingBase

Constructeur .

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

Paramètres

Bail
Objet de mappage de fichiers d’origine à copier pour créer l’objet.

Notes

Crée un objet de mappage de fichiers, éventuellement à l’aide d’un objet existant. Il est toujours nécessaire d’appeler CAtlFileMappingBase ::MapFile pour ouvrir ou créer l’objet de mappage de fichiers pour un fichier particulier.

Exemple

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

Destructeur.

~CAtlFileMappingBase() throw();

Notes

Libère toutes les ressources allouées par la classe et appelle la méthode CAtlFileMappingBase ::Unmap .

CAtlFileMappingBase ::CopyFrom

Appelez cette méthode pour copier à partir d’un objet de mappage de fichiers.

HRESULT CopyFrom(CAtlFileMappingBase& orig) throw();

Paramètres

Bail
Objet de mappage de fichiers d’origine à partir duquel copier.

Valeur de retour

Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.

CAtlFileMappingBase ::GetData

Appelez cette méthode pour obtenir les données à partir d’un objet de mappage de fichiers.

void* GetData() const throw();

Valeur de retour

Retourne un pointeur vers les données.

CAtlFileMappingBase ::GetHandle

Appelez cette méthode pour retourner un handle à l’objet de mappage de fichiers.

HANDLE GetHandle() throw ();

Valeur de retour

Retourne un handle à l’objet de mappage de fichiers.

CAtlFileMappingBase ::GetMappingSize

Appelez cette méthode pour obtenir la taille de mappage à partir d’un objet de mappage de fichiers.

SIZE_T GetMappingSize() throw();

Valeur de retour

Retourne la taille de mappage.

Exemple

Consultez l’exemple de CAtlFileMappingBase ::CAtlFileMappingBase.

CAtlFileMappingBase ::MapFile

Appelez cette méthode pour ouvrir ou créer un objet de mappage de fichiers pour le fichier spécifié.

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

Paramètres

hFile
Gérez le fichier à partir duquel créer un objet de mappage. hFile doit être valide et ne peut pas être défini sur INVALID_HANDLE_VALUE.

nMappingSize
Taille de mappage. Si 0, la taille maximale de l’objet de mappage de fichiers est égale à la taille actuelle du fichier identifié par hFile.

nOffset
Décalage de fichier où le mappage doit commencer. La valeur de décalage doit être un multiple de la granularité d’allocation de mémoire du système.

dwMappingProtection
Protection souhaitée pour la vue de fichier lorsque le fichier est mappé. Consultez flProtect dans CreateFileMapping dans le Kit de développement logiciel (SDK) Windows.

dwViewDesiredAccess
Spécifie le type d’accès à la vue de fichier et, par conséquent, la protection des pages mappées par le fichier. Consultez dwDesiredAccess dans MapViewOfFileEx dans le Kit de développement logiciel (SDK) Windows.

Valeur de retour

Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.

Notes

Une fois qu’un objet de mappage de fichiers a été créé, la taille du fichier ne doit pas dépasser la taille de l’objet de mappage de fichiers ; si c’est le cas, le contenu du fichier n’est pas disponible pour le partage. Pour plus d’informations, consultez CreateFileMapping et MapViewOfFileEx dans le Kit de développement logiciel (SDK) Windows.

Exemple

Consultez l’exemple de CAtlFileMappingBase ::CAtlFileMappingBase.

CAtlFileMappingBase ::MapSharedMem

Appelez cette méthode pour créer un objet de mappage de fichiers qui permet un accès total à tous les processus.

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

Paramètres

nMappingSize
Taille de mappage. Si 0, la taille maximale de l’objet de mappage de fichiers est égale à la taille actuelle de l’objet de mappage de fichiers identifié par szName.

szName
Nom de l’objet de mappage.

pbAlreadyExisted
Pointe vers une valeur BOOL définie sur TRUE si l’objet de mappage existait déjà.

lpsa
Pointeur vers une SECURITY_ATTRIBUTES structure qui détermine si le handle retourné peut être hérité par les processus enfants. Consultez lpAttributes dans CreateFileMapping dans le Kit de développement logiciel (SDK) Windows.

dwMappingProtection
Protection souhaitée pour la vue de fichier, lorsque le fichier est mappé. Consultez flProtect dans CreateFileMapping le Kit de développement logiciel (SDK) Windows.

dwViewDesiredAccess
Spécifie le type d’accès à la vue de fichier et, par conséquent, la protection des pages mappées par le fichier. Consultez dwDesiredAccess dans MapViewOfFileEx dans le Kit de développement logiciel (SDK) Windows.

Valeur de retour

Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.

Notes

MapShareMem permet à un objet de mappage de fichiers existant, créé par CreateFileMapping, d’être partagé entre les processus.

CAtlFileMappingBase ::OpenMapping

Appelez cette méthode pour ouvrir un objet de mappage de fichiers nommé pour le fichier spécifié.

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

Paramètres

szName
Nom de l’objet de mappage. S’il existe un handle ouvert pour un objet de mappage de fichiers par ce nom et que le descripteur de sécurité sur l’objet de mappage n’est pas en conflit avec le paramètre dwViewDesiredAccess , l’opération d’ouverture réussit.

nMappingSize
Taille de mappage. Si 0, la taille maximale de l’objet de mappage de fichiers est égale à la taille actuelle de l’objet de mappage de fichiers identifié par szName.

nOffset
Décalage de fichier où le mappage doit commencer. La valeur de décalage doit être un multiple de la granularité d’allocation de mémoire du système.

dwViewDesiredAccess
Spécifie le type d’accès à la vue de fichier et, par conséquent, la protection des pages mappées par le fichier. Consultez dwDesiredAccess dans MapViewOfFileEx dans le Kit de développement logiciel (SDK) Windows.

Valeur de retour

Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.

Notes

Dans les builds de débogage, une erreur d’assertion se produit si les paramètres d’entrée ne sont pas valides.

CAtlFileMappingBase ::operator =

Définit l’objet de mappage de fichiers actuel sur un autre objet de mappage de fichiers.

CAtlFileMappingBase& operator=(CAtlFileMappingBase& orig);

Paramètres

Bail
Objet de mappage de fichiers actuel.

Valeur de retour

Retourne une référence à l'objet actif.

CAtlFileMappingBase ::Unmap

Appelez cette méthode pour annuler le mappage d’un objet de mappage de fichiers.

HRESULT Unmap() throw();

Valeur de retour

Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.

Notes

Pour plus d’informations, consultez UnmapViewOfFile dans le Kit de développement logiciel (SDK) Windows.

Voir aussi

CAtlFileMapping, classe
Vue d’ensemble de la classe