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