HWND hWnd;
HANDLE hImage;
HBITMAP MainBitmap;
BITMAP bm;
char *bitmap;
HDC MainDC,ScreenDC,BitmapDC;
LPVOID MainBitmapData=NULL;
BITMAPINFO BitmapInfo;
RECT rect;
hImage = LoadImage(GetModuleHandle(NULL), "os_001_1.bmp", IMAGE_BITMAP, 0,0, LR_LOADFROMFILE );
GetObject(hImage,sizeof(bm),&bm); //Dostajemy informację o pliku BMP
hWnd = HwndLatch(NULL);
bitmap = (char*)bm.bmBits;
BitmapDC = CreateCompatibleDC (NULL);
MainDC = CreateCompatibleDC (NULL);
SelectObject(MainDC, hImage);
BitmapInfo.bmiHeader.biSize = sizeof (BITMAPINFOHEADER);
BitmapInfo.bmiHeader.biPlanes = bm.bmPlanes;
BitmapInfo.bmiHeader.biBitCount = 24;
BitmapInfo.bmiHeader.biCompression = BI_RGB;
BitmapInfo.bmiHeader.biSizeImage = 0;
BitmapInfo.bmiHeader.biClrUsed = 0;
BitmapInfo.bmiHeader.biClrImportant = 0;
BitmapInfo.bmiHeader.biWidth = bm.bmWidth;
BitmapInfo.bmiHeader.biHeight = bm.bmHeight;
MainBitmap = CreateDIBSection (BitmapDC, &BitmapInfo, DIB_RGB_COLORS, &MainBitmapData,NULL,0);
SelectObject (BitmapDC, MainBitmap);
ScreenDC = GetDC (hWnd);
GetClientRect(hWnd,&rect);
StretchBlt(ScreenDC,0,0,WINDOWSIZEX,WINDOWSIZEY,MainDC,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
BitBlt(BitmapDC,0,0,bm.bmWidth,bm.bmHeight,MainDC,bm.bmWidth,bm.bmHeight,SRCCOPY);
To jest przykłąd jak ja to zrobiłem bez znajomości podanej wyżej funkcji