Alexandre Julliard : gdi32: Add null driver entry points for the device printer functions.

Alexandre Julliard julliard at winehq.org
Fri Mar 11 10:23:38 CST 2011


Module: wine
Branch: master
Commit: d1db4c859c53f6e7f9789dd213874faa7312d8a0
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=d1db4c859c53f6e7f9789dd213874faa7312d8a0

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Fri Mar 11 12:15:38 2011 +0100

gdi32: Add null driver entry points for the device printer functions.

---

 dlls/gdi32/driver.c |   48 ++++++++++++++++++++++++++++++++++++------------
 dlls/gdi32/gdiobj.c |    5 +++--
 2 files changed, 39 insertions(+), 14 deletions(-)

diff --git a/dlls/gdi32/driver.c b/dlls/gdi32/driver.c
index 3d5f0e7..e1a9897 100644
--- a/dlls/gdi32/driver.c
+++ b/dlls/gdi32/driver.c
@@ -334,6 +334,12 @@ static BOOL CDECL nulldrv_DeleteObject( PHYSDEV dev, HGDIOBJ obj )
     return TRUE;
 }
 
+static DWORD CDECL nulldrv_DeviceCapabilities( LPSTR buffer, LPCSTR device, LPCSTR port,
+                                               WORD cap, LPSTR output, DEVMODEA *devmode )
+{
+    return -1;
+}
+
 static BOOL CDECL nulldrv_Ellipse( PHYSDEV dev, INT left, INT top, INT right, INT bottom )
 {
     return TRUE;
@@ -349,11 +355,28 @@ static INT CDECL nulldrv_EndPage( PHYSDEV dev )
     return 0;
 }
 
+static INT CDECL nulldrv_ExtDeviceMode( LPSTR buffer, HWND hwnd, DEVMODEA *output, LPSTR device,
+                                        LPSTR port, DEVMODEA *input, LPSTR profile, DWORD mode )
+{
+    return -1;
+}
+
+static INT CDECL nulldrv_ExtEscape( PHYSDEV dev, INT escape, INT in_size, const void *in_data,
+                                    INT out_size, void *out_data )
+{
+    return 0;
+}
+
 static BOOL CDECL nulldrv_ExtFloodFill( PHYSDEV dev, INT x, INT y, COLORREF color, UINT type )
 {
     return TRUE;
 }
 
