#include ".\ShareMemServer.h"
CShareMemServer::CShareMemServer(int iShareMemSize, wchar_t* pShareMemName)
: m_iShareMemSize(iShareMemSize)
, m_strShareMemName(pShareMemName)
, m_lpMapAddress(NULL)
, m_hMapFile(NULL)
{
}
CShareMemServer::~CShareMemServer(void)
{
if ( m_lpMapAddress )
{
UnmapViewOfFile( m_lpMapAddress );
m_lpMapAddress = NULL;
}
if ( m_hMapFile )
{
CloseHandle( m_hMapFile );
m_hMapFile = NULL;
}
}
void* CShareMemServer::GetAddr()
{
if ( NULL == m_lpMapAddress )
{
if ( NULL == m_hMapFile )
{
m_hMapFile = CreateFileMappingW( INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, m_iShareMemSize, m_strShareMemName.c_str() );
}
if (m_hMapFile)
{
m_lpMapAddress = MapViewOfFile( m_hMapFile, FILE_MAP_ALL_ACCESS, 0, 0, 0 );
}
}
return m_lpMapAddress;
}