画了一下午的时间总算在mobile上保存了图片。
if (0 == GetObject(hbitmapSave, sizeof(stSrcbmp), &stSrcbmp))
{
bReturn = FALSE;
goto Exit;
}
dwBufferSize = stSrcbmp.bmWidth * stSrcbmp.bmHeight * wBitCount / 8;
dwOffsetSize = (DWORD)sizeof(BITMAPFILEHEADER) + (DWORD)sizeof(BITMAPINFOHEADER);
// Fill bitmap header constructor
bmFileHeader.bfType = 0x4D42;
bmFileHeader.bfSize = dwOffsetSize + dwBufferSize;
bmFileHeader.bfReserved1 = 0;
bmFileHeader.bfReserved2 = 0;
bmFileHeader.bfOffBits = dwOffsetSize;
hFile = CreateFile(m_wszPicPath, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (INVALID_HANDLE_VALUE == hFile)
{
bReturn = FALSE;
goto Exit;
}
if (!WriteFile(hFile, &bmFileHeader, sizeof(BITMAPFILEHEADER), &dwWritten, NULL))
{
bReturn = FALSE;
goto Exit;
}
if (!WriteFile(hFile, &srcdibbmap, sizeof(BITMAPINFO), &dwWritten, NULL))
{
bReturn = FALSE;
goto Exit;
}
if (!WriteFile(hFile, pBmpBuffer, dwBufferSize, &dwWritten, NULL))
{
bReturn = FALSE;
goto Exit;
}
bReturn = TRUE;
Exit:
if (INVALID_HANDLE_VALUE != hFile)
{
CloseHandle(hFile);
hFile = INVALID_HANDLE_VALUE;
}
return bReturn;
}