BOOL SaveResAs(LPCWSTR lpName, LPCWSTR lpType, LPCWSTR lpSaveName)
{
if (NULL == lpName || NULL == lpType || NULL == lpSaveName)
{
return FALSE;
}
HRSRC hRsrc = ::FindResource(NULL, lpName, lpType);
if (NULL == hRsrc)
{
return FALSE;
}
DWORD dwSize = ::SizeofResource(NULL, hRsrc);
if (0 == dwSize)
{
return FALSE;
}
HGLOBAL hGlobal = ::LoadResource(NULL, hRsrc);
if (NULL == hGlobal)
{
return FALSE;
}
LPVOID pBuffer = ::LockResource(hGlobal);
if (NULL == pBuffer)
{
return FALSE;
}
BOOL bRt = FALSE;
FILE* fp = _tfopen(lpSaveName, TEXT("wb"));
if (fp != NULL)
{
if (dwSize == fwrite(pBuffer, sizeof(char), dwSize, fp))
{
bRt = TRUE;
}
fclose(fp);
}
::FreeResource(hGlobal);
return bRt;
}