gdi32: Support NULL prev_value in NtGdiGetAndSetDCDword.
Signed-off-by: Jacek Caban <jacek@codeweavers.com> Signed-off-by: Huw Davies <huw@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
03ec246e52
commit
bf4cdfad5b
|
@ -830,6 +830,7 @@ BOOL WINAPI NtGdiGetAndSetDCDword( HDC hdc, UINT method, DWORD value, DWORD *pre
|
||||||
{
|
{
|
||||||
PHYSDEV physdev;
|
PHYSDEV physdev;
|
||||||
BOOL ret = TRUE;
|
BOOL ret = TRUE;
|
||||||
|
DWORD prev;
|
||||||
DC *dc;
|
DC *dc;
|
||||||
|
|
||||||
if (!(dc = get_dc_ptr( hdc ))) return 0;
|
if (!(dc = get_dc_ptr( hdc ))) return 0;
|
||||||
|
@ -837,36 +838,36 @@ BOOL WINAPI NtGdiGetAndSetDCDword( HDC hdc, UINT method, DWORD value, DWORD *pre
|
||||||
switch (method)
|
switch (method)
|
||||||
{
|
{
|
||||||
case NtGdiSetMapMode:
|
case NtGdiSetMapMode:
|
||||||
*prev_value = dc->attr->map_mode;
|
prev = dc->attr->map_mode;
|
||||||
ret = set_map_mode( dc, value );
|
ret = set_map_mode( dc, value );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NtGdiSetBkColor:
|
case NtGdiSetBkColor:
|
||||||
*prev_value = dc->attr->background_color;
|
prev = dc->attr->background_color;
|
||||||
set_bk_color( dc, value );
|
set_bk_color( dc, value );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NtGdiSetTextColor:
|
case NtGdiSetTextColor:
|
||||||
*prev_value = dc->attr->text_color;
|
prev = dc->attr->text_color;
|
||||||
set_text_color( dc, value );
|
set_text_color( dc, value );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NtGdiSetDCBrushColor:
|
case NtGdiSetDCBrushColor:
|
||||||
physdev = GET_DC_PHYSDEV( dc, pSetDCBrushColor );
|
physdev = GET_DC_PHYSDEV( dc, pSetDCBrushColor );
|
||||||
*prev_value = dc->attr->brush_color;
|
prev = dc->attr->brush_color;
|
||||||
value = physdev->funcs->pSetDCBrushColor( physdev, value );
|
value = physdev->funcs->pSetDCBrushColor( physdev, value );
|
||||||
if (value != CLR_INVALID) dc->attr->brush_color = value;
|
if (value != CLR_INVALID) dc->attr->brush_color = value;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NtGdiSetDCPenColor:
|
case NtGdiSetDCPenColor:
|
||||||
physdev = GET_DC_PHYSDEV( dc, pSetDCPenColor );
|
physdev = GET_DC_PHYSDEV( dc, pSetDCPenColor );
|
||||||
*prev_value = dc->attr->pen_color;
|
prev = dc->attr->pen_color;
|
||||||
value = physdev->funcs->pSetDCPenColor( physdev, value );
|
value = physdev->funcs->pSetDCPenColor( physdev, value );
|
||||||
if (value != CLR_INVALID) dc->attr->pen_color = value;
|
if (value != CLR_INVALID) dc->attr->pen_color = value;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NtGdiSetGraphicsMode:
|
case NtGdiSetGraphicsMode:
|
||||||
if (prev_value) *prev_value = dc->attr->graphics_mode;
|
prev = dc->attr->graphics_mode;
|
||||||
ret = set_graphics_mode( dc, value );
|
ret = set_graphics_mode( dc, value );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -877,7 +878,9 @@ BOOL WINAPI NtGdiGetAndSetDCDword( HDC hdc, UINT method, DWORD value, DWORD *pre
|
||||||
}
|
}
|
||||||
|
|
||||||
release_dc_ptr( dc );
|
release_dc_ptr( dc );
|
||||||
return ret;
|
if (!ret || !prev_value) return FALSE;
|
||||||
|
*prev_value = prev;
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue