www.pudn.com > MemFile.rar > MEMMAP.H
/*
Module : MEMMAP.H
Purpose: Interface for an MFC class to wrap memory mapped files
Created: PJN / 30-07-1997
Copyright (c) 1997 - 1998 by PJ Naughter.
All rights reserved.
*/
////////////////////////////////// Macros ///////////////////////////
#ifndef __MEMMAP_H__
#define __MEMMAP_H__
/////////////////////////// Classes /////////////////////////////////
class CMemMapFile : public CObject
{
public:
//Constructors / Destructors
CMemMapFile();
~CMemMapFile();
//Methods
BOOL MapFile(const CString& sFilename, BOOL bReadOnly = FALSE, DWORD dwShareMode = 0,
BOOL bAppendNull = FALSE, BOOL bNamed = FALSE);
BOOL MapMemory(const CString& sName, DWORD dwBytes, BOOL bReadOnly = FALSE);
BOOL MapExistingMemory(const CString& sName, DWORD dwBytes, BOOL bReadOnly = FALSE);
LPVOID Open(DWORD dwTimeout = INFINITE);
BOOL Close();
void UnMap();
BOOL IsOpen() { return m_bOpen; };
DWORD GetLength() { return m_dwLength; };
BOOL Flush();
CString GetMappingName() const;
//Diagnostics / Debug
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
DECLARE_DYNAMIC(CMemMapFile)
BOOL MapHandle(HANDLE hHandle);
CString CreateMappingName(const CString& sName, BOOL bNamed);
CString CreateMutexName() const;
HANDLE m_hFile;
HANDLE m_hMapping;
BOOL m_bReadOnly;
BOOL m_bAppendNull;
LPVOID m_lpData;
CString m_sMappingName;
BOOL m_bOpen;
HANDLE m_hMutex;
DWORD m_dwLength;
};
#endif //__MEMMAP_H__