m_hFile = CreateFile(
m_szMapFile,
GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if(NULL== m_hFile)
{
DWORD dwError = GetLastError();
RETAILMSG(1,(_T("CBmpResourceConfig NULL == m_hFile [Error Code=%d] \r\n"),dwError));
goto _Exit_Release;
}
//创建内存映射文件
m_hMapFile = CreateFileMapping(
m_hFile,
NULL,
PAGE_READONLY,
0,
0x100000,
TEXT("Local\\MMFObj") );
if (INVALID_HANDLE_VALUE == m_hMapFile)
{
DWORD dwError = GetLastError();
RETAILMSG(1,(_T("CBmpResourceConfig NULL == m_hMapFile [Error Code=%d] \r\n"),dwError));
goto _Exit_Release;
}
//文件映射到进程共享地址空间
*ppAddr = MapViewOfFile(
m_hMapFile,
FILE_MAP_READ,
0,
0,
NULL);
if (INVALID_HANDLE_VALUE == *ppAddr)
{
DWORD dwError = GetLastError();
RETAILMSG(1,(_T("CBmpResourceConfig NULL == ppAddr [Error Code=%d] \r\n"),dwError));
goto _Exit_Release;
}
return TRUE;
_Exit_Release:
if(m_hMapFile)
{
CloseHandle(m_hMapFile);
m_hMapFile = NULL;
}
if (m_hFile)
{
CloseHandle(m_hFile);
m_hFile = NULL;
}
return FALSE;