HDC hdc = GetDC(0);
HDC mdc = CreateCompatibleDC(hdc);
HBITMAP hbmpscreen;
BITMAPINFO bmi;
HGDIOBJ obmp;
bmi.bmiHeader.biSize = sizeof(BITMAPINFO);
bmi.bmiHeader.biWidth = GetSystemMetrics(SM_CXSCREEN);
bmi.bmiHeader.biHeight = GetSystemMetrics(SM_CYSCREEN);
bmi.bmiHeader.biPlanes = 1;
bmi.bmiHeader.biBitCount = 24;
bmi.bmiHeader.biCompression = 0;
bmi.bmiHeader.biSizeImage = (((bmi.bmiHeader.biWidth*bmi.bmiHeader.biBitCount/8)+3)&~3)*bmi.bmiHeader.biWidth;
bmi.bmiHeader.biXPelsPerMeter = 300;
bmi.bmiHeader.biYPelsPerMeter = 300;
bmi.bmiHeader.biClrUsed = 0;
bmi.bmiHeader.biClrImportant = 0;
hbmpscreen = CreateDIBitmap(mdc,&hbmpscreen,0,0,&bmi.bmiHeader,DIB_RGB_COLORS);
obmp = SelectObject(mdc,hbmpscreen);
BitBlt(mdc,0,0,bmi.bmiHeader.biWidth,bmi.bmiHeader.biHeight,hdc,0,0,SRCCOPY);
SelectObject(mdc,obmp);
DeleteDC(mdc);
ReleaseDC(hdc);