On Thu, Oct 23, 2008 at 09:32:43PM +0900, Dmitry Timoshkov wrote:
This completely fixes the print previews generated by MS Access in a Win9x mode. Access has a custom handler for an EMR_GDICOMMENT record, and GDI APIs it calls from it don't work properly due to wrong DC mapping.
dlls/gdi32/enhmetafile.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/dlls/gdi32/enhmetafile.c b/dlls/gdi32/enhmetafile.c index e998c60..22451d2 100644 --- a/dlls/gdi32/enhmetafile.c +++ b/dlls/gdi32/enhmetafile.c @@ -692,6 +692,7 @@ static BOOL emr_produces_output(int type) case EMR_LINETO: case EMR_ARCTO: case EMR_POLYDRAW:
- case EMR_GDICOMMENT: case EMR_FILLRGN: case EMR_FRAMERGN: case EMR_INVERTRGN:
Maybe it's time to rename this function to something like emr_updates_transform() since EMR_GDICOMMENT clearly doesn't produce any output.
Huw.
"Huw Davies" huw@codeweavers.com wrote:
@@ -692,6 +692,7 @@ static BOOL emr_produces_output(int type) case EMR_LINETO: case EMR_ARCTO: case EMR_POLYDRAW:
- case EMR_GDICOMMENT: case EMR_FILLRGN: case EMR_FRAMERGN: case EMR_INVERTRGN:
Maybe it's time to rename this function to something like emr_updates_transform() since EMR_GDICOMMENT clearly doesn't produce any output.
Feel free to send a patch :-) Also, do you have an idea why some EMF records are not in that list (EMR_FILLPATH, EMR_STROKEANDFILLPATH, EMR_STROKEPATH and probably some others)?
On Thu, Oct 23, 2008 at 09:59:44PM +0900, Dmitry Timoshkov wrote:
Also, do you have an idea why some EMF records are not in that list (EMR_FILLPATH, EMR_STROKEANDFILLPATH, EMR_STROKEPATH and probably some others)?
No idea, they probably just got left out by mistake. Clearly we need more exhaustive tests here.
Huw.