+static BOOL CDECL nulldrv_GdiComment( PHYSDEV dev, UINT size, const BYTE *data )
+{
+    return FALSE;
+}
+
 static COLORREF CDECL nulldrv_GetPixel( PHYSDEV dev, INT x, INT y )
 {
     return 0;
@@ -613,7 +636,7 @@ const DC_FUNCTIONS null_driver =
     NULL,                               /* pDeleteDC */
     nulldrv_DeleteObject,               /* pDeleteObject */
     NULL,                               /* pDescribePixelFormat */
-    NULL,                               /* pDeviceCapabilities */
+    nulldrv_DeviceCapabilities,         /* pDeviceCapabilities */
     nulldrv_Ellipse,                    /* pEllipse */
     nulldrv_EndDoc,                     /* pEndDoc */
     nulldrv_EndPage,                    /* pEndPage */
@@ -621,8 +644,8 @@ const DC_FUNCTIONS null_driver =
     NULL,                               /* pEnumICMProfiles */
     NULL,                               /* pEnumDeviceFonts */
     nulldrv_ExcludeClipRect,            /* pExcludeClipRect */
-    NULL,                               /* pExtDeviceMode */
-    NULL,                               /* pExtEscape */
+    nulldrv_ExtDeviceMode,              /* pExtDeviceMode */
+    nulldrv_ExtEscape,                  /* pExtEscape */
     nulldrv_ExtFloodFill,               /* pExtFloodFill */
     nulldrv_ExtSelectClipRgn,           /* pExtSelectClipRgn */
     NULL,                               /* pExtTextOut */
@@ -630,7 +653,7 @@ const DC_FUNCTIONS null_driver =
     nulldrv_FillRgn,                    /* pFillRgn */
     NULL,                               /* pFlattenPath */
     nulldrv_FrameRgn,                   /* pFrameRgn */
-    NULL,                               /* pGdiComment */
+    nulldrv_GdiComment,                 /* pGdiComment */
     NULL,                               /* pGetBitmapBits */
     NULL,                               /* pGetCharWidth */
     NULL,                               /* pGetDIBits */
@@ -887,9 +910,9 @@ INT WINAPI GDI_CallExtDeviceMode16( HWND hwnd,
 
     if ((dc = get_dc_ptr( hdc )))
     {
-        if (dc->funcs->pExtDeviceMode)
-	    ret = dc->funcs->pExtDeviceMode( buf, hwnd, lpdmOutput, lpszDevice, lpszPort,
-                                             lpdmInput, lpszProfile, fwMode );
+        PHYSDEV physdev = GET_DC_PHYSDEV( dc, pExtDeviceMode );
+        ret = physdev->funcs->pExtDeviceMode( buf, hwnd, lpdmOutput, lpszDevice, lpszPort,
+                                              lpdmInput, lpszProfile, fwMode );
 	release_dc_ptr( dc );
     }
     DeleteDC( hdc );
@@ -941,9 +964,9 @@ DWORD WINAPI GDI_CallDeviceCapabilities16( LPCSTR lpszDevice, LPCSTR lpszPort,
 
     if ((dc = get_dc_ptr( hdc )))
     {
-        if (dc->funcs->pDeviceCapabilities)
-            ret = dc->funcs->pDeviceCapabilities( buf, lpszDevice, lpszPort,
-                                                  fwCapability, lpszOutput, lpdm );
+        PHYSDEV physdev = GET_DC_PHYSDEV( dc, pDeviceCapabilities );
+        ret = physdev->funcs->pDeviceCapabilities( buf, lpszDevice, lpszPort,
+                                                   fwCapability, lpszOutput, lpdm );
         release_dc_ptr( dc );
     }
     DeleteDC( hdc );
@@ -1069,10 +1092,11 @@ INT WINAPI ExtEscape( HDC hdc, INT nEscape, INT cbInput, LPCSTR lpszInData,
 {
     INT ret = 0;
     DC * dc = get_dc_ptr( hdc );
+
     if (dc)
     {
-        if (dc->funcs->pExtEscape)
-            ret = dc->funcs->pExtEscape( dc->physDev, nEscape, cbInput, lpszInData, cbOutput, lpszOutData );
+        PHYSDEV physdev = GET_DC_PHYSDEV( dc, pExtEscape );
+        ret = physdev->funcs->pExtEscape( physdev, nEscape, cbInput, lpszInData, cbOutput, lpszOutData );
         release_dc_ptr( dc );
     }
     return ret;
diff --git a/dlls/gdi32/gdiobj.c b/dlls/gdi32/gdiobj.c
index 35b8068..4d84342 100644
--- a/dlls/gdi32/gdiobj.c
+++ b/dlls/gdi32/gdiobj.c
@@ -1278,10 +1278,11 @@ BOOL WINAPI GdiComment(HDC hdc, UINT cbSize, const BYTE *lpData)
 {
     DC *dc = get_dc_ptr(hdc);
     BOOL ret = FALSE;
+
     if(dc)
     {
-        if (dc->funcs->pGdiComment)
-            ret = dc->funcs->pGdiComment( dc->physDev, cbSize, lpData );
+        PHYSDEV physdev = GET_DC_PHYSDEV( dc, pGdiComment );
+        ret = physdev->funcs->pGdiComment( physdev, cbSize, lpData );
         release_dc_ptr( dc );
     }
     return ret;




More information about the wine-cvs mailing list