Jacek Caban : gdi32: Factor out get_icm_profile.

Alexandre Julliard julliard at winehq.org
Thu Sep 9 15:42:31 CDT 2021


Module: wine
Branch: master
Commit: 5f139f141118cf99157c648ad4974d342f32f8db
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=5f139f141118cf99157c648ad4974d342f32f8db

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Sep  9 14:02:03 2021 +0200

gdi32: Factor out get_icm_profile.

And move it to dc.c.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/gdi32/dc.c          | 17 +++++++++++++++++
 dlls/gdi32/gdi_private.h |  2 ++
 dlls/gdi32/icm.c         | 32 ++++----------------------------
 3 files changed, 23 insertions(+), 28 deletions(-)

diff --git a/dlls/gdi32/dc.c b/dlls/gdi32/dc.c
index ae6119529f5..f7b56b06f6f 100644
--- a/dlls/gdi32/dc.c
+++ b/dlls/gdi32/dc.c
@@ -1241,3 +1241,20 @@ DWORD WINAPI NtGdiSetLayout( HDC hdc, LONG wox, DWORD layout )
 
     return old_layout;
 }
+
+/**********************************************************************
+ *           get_icm_profile     (win32u.@)
+ */
+BOOL get_icm_profile( HDC hdc, BOOL allow_default, DWORD *size, WCHAR *filename )
+{
+    PHYSDEV physdev;
+    DC *dc;
+    BOOL ret;
+
+    if (!(dc = get_dc_ptr(hdc))) return FALSE;
+
+    physdev = GET_DC_PHYSDEV( dc, pGetICMProfile );
+    ret = physdev->funcs->pGetICMProfile( physdev, allow_default, size, filename );
+    release_dc_ptr(dc);
+    return ret;
+}
diff --git a/dlls/gdi32/gdi_private.h b/dlls/gdi32/gdi_private.h
index e1ba092a08e..efadf3a7c82 100644
--- a/dlls/gdi32/gdi_private.h
+++ b/dlls/gdi32/gdi_private.h
@@ -278,6 +278,8 @@ extern HENHMETAFILE EMF_Create_HENHMETAFILE( ENHMETAHEADER *emh, DWORD filesize,
 
 extern BOOL get_brush_bitmap_info( HBRUSH handle, BITMAPINFO *info, void *bits,
                                    UINT *usage ) DECLSPEC_HIDDEN;
+extern BOOL get_icm_profile( HDC hdc, BOOL allow_default, DWORD *size,
+                             WCHAR *filename ) DECLSPEC_HIDDEN;
 
 static inline int get_dib_stride( int width, int bpp )
 {
diff --git a/dlls/gdi32/icm.c b/dlls/gdi32/icm.c
index 22aacb762e3..63377a9ab88 100644
--- a/dlls/gdi32/icm.c
+++ b/dlls/gdi32/icm.c
@@ -19,16 +19,8 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
-#include <stdarg.h>
-#include <string.h>
-
-#include "windef.h"
-#include "winbase.h"
-#include "wingdi.h"
+#include "gdi_private.h"
 #include "winnls.h"
-#include "winreg.h"
-
-#include "ntgdi_private.h"
 
 #include "wine/debug.h"
 
@@ -78,20 +70,13 @@ INT WINAPI EnumICMProfilesW(HDC hdc, ICMENUMPROCW func, LPARAM lparam)
 {
     WCHAR profile[MAX_PATH];
     DWORD size = ARRAYSIZE(profile);
-    DC *dc;
-    BOOL ret = FALSE;
 
     TRACE( "%p, %p, 0x%08lx\n", hdc, func, lparam );
 
     if (!func) return -1;
-    if ((dc = get_dc_ptr(hdc)))
-    {
-        PHYSDEV physdev = GET_DC_PHYSDEV( dc, pGetICMProfile );
-        ret = physdev->funcs->pGetICMProfile( physdev, FALSE, &size, profile );
-        release_dc_ptr(dc);
-    }
+    if (!get_icm_profile( hdc, FALSE, &size, profile )) return -1;
     /* FIXME: support multiple profiles */
-    return ret ? func( profile, lparam ) : -1;
+    return func( profile, lparam );
 }
 
 /**********************************************************************
@@ -144,18 +129,9 @@ BOOL WINAPI GetICMProfileA(HDC hdc, LPDWORD size, LPSTR filename)
  */
 BOOL WINAPI GetICMProfileW(HDC hdc, LPDWORD size, LPWSTR filename)
 {
-    BOOL ret = FALSE;
-    DC *dc = get_dc_ptr(hdc);
-
     TRACE("%p, %p, %p\n", hdc, size, filename);
 
-    if (dc)
-    {
-        PHYSDEV physdev = GET_DC_PHYSDEV( dc, pGetICMProfile );
-        ret = physdev->funcs->pGetICMProfile( physdev, TRUE, size, filename );
-        release_dc_ptr(dc);
-    }
-    return ret;
+    return get_icm_profile( hdc, TRUE, size, filename );
 }
 
 /**********************************************************************




More information about the wine-cvs mailing list