diff --git a/reactos/subsystems/win32/win32k/include/bitmaps.h b/reactos/subsystems/win32/win32k/include/bitmaps.h index 66f5ac10ad5..9cd03095014 100644 --- a/reactos/subsystems/win32/win32k/include/bitmaps.h +++ b/reactos/subsystems/win32/win32k/include/bitmaps.h @@ -23,6 +23,7 @@ typedef struct _BITMAPOBJ /* For device-independent bitmaps: */ DIBSECTION *dib; HPALETTE hDIBPalette; + HDC hDC; } BITMAPOBJ, *PBITMAPOBJ; #define BITMAPOBJ_IS_APIBITMAP 0x1 diff --git a/reactos/subsystems/win32/win32k/include/dc.h b/reactos/subsystems/win32/win32k/include/dc.h index de005fd5dec..0194d9aa92b 100644 --- a/reactos/subsystems/win32/win32k/include/dc.h +++ b/reactos/subsystems/win32/win32k/include/dc.h @@ -87,7 +87,7 @@ typedef struct _DC DHPDEV PDev; // <- GDIDEVICE.hPDev DHPDEV for device. INT DC_Type; INT DC_Flags; - PVOID pPDev; // PGDIDEVICE + PVOID pPDev; // PGDIDEVICE aka PDEVOBJ PVOID hSem; // PERESOURCE FLONG flGraphics; FLONG flGraphics2; diff --git a/reactos/subsystems/win32/win32k/objects/bitmaps.c b/reactos/subsystems/win32/win32k/objects/bitmaps.c index c0ae1e72007..e043e6f3c37 100644 --- a/reactos/subsystems/win32/win32k/objects/bitmaps.c +++ b/reactos/subsystems/win32/win32k/objects/bitmaps.c @@ -78,6 +78,7 @@ IntGdiCreateBitmap( } bmp->flFlags = BITMAPOBJ_IS_APIBITMAP; + bmp->hDC = NULL; // Fixme if (NULL != pBits) { @@ -739,4 +740,21 @@ BITMAP_GetObject(BITMAPOBJ * bmp, INT Count, LPVOID buffer) return Count; } } + +/* + * @implemented + */ +HDC +APIENTRY +NtGdiGetDCforBitmap( + IN HBITMAP hsurf) +{ + HDC hDC = NULL; + PBITMAPOBJ bmp = BITMAPOBJ_LockBitmap( hsurf ); + hDC = bmp->hDC; + BITMAPOBJ_UnlockBitmap( bmp ); + return hDC; +} + + /* EOF */ diff --git a/reactos/subsystems/win32/win32k/stubs/stubs.c b/reactos/subsystems/win32/win32k/stubs/stubs.c index 5376bdeb590..227433afba1 100644 --- a/reactos/subsystems/win32/win32k/stubs/stubs.c +++ b/reactos/subsystems/win32/win32k/stubs/stubs.c @@ -2050,19 +2050,6 @@ NtGdiGetColorSpaceforBitmap( return 0; } - /* - * @unimplemented - */ -HDC -APIENTRY -NtGdiGetDCforBitmap( - IN HBITMAP hsurf) -{ - UNIMPLEMENTED; - return NULL; -} - - /* * @unimplemented */