BOOL CResponseParser::SaveAsImage( const wchar_t* lpszPath,const char* lpszContentData, uint32 dwContentSize, DWORD dwType) { CxImage image; bool bRet = false; DWORD dwFileType = CResponseParser::CheckImageFileHeader( (BYTE*)lpszContentData, dwContentSize); if( dwFileType == CXIMAGE_FORMAT_BMP ) { bRet = image.Decode( (BYTE*)lpszContentData, dwContentSize, CXIMAGE_FORMAT_BMP); } else if( dwFileType == CXIMAGE_FORMAT_GIF) { bRet = image.Decode( (BYTE*)lpszContentData, dwContentSize, CXIMAGE_FORMAT_GIF); } else if( dwFileType == CXIMAGE_FORMAT_JPG ) { bRet = image.Decode( (BYTE*)lpszContentData, dwContentSize, CXIMAGE_FORMAT_JPG); } else if( dwFileType == CXIMAGE_FORMAT_PNG) { bRet = image.Decode( (BYTE*)lpszContentData, dwContentSize, CXIMAGE_FORMAT_PNG); } if( bRet == true) { if( dwType == CXIMAGE_FORMAT_BMP) { return image.SaveW( lpszPath, CXIMAGE_FORMAT_BMP); } else if( dwType == CXIMAGE_FORMAT_GIF) { return image.SaveW( lpszPath, CXIMAGE_FORMAT_GIF); } else if( dwType == CXIMAGE_FORMAT_JPG) { return image.SaveW( lpszPath, CXIMAGE_FORMAT_JPG); } else if( dwType == CXIMAGE_FORMAT_PNG) { return image.SaveW( lpszPath, CXIMAGE_FORMAT_PNG); } else return image.SaveW( lpszPath, CXIMAGE_FORMAT_BMP); } return FALSE; }