Listing 10
void SaveMapBitmap(CHAR* szData)
{
HBITMAP hBmp = NULL;
CHAR* pszStart = strstr(szData, "<Bits>");
if (pszStart)
{
pszStart+= strlen("<Bits>" );
CHAR* pszEnd = strstr(szData, "</Bits>");
int nLen = pszEnd-pszStart;
CHAR* pBits = new CHAR[nLen];
strncpy(pBits,pszStart, nLen );
BYTE *pConvertedBuffer = NULL;
int nSize = 0;
Base64Decode(pBits, nLen, NULL, &nSize);
pConvertedBuffer = new BYTE[nSize+1];
Base64Decode(pBits, nLen, pConvertedBuffer, &nSize);
HANDLE hFile = CreateFile(_T("C:\\MapImage.bmp"), GENERIC_WRITE,
0, NULL, CREATE_ALWAYS, 0, 0);
if (hFile != INVALID_HANDLE_VALUE)
{
DWORD dwBytes = 0;
WriteFile(hFile, pConvertedBuffer, nSize, &dwBytes,NULL);
CloseHandle(hFile);
}
delete [] pConvertedBuffer;
delete [] pBits;
}
}