Alexandre Julliard : gdi32: Add null driver entry points for the print spooler functions.
Alexandre Julliard
julliard at winehq.org
Wed Mar 9 11:12:46 CST 2011
Module: wine
Branch: master
Commit: 22f920df8e02e911411b8800ab7e1890ce1d7a12
URL: http://source.winehq.org/git/wine.git/?a=commit;h=22f920df8e02e911411b8800ab7e1890ce1d7a12
Author: Alexandre Julliard <julliard at winehq.org>
Date: Tue Mar 8 21:36:52 2011 +0100
gdi32: Add null driver entry points for the print spooler functions.
---
dlls/gdi32/driver.c | 35 +++++++++++++++++++++++++----
dlls/gdi32/printdrv.c | 58 +++++++++++++++++++++++++++---------------------
2 files changed, 63 insertions(+), 30 deletions(-)
diff --git a/dlls/gdi32/driver.c b/dlls/gdi32/driver.c
index 114226b..acd8f6e 100644
--- a/dlls/gdi32/driver.c
+++ b/dlls/gdi32/driver.c
@@ -312,6 +312,11 @@ done:
}
+static INT CDECL nulldrv_AbortDoc( PHYSDEV dev )
+{
+ return 0;
+}
+
static BOOL CDECL nulldrv_Arc( PHYSDEV dev, INT left, INT top, INT right, INT bottom,
INT xstart, INT ystart, INT xend, INT yend )
{
@@ -329,6 +334,16 @@ static BOOL CDECL nulldrv_Ellipse( PHYSDEV dev, INT left, INT top, INT right, IN
return TRUE;
}
+static INT CDECL nulldrv_EndDoc( PHYSDEV dev )
+{
+ return 0;
+}
+
+static INT CDECL nulldrv_EndPage( PHYSDEV dev )
+{
+ return 0;
+}
+
static BOOL CDECL nulldrv_ExtFloodFill( PHYSDEV dev, INT x, INT y, COLORREF color, UINT type )
{
return TRUE;
@@ -398,9 +413,19 @@ static COLORREF CDECL nulldrv_SetPixel( PHYSDEV dev, INT x, INT y, COLORREF colo
return color;
}
+static INT CDECL nulldrv_StartDoc( PHYSDEV dev, const DOCINFOW *info )
+{
+ return 0;
+}
+
+static INT CDECL nulldrv_StartPage( PHYSDEV dev )
+{
+ return 1;
+}
+
const DC_FUNCTIONS null_driver =
{
- NULL, /* pAbortDoc */
+ nulldrv_AbortDoc, /* pAbortDoc */
NULL, /* pAbortPath */
NULL, /* pAlphaBlend */
nulldrv_AngleArc, /* pAngleArc */
@@ -420,8 +445,8 @@ const DC_FUNCTIONS null_driver =
NULL, /* pDescribePixelFormat */
NULL, /* pDeviceCapabilities */
nulldrv_Ellipse, /* pEllipse */
- NULL, /* pEndDoc */
- NULL, /* pEndPage */
+ nulldrv_EndDoc, /* pEndDoc */
+ nulldrv_EndPage, /* pEndPage */
NULL, /* pEndPath */
NULL, /* pEnumICMProfiles */
NULL, /* pEnumDeviceFonts */
@@ -510,8 +535,8 @@ const DC_FUNCTIONS null_driver =
NULL, /* pSetWindowExt */
NULL, /* pSetWindowOrg */
NULL, /* pSetWorldTransform */
- NULL, /* pStartDoc */
- NULL, /* pStartPage */
+ nulldrv_StartDoc, /* pStartDoc */
+ nulldrv_StartPage, /* pStartPage */
NULL, /* pStretchBlt */
NULL, /* pStretchDIBits */
NULL, /* pStrokeAndFillPath */
diff --git a/dlls/gdi32/printdrv.c b/dlls/gdi32/printdrv.c
index cc1e61f..3cfdc47 100644
--- a/dlls/gdi32/printdrv.c
+++ b/dlls/gdi32/printdrv.c
@@ -69,7 +69,7 @@ DWORD WINAPI GdiInitSpool(void)
*/
INT WINAPI StartDocW(HDC hdc, const DOCINFOW* doc)
{
- INT ret = 0;
+ INT ret;
DC *dc = get_dc_ptr( hdc );
TRACE("DocName = %s Output = %s Datatype = %s\n",
@@ -78,13 +78,12 @@ INT WINAPI StartDocW(HDC hdc, const DOCINFOW* doc)
if(!dc) return SP_ERROR;
- if (dc->pAbortProc && !dc->pAbortProc( hdc, 0 ))
+ if (dc->pAbortProc && !dc->pAbortProc( hdc, 0 )) ret = 0;
+ else
{
- release_dc_ptr( dc );
- return ret;
+ PHYSDEV physdev = GET_DC_PHYSDEV( dc, pStartDoc );
+ ret = physdev->funcs->pStartDoc( physdev, doc );
}
-
- if (dc->funcs->pStartDoc) ret = dc->funcs->pStartDoc( dc->physDev, doc );
release_dc_ptr( dc );
return ret;
}
@@ -140,12 +139,15 @@ INT WINAPI StartDocA(HDC hdc, const DOCINFOA* doc)
*/
INT WINAPI EndDoc(HDC hdc)
{
- INT ret = 0;
+ INT ret = SP_ERROR;
DC *dc = get_dc_ptr( hdc );
- if(!dc) return SP_ERROR;
- if (dc->funcs->pEndDoc) ret = dc->funcs->pEndDoc( dc->physDev );
- release_dc_ptr( dc );
+ if (dc)
+ {
+ PHYSDEV physdev = GET_DC_PHYSDEV( dc, pEndDoc );
+ ret = physdev->funcs->pEndDoc( physdev );
+ release_dc_ptr( dc );
+ }
return ret;
}
@@ -156,15 +158,15 @@ INT WINAPI EndDoc(HDC hdc)
*/
INT WINAPI StartPage(HDC hdc)
{
- INT ret = 1;
+ INT ret = SP_ERROR;
DC *dc = get_dc_ptr( hdc );
- if(!dc) return SP_ERROR;
- if(dc->funcs->pStartPage)
- ret = dc->funcs->pStartPage( dc->physDev );
- else
- FIXME("stub\n");
- release_dc_ptr( dc );
+ if (dc)
+ {
+ PHYSDEV physdev = GET_DC_PHYSDEV( dc, pStartPage );
+ ret = physdev->funcs->pStartPage( physdev );
+ release_dc_ptr( dc );
+ }
return ret;
}
@@ -175,12 +177,15 @@ INT WINAPI StartPage(HDC hdc)
*/
INT WINAPI EndPage(HDC hdc)
{
- INT ret = 0;
+ INT ret = SP_ERROR;
DC *dc = get_dc_ptr( hdc );
- if(!dc) return SP_ERROR;
- if (dc->funcs->pEndPage) ret = dc->funcs->pEndPage( dc->physDev );
- release_dc_ptr( dc );
+ if (dc)
+ {
+ PHYSDEV physdev = GET_DC_PHYSDEV( dc, pEndPage );
+ ret = physdev->funcs->pEndPage( physdev );
+ release_dc_ptr( dc );
+ }
return ret;
}
@@ -190,12 +195,15 @@ INT WINAPI EndPage(HDC hdc)
*/
INT WINAPI AbortDoc(HDC hdc)
{
- INT ret = 0;
+ INT ret = SP_ERROR;
DC *dc = get_dc_ptr( hdc );
- if(!dc) return SP_ERROR;
- if (dc->funcs->pAbortDoc) ret = dc->funcs->pAbortDoc( dc->physDev );
- release_dc_ptr( dc );
+ if (dc)
+ {
+ PHYSDEV physdev = GET_DC_PHYSDEV( dc, pAbortDoc );
+ ret = physdev->funcs->pAbortDoc( physdev );
+ release_dc_ptr( dc );
+ }
return ret;
}
More information about the wine-cvs
mailing list