diff --git a/dlls/gdi32/enhmfdrv/graphics.c b/dlls/gdi32/enhmfdrv/graphics.c index e567808016b..691a53ce98f 100644 --- a/dlls/gdi32/enhmfdrv/graphics.c +++ b/dlls/gdi32/enhmfdrv/graphics.c @@ -1214,5 +1214,14 @@ BOOL EMFDC_StrokeAndFillPath( DC_ATTR *dc_attr ) */ BOOL CDECL EMFDRV_StrokePath( PHYSDEV dev ) { - return emfdrv_stroke_and_fill_path( dev, EMR_STROKEPATH ); + /* FIXME: update bound rect */ + return TRUE; +} + +/********************************************************************** + * EMFDC_StrokePath + */ +BOOL EMFDC_StrokePath( DC_ATTR *dc_attr ) +{ + return emfdrv_stroke_and_fill_path( dc_attr->emf, EMR_STROKEPATH ); } diff --git a/dlls/gdi32/gdi_private.h b/dlls/gdi32/gdi_private.h index a159aa875a6..7a7fc2b6fce 100644 --- a/dlls/gdi32/gdi_private.h +++ b/dlls/gdi32/gdi_private.h @@ -218,5 +218,6 @@ extern BOOL EMFDC_StretchDIBits( DC_ATTR *dc_attr, INT x_dst, INT y_dst, INT wid INT height_src, const void *bits, const BITMAPINFO *info, UINT coloruse, DWORD rop ) DECLSPEC_HIDDEN; extern BOOL EMFDC_StrokeAndFillPath( DC_ATTR *dc_attr ) DECLSPEC_HIDDEN; +extern BOOL EMFDC_StrokePath( DC_ATTR *dc_attr ) DECLSPEC_HIDDEN; #endif /* __WINE_GDI_PRIVATE_H */ diff --git a/dlls/gdi32/gdidc.c b/dlls/gdi32/gdidc.c index 0e7c0574024..ac33893dfc7 100644 --- a/dlls/gdi32/gdidc.c +++ b/dlls/gdi32/gdidc.c @@ -1543,6 +1543,18 @@ BOOL WINAPI StrokeAndFillPath( HDC hdc ) return NtGdiStrokeAndFillPath( hdc ); } +/******************************************************************* + * StrokePath (GDI32.@) + */ +BOOL WINAPI StrokePath( HDC hdc ) +{ + DC_ATTR *dc_attr; + + if (!(dc_attr = get_dc_attr( hdc ))) return FALSE; + if (dc_attr->emf && !EMFDC_StrokePath( dc_attr )) return FALSE; + return NtGdiStrokePath( hdc ); +} + /*********************************************************************** * FlattenPath (GDI32.@) */ diff --git a/dlls/gdi32/path.c b/dlls/gdi32/path.c index f08592598b9..e59c02951ff 100644 --- a/dlls/gdi32/path.c +++ b/dlls/gdi32/path.c @@ -1919,11 +1919,9 @@ BOOL WINAPI NtGdiStrokeAndFillPath( HDC hdc ) /******************************************************************* - * StrokePath [GDI32.@] - * - * + * NtGdiStrokePath (win32u.@) */ -BOOL WINAPI StrokePath(HDC hdc) +BOOL WINAPI NtGdiStrokePath( HDC hdc ) { BOOL ret = FALSE; DC *dc = get_dc_ptr( hdc );