// 从将内存位图句柄(HBITMAP)写入到BMP文件中
// 返回 非零表示成功写入
// 参数 LPCTSTR 文件名
// 参数 HBITMAP 内存位图句柄
BOOL CreateBMPFileFromBitmapObject(LPCTSTR szFileName, HBITMAP hBitmap)
{
BITMAPFILEHEADER hdr; // bitmap file-header
BITMAP bmp;
PBITMAPINFOHEADER pbih = NULL; // bitmap info-header
PBITMAPINFO pbmi = NULL;
LPBYTE lpBits = NULL; // memory pointer
DWORD dwTotal; // total count of bytes
DWORD dwTmp;
HANDLE hFile = NULL;
HDC hdc = NULL;
WORD cClrBits;
BOOL bSuccess = FALSE;
if(hBitmap == NULL || szFileName == NULL)
return FALSE;
// Retrieve the bitmap color format, width, and height.
if (!::GetObject(hBitmap, sizeof(BITMAP), (LPSTR)&bmp))
return FALSE;
// Con