comctl32:toolbar: [1/2] Infrastructure CopyBitmap function
Oleg Krylov
oleg.krylov at gmail.com
Thu Jul 27 08:08:06 CDT 2006
comctl32:toolbar: [1/2] Infrastructure CopyBitmap function
changelog: 27.07.2006. by Oleg Krylov <oleg.krylov at gmail.com>
This patch is makes no changes to code other then adds CopyBitmap function
to avoid duplicate code changes in following patch.
Second patch in this mini series will change this function bahavior.
===============
diff -urN wine/dlls/comctl32/toolbar.c wineNew/dlls/comctl32/toolbar.c
--- wine/dlls/comctl32/toolbar.c 2006-05-23 15:47:38.000000000 +0300
+++ wineNew/dlls/comctl32/toolbar.c 2006-07-27 13:30:09.000000000 +0300
@@ -2567,6 +2567,37 @@
}
}
+/***********************************************************************
+ * CopyBitmap: Create a new copy of HBITMAP.
+ *
+ */
+static HBITMAP
+CopyBitmap (HBITMAP hbm)
+{
+ BITMAP bmp;
+ HBITMAP hOldBitmapBitmap, hOldBitmapLoad, hbmLoad;
+ HDC hdcImage, hdcBitmap;
+
+ GetObjectW (hbm, sizeof(BITMAP), (LPVOID)&bmp);
+
+ hdcImage = CreateCompatibleDC(0);
+ hdcBitmap = CreateCompatibleDC(0);
+
+ /* create new bitmap */
+ hbmLoad = CreateBitmap (bmp.bmWidth, bmp.bmHeight, bmp.bmPlanes,
bmp.bmBitsPixel, NULL);
+ hOldBitmapBitmap = SelectObject(hdcBitmap, hbm);
+ hOldBitmapLoad = SelectObject(hdcImage, hbmLoad);
+
+ /* Copy the user's image */
+ BitBlt (hdcImage, 0, 0, bmp.bmWidth, bmp.bmHeight,
+ hdcBitmap, 0, 0, SRCCOPY);
+
+ SelectObject (hdcImage, hOldBitmapLoad);
+ SelectObject (hdcBitmap, hOldBitmapBitmap);
+ DeleteDC (hdcImage);
+ DeleteDC (hdcBitmap);
+ return hbmLoad;
+}
More information about the wine-patches
mailing list