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

This commit is contained in:
Alexandre Julliard 2011-03-11 12:15:38 +01:00
parent 8c3766c5e7
commit d1db4c859c
2 changed files with 39 additions and 14 deletions

View File

@ -334,6 +334,12 @@ static BOOL CDECL nulldrv_DeleteObject( PHYSDEV dev, HGDIOBJ obj )
return TRUE; 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 ) static BOOL CDECL nulldrv_Ellipse( PHYSDEV dev, INT left, INT top, INT right, INT bottom )
{ {
return TRUE; return TRUE;
@ -349,11 +355,28 @@ static INT CDECL nulldrv_EndPage( PHYSDEV dev )
return 0; 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 ) static BOOL CDECL nulldrv_ExtFloodFill( PHYSDEV dev, INT x, INT y, COLORREF color, UINT type )
{ {
return TRUE; 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 ) static COLORREF CDECL nulldrv_GetPixel( PHYSDEV dev, INT x, INT y )
{ {
return 0; return 0;
@ -613,7 +636,7 @@ const DC_FUNCTIONS null_driver =
NULL, /* pDeleteDC */ NULL, /* pDeleteDC */
nulldrv_DeleteObject, /* pDeleteObject */ nulldrv_DeleteObject, /* pDeleteObject */
NULL, /* pDescribePixelFormat */ NULL, /* pDescribePixelFormat */
NULL, /* pDeviceCapabilities */ nulldrv_DeviceCapabilities, /* pDeviceCapabilities */
nulldrv_Ellipse, /* pEllipse */ nulldrv_Ellipse, /* pEllipse */
nulldrv_EndDoc, /* pEndDoc */ nulldrv_EndDoc, /* pEndDoc */
nulldrv_EndPage, /* pEndPage */ nulldrv_EndPage, /* pEndPage */
@ -621,8 +644,8 @@ const DC_FUNCTIONS null_driver =
NULL, /* pEnumICMProfiles */ NULL, /* pEnumICMProfiles */
NULL, /* pEnumDeviceFonts */ NULL, /* pEnumDeviceFonts */
nulldrv_ExcludeClipRect, /* pExcludeClipRect */ nulldrv_ExcludeClipRect, /* pExcludeClipRect */
NULL, /* pExtDeviceMode */ nulldrv_ExtDeviceMode, /* pExtDeviceMode */
NULL, /* pExtEscape */ nulldrv_ExtEscape, /* pExtEscape */
nulldrv_ExtFloodFill, /* pExtFloodFill */ nulldrv_ExtFloodFill, /* pExtFloodFill */
nulldrv_ExtSelectClipRgn, /* pExtSelectClipRgn */ nulldrv_ExtSelectClipRgn, /* pExtSelectClipRgn */
NULL, /* pExtTextOut */ NULL, /* pExtTextOut */
@ -630,7 +653,7 @@ const DC_FUNCTIONS null_driver =
nulldrv_FillRgn, /* pFillRgn */ nulldrv_FillRgn, /* pFillRgn */
NULL, /* pFlattenPath */ NULL, /* pFlattenPath */
nulldrv_FrameRgn, /* pFrameRgn */ nulldrv_FrameRgn, /* pFrameRgn */
NULL, /* pGdiComment */ nulldrv_GdiComment, /* pGdiComment */
NULL, /* pGetBitmapBits */ NULL, /* pGetBitmapBits */
NULL, /* pGetCharWidth */ NULL, /* pGetCharWidth */
NULL, /* pGetDIBits */ NULL, /* pGetDIBits */
@ -887,9 +910,9 @@ INT WINAPI GDI_CallExtDeviceMode16( HWND hwnd,
if ((dc = get_dc_ptr( hdc ))) if ((dc = get_dc_ptr( hdc )))
{ {
if (dc->funcs->pExtDeviceMode) PHYSDEV physdev = GET_DC_PHYSDEV( dc, pExtDeviceMode );
ret = dc->funcs->pExtDeviceMode( buf, hwnd, lpdmOutput, lpszDevice, lpszPort, ret = physdev->funcs->pExtDeviceMode( buf, hwnd, lpdmOutput, lpszDevice, lpszPort,
lpdmInput, lpszProfile, fwMode ); lpdmInput, lpszProfile, fwMode );
release_dc_ptr( dc ); release_dc_ptr( dc );
} }
DeleteDC( hdc ); DeleteDC( hdc );
@ -941,9 +964,9 @@ DWORD WINAPI GDI_CallDeviceCapabilities16( LPCSTR lpszDevice, LPCSTR lpszPort,
if ((dc = get_dc_ptr( hdc ))) if ((dc = get_dc_ptr( hdc )))
{ {
if (dc->funcs->pDeviceCapabilities) PHYSDEV physdev = GET_DC_PHYSDEV( dc, pDeviceCapabilities );
ret = dc->funcs->pDeviceCapabilities( buf, lpszDevice, lpszPort, ret = physdev->funcs->pDeviceCapabilities( buf, lpszDevice, lpszPort,
fwCapability, lpszOutput, lpdm ); fwCapability, lpszOutput, lpdm );
release_dc_ptr( dc ); release_dc_ptr( dc );
} }
DeleteDC( hdc ); DeleteDC( hdc );
@ -1069,10 +1092,11 @@ INT WINAPI ExtEscape( HDC hdc, INT nEscape, INT cbInput, LPCSTR lpszInData,
{ {
INT ret = 0; INT ret = 0;
DC * dc = get_dc_ptr( hdc ); DC * dc = get_dc_ptr( hdc );
if (dc) if (dc)
{ {
if (dc->funcs->pExtEscape) PHYSDEV physdev = GET_DC_PHYSDEV( dc, pExtEscape );
ret = dc->funcs->pExtEscape( dc->physDev, nEscape, cbInput, lpszInData, cbOutput, lpszOutData ); ret = physdev->funcs->pExtEscape( physdev, nEscape, cbInput, lpszInData, cbOutput, lpszOutData );
release_dc_ptr( dc ); release_dc_ptr( dc );
} }
return ret; return ret;

View File

@ -1278,10 +1278,11 @@ BOOL WINAPI GdiComment(HDC hdc, UINT cbSize, const BYTE *lpData)
{ {
DC *dc = get_dc_ptr(hdc); DC *dc = get_dc_ptr(hdc);
BOOL ret = FALSE; BOOL ret = FALSE;
if(dc) if(dc)
{ {
if (dc->funcs->pGdiComment) PHYSDEV physdev = GET_DC_PHYSDEV( dc, pGdiComment );
ret = dc->funcs->pGdiComment( dc->physDev, cbSize, lpData ); ret = physdev->funcs->pGdiComment( physdev, cbSize, lpData );
release_dc_ptr( dc ); release_dc_ptr( dc );
} }
return ret; return ret;