BITMAPFILEHEADER bmpfh; 
BITMAPINFOHEADER bmpih; 
BITMAPINFO bi; 
int w,h;
w=352;
h=240; bmpfh.bfType = 0x4d42; 
bmpfh.bfSize = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER) + sizeof(BITMAPINFO) + w*h*3; 
bmpfh.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER) + sizeof(BITMAPINFO); 
bmpfh.bfReserved1 = 0x0; 
bmpfh.bfReserved2 = 0x0;  bmpih.biBitCount = 24; 
bmpih.biClrImportant = 0; 
bmpih.biClrUsed = 0; 
bmpih.biCompression = BI_RGB; 
bmpih.biHeight =h; 
bmpih.biPlanes = 1; 
bmpih.biSize = sizeof(BITMAPINFOHEADER); 
bmpih.biSizeImage = 0; 
bmpih.biWidth = w; 
bmpih.biXPelsPerMeter = 1000000; 
bmpih.biYPelsPerMeter = 1000000;  bi.bmiColors[0].rgbBlue = 0; 
bi.bmiColors[0].rgbGreen = 1; 
bi.bmiColors[0].rgbRed = 0; 
bi.bmiColors[0].rgbReserved = 0;  bi.bmiHeader.biBitCount = 24; 
bi.bmiHeader.biClrImportant = 0; 
bi.bmiHeader.biClrUsed = 0; 
bi.bmiHeader.biCompression = BI_RGB; 
bi.bmiHeader.biHeight =0-h; 
bi.bmiHeader.biPlanes = 1; 
bi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER); 
bi.bmiHeader.biSizeImage = 0; 
bi.bmiHeader.biWidth = w; 
bi.bmiHeader.biXPelsPerMeter = 1000000; 
bi.bmiHeader.biYPelsPerMeter = 1000000; 
HGLOBAL hDib;
hDib = ::GlobalAlloc(GHND,bmpfh.bfSize);
PBYTE pDib = (PBYTE)::GlobalLock(hDib);
memcpy(&pDib[0],&bmpih,bmpih.biSize);
memcpy(&pDib[bmpih.biSize],m_pBmpBuffer,w*h*3);
::GlobalUnlock(hDib);
//Copy到剪贴板
OpenClipboard();
EmptyClipboard();
SetClipboardData(CF_DIB,hDib);
CloseClipboard();