rendered paste bodyHBITMAP CreateBitmapFromPixel(HDC hDC, UINT uWidth, UINT uHeight, UINT uBitsPerPixel, LPVOID pBits) {
HBITMAP hBitmap = 0;
if (!uWidth || !uHeight || !uBitsPerPixel) return hBitmap;
LONG lBmpSize = uWidth * uHeight * (uBitsPerPixel/8);
BITMAPINFO bmpInfo = { 0 };
bmpInfo.bmiHeader.biBitCount = uBitsPerPixel;
bmpInfo.bmiHeader.biHeight = uHeight;
bmpInfo.bmiHeader.biWidth = uWidth;
bmpInfo.bmiHeader.biPlanes = 1;
bmpInfo.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
// Pointer to access the pixels of bitmap
UINT* pPixels = 0;
hBitmap = CreateDIBSection(hDC, (BITMAPINFO *)&
bmpInfo, DIB_RGB_COLORS, (void **)&
pPixels, NULL, 0);
if (!hBitmap) {
return hBitmap; // return if invalid bitmaps
}
//SetBitmapBits(hBitmap, lBmpSize, pBits);
memmove(pPixels, pBits, lBmpSize);
return hBitmap;
